Download 1. Introduction to Programming

Transcript
Computer Science I
CS 135
1. Introduction to Programming
René Doursat
Department of Computer Science & Engineering
University of Nevada, Reno
Fall 2005
Computer Science I
CS 135
0. Course Presentation
1. Introduction to Programming
2. Functions I: Passing by Value
3. File Input/Output
4. Predefined Functions
5. If and Switch Controls
6. While and For Loops
7. Functions II: Passing by Reference
8. 1-D and 2-D Arrays
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
2
Computer Science I
CS 135
1. Introduction to Programming
a. How to Develop a Program
b. Writing Pseudocode
c. First Elements of C++
d. Looking Under the Hood
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
3
Computer Science I
CS 135
1. Introduction to Programming
a. How to Develop a Program
9 A program is like a recipe
9 Steps in program development
9 Procedural programming
b. Writing Pseudocode
c. First Elements of C++
d. Looking Under the Hood
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
4
1.a How to Develop a Program
A program is like a recipe
Pasta for six
– boil 1 quart salty
water
– stir in the pasta
– cook on medium
until “al dente”
– serve
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
5
1.a How to Develop a Program
A program is like a recipe
¾ What is programming?
9 programming can be defined as
ƒ the development of a solution to an identified problem,
and
ƒ the setting up of a related series of instructions that will
produce the desired results
9 generally, programming is the construction of an algorithm
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
6
1.a How to Develop a Program
A program is like a recipe
¾ What is an algorithm?
9 informally, a general method for solving a problem, such as a
recipe
9 formally, a set of precise steps that describe exactly the tasks
to be performed and in which order
9 an algorithm must
ƒ be precise and unambiguous
ƒ give the correct solution in all cases
ƒ eventually end
9 an algorithm frequently involves repetition of an operation
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
7
1.a How to Develop a Program
Steps in program development
¾ Seven basic steps in the development of a program
1. define the problem
2. outline the solution
3. develop the outline into an algorithm
4. test the algorithm for correctness
5. code the algorithm into a specific prog. language
6. run the program on the computer
7. document and maintain the program
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
8
1.a How to Develop a Program
Steps in program development
1. Define the problem
9 to help with initial analysis, the problem should be divided into
three separate components:
ƒ
ƒ
ƒ
8/29/2005
the inputs
the outputs
the processing steps to produce the required outputs from
the inputs
CS 135 - Computer Science I - 1. Introduction to Programming
9
1.a How to Develop a Program
Steps in program development
1. Define the problem
inputs
8/29/2005
processing steps
CS 135 - Computer Science I - 1. Introduction to Programming
outputs
10
1.a How to Develop a Program
Steps in program development
¾ Example: find the average of three numbers
9 what are the inputs and outputs?
number1
number2
??
number3
8/29/2005
processing steps
CS 135 - Computer Science I - 1. Introduction to Programming
average
??
11
1.a How to Develop a Program
Steps in program development
2. Outline the solution
9 decompose the problem in smaller elements and produce a
rough draft of the solution:
ƒ
ƒ
ƒ
ƒ
ƒ
8/29/2005
the major processing steps involved
the major subtasks (if any)
the major control structures
the major variables and record structures
the mainline logic
CS 135 - Computer Science I - 1. Introduction to Programming
12
1.a How to Develop a Program
Steps in program development
¾ Example: find the average of three numbers
9 what are the processing steps?
• obtain three numbers
number1
number2
number3
• calculate ??
the average
average
• show the result
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
13
1.a How to Develop a Program
Steps in program development
3. Develop the outline into an algorithm
9 the solution outline of Step 2 is expanded into an algorithm
• Prompt for three numbers
•• obtain
Get three
numbers
three
numbers
number1
number2
number3
• Add numbers together
•• calculate
the average
Divide the sum by 3
average
•• show
result
Displaythe
a message
• Display the result
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
14
1.a How to Develop a Program
Steps in program development
3. Develop the outline into an algorithm
9 here is an equivalent algorithm in a more formal style
• Prompt for three numbers
• Get x, y, z
x
y
z
• sum = x + y + z
• average = sum/3
average
• Display a message
• Display average
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
15
1.a How to Develop a Program
Steps in program development
4. Test the algorithm for correctness
9 testing is one of the most important step in the development of
a program, yet it is often forgotten
9 the main purpose of “desk-checking” the algorithm is to identify
major logic errors early, so that they may be easily corrected
• sum = x + y + z
• average = sum/3
9 try different test values by hand!
8/29/2005
x y z sum avg
1 1 1 3 1
0 0 6 6 2
13 15 17 45 15
... ... ... ... ...
CS 135 - Computer Science I - 1. Introduction to Programming
16
1.a How to Develop a Program
Steps in program development
5. Code the algorithm into a specific programming
language
9 only after all design considerations have been met should you
actually start to code the program into your chosen
programming language:
ƒ C++
ƒ Java
ƒ FORTRAN
ƒ
ƒ
ƒ
8/29/2005
Basic
COBOL
etc.
CS 135 - Computer Science I - 1. Introduction to Programming
17
1.a How to Develop a Program
Steps in program development
¾ Example: find the average of three numbers
9 core of the program in C++
...
• Prompt for three numbers
<< "Enter 3 numbers ";
• cout
Get
x, y, z
cin >> x >> y >> z;
x
y
z
= x + y + z;
• sum
sum
=x+y+z
avg = sum/3.0;
• average = sum/3
average
cout << endl;
cout << "The average is ";
• cout
Display
a message
<< avg
<< endl;
• ...Display average
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
18
1.a How to Develop a Program
Steps in program development
6. Run the program on the computer
9 this step uses a program compiler and some test data to
“machine-check” the code for errors:
ƒ syntax errors are detected at compile time
ƒ logic errors are detected at run time
9 a compiler is like an interpreter: it translates a high-level
language (such as C++) into low-level machine language (lots
of 0’s and 1’s)
9 compiling and running the program can be the most exciting
and, at the same time, most frustrating part of the development
process
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
19
1.a How to Develop a Program
Steps in program development
7. Document and maintain the program
9 documentation should not be the last step but an ongoing task
throughout the development process
ƒ
ƒ
8/29/2005
external documentation: specifications, implementation,
user manual, etc.
internal documentation: comments in the code
CS 135 - Computer Science I - 1. Introduction to Programming
20
1.a How to Develop a Program
Steps in program development
¾ Summary
1. Define the problem
2. Outline the solution
3. Develop the outline into an algorithm
design
4. Test the algorithm for correctness
5. Code the algorithm into a specific lang.
6. Run the program on the computer
implementation
7. Document and maintain the program
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
21
1.a How to Develop a Program
Procedural programming
Pasta for six
– boil 1 quart salty
water
– stir in the pasta
•
•
•
•
•
•
get a saucepan
fill it with water
add salt
put it on the stove
turn on to high
wait until it boils
• go to the kitchen
sink
• place the pan
under the tap
• turn on the tap
• when the water
level is close to
the top of the pan,
turn off the tap
– cook on medium
until “al dente”
– serve
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
22
1.a How to Develop a Program
Procedural programming
¾ Top-down development
9 in the top-down development of a program design, a general
solution to the problem is outlined first
9 this is then broken down gradually into more detailed steps
until finally the most detailed levels have been completed
9 hierarchy of procedures, subtasks, and elementary steps
¾ Modular design
9 procedural programming also incorporates the concept of
modular design, which involves grouping tasks together
because they all perform the same function
9 modular design is connected directly to top-down development
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
23
Computer Science I
CS 135
1. Introduction to Programming
a. How to Develop a Program
9 A program is like a recipe
9 Steps in program development
9 Procedural programming
b. Writing Pseudocode
c. First Elements of C++
d. Looking Under the Hood
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
24
Computer Science I
CS 135
1. Introduction to Programming
a. How to Develop a Program
b. Writing Pseudocode
9 What is pseudocode?
9 Six basic computer operations
9 The structure theorem
c. First Elements of C++
d. Looking Under the Hood
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
25
1.b Writing Pseudocode
What is pseudocode?
Adding up a list of prices
Turn on calculator
Clear calculator
Repeat the following instructions
Key in dollar amount
Key in decimal point (.)
Key in cents amount
Press addition (+) key
Until all prices have been entered
Write down total price
Turn off calculator
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
26
1.b Writing Pseudocode
What is pseudocode?
¾ Pseudocode is a way to write an algorithm (recipe)
9 flowcharts are another popular way of representing algorithms
9 pseudocode is easier to read and write and allows the
programmer to concentrate on the logic of the problem
9 pseudocode is really structured English
ƒ statements are written in simple English
ƒ each instruction is written on a separate line
ƒ each set of instructions is written from top to bottom, with
only one entry and one exit
ƒ groups of statements may be formed into modules, and
that group given a name
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
27
1.b Writing Pseudocode
Basic computer operations
¾ There are six basic computer operations
1. a computer can receive information
2. a computer can put out information
3. a computer can perform arithmetic
4. a computer can assign a value to a variable or
memory location
5. a computer can compare two variables and select one
of two alternate actions
6. a computer can repeat a group of actions
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
28
1.b Writing Pseudocode
Basic computer operations
1. A computer can receive information
9 Get is used when the algorithm must receive input from the
keyboard:
ƒ
ƒ
Get filename
Get class number
9 Read is used when the algorithm must receive input from a file:
ƒ Read course description (from file)
ƒ Read student names (from file)
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
29
1.b Writing Pseudocode
Basic computer operations
2. A computer can put out information
9 Print is used when the output must be sent to the printer:
ƒ Print ‘Program Completed’
9 Write is used when the output must be written to a file:
ƒ Write student names
9 Display and Prompt are used when the output must be
displayed on the screen:
ƒ Display ‘Hello world!’
ƒ Prompt for class number (generally followed by Get)
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
30
1.b Writing Pseudocode
Basic computer operations
3. A computer can perform arithmetic
9 Either actual mathematical symbols or words can be used:
ƒ Multiply Length by Width to Compute Area
ƒ Area = Length * Width
9 Words and equivalent symbols used in pseudocode:
ƒ Divide or /
ƒ Add or +
ƒ Modulus or %
ƒ Subtract or –
ƒ Parentheses or ( )
ƒ Multiply or *
9 Compute and Calculate also possible:
ƒ Compute degrees Celsius
ƒ C = (F – 32) / 1.8
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
31
1.b Writing Pseudocode
Basic computer operations
¾ Example of pseudocode
Find the mean age of the class
Prompt the user for number_students
Get number_students
Prompt the user for all student ages
Get all student ages
Add all student ages into total_age
Divide total_age by number_students
Display the result
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
32
1.b Writing Pseudocode
Basic computer operations
4. A computer can assign a value to a variable or
memory location
9 Initialize or Set are used to give data an initial value:
ƒ Initialize total_price to 0
9 = or ← are used to assign a value as a result of processing:
ƒ total_price ← cost_price + sales_tax
9 Save or Store are used to keep a variable for later use:
ƒ Save customer_name in last_customer_name
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
33
1.b Writing Pseudocode
Basic computer operations
5. A computer can compare two variables and select one
of two alternate actions
9 Examples:
ƒ If it starts to rain, I’ll go inside the building.
ƒ If the car starts, I’ll drive. Otherwise I’ll take the bus.
9 Keywords:
IF student is female THEN
IF age > 0 THEN
Add 1 to female count
Add 1 to number_students
ELSE
ELSE
Add 1 to male count
Display “Impossible”
ENDIF
8/29/2005
ENDIF
CS 135 - Computer Science I - 1. Introduction to Programming
34
1.b Writing Pseudocode
Basic computer operations
6. A computer can repeat a group of actions
9 Examples:
ƒ pour water in the saucepan until it is full
ƒ cook the pasta until it is “al dente”
9 Keywords:
WHILE water_level < pan_height THEN
Add 1 tablespoon to water_volume
water_level = water_volume / pan_surface
ENDWHILE
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
35
1.b Writing Pseudocode
Basic computer operations
¾ Example of pseudocode
Find the mean age of the class
Prompt the user for number_students
Get number_students
Prompt the user for all student ages
Get all student ages
Add all student ages into total_age
Divide total_age by number_students
Display the result
8/29/2005
set total_age to 0
set count to 0
WHILE count < number_students
get next student’s age
total_age = total_age + age
add 1 to count
ENDWHILE
CS 135 - Computer Science I - 1. Introduction to Programming
36
1.b Writing Pseudocode
The structure theorem
¾ Structure theorem
9 it is possible to write any computer program by using only three
basic control structures that are easily represented in
pseudocode:
ƒ sequence
ƒ selection
ƒ repetition
¾ Sequence
9 straightforward execution of one processing step after another
9 sequence of pseudocode statements
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
37
1.b Writing Pseudocode
The structure theorem
¾ Selection
9 condition and choice between two actions, depending on
whether the condition is true or false
9 represented by the pseudocode keywords IF, THEN, ELSE,
and ENDIF
¾ Repetition
9 block of statements to be executed repeatedly, as long as a
condition is true
9 represented by the pseudocode keywords WHILE and
ENDWHILE
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
38
Computer Science I
CS 135
1. Introduction to Programming
a. How to Develop a Program
b. Writing Pseudocode
9 Why pseudocode?
9 Six basic computer operations
9 The structure theorem
c. First Elements of C++
d. Looking Under the Hood
8/29/2005
CS 135 - Computer Science I - 1. Introduction to Programming
39