CMP 131 Introduction to Computer Programming Violetta CavalliSforza

  • Slides: 19
Download presentation
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 6, Lecture 1 (Monday)

CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 6, Lecture 1 (Monday)

TODAY • Midterm exam will be Monday April 23 • Still waiting for programs

TODAY • Midterm exam will be Monday April 23 • Still waiting for programs from homework #2 • Go over remainder homework #2, as part of review for midterm exam – Formatting with write, writeln • New material for today/this week/next week: – Selection. Making decisions. – Different types of choices: Yes/No choice. Either/or choice. Multiple choices. – Boolean expressions – Conditional statements in some detail – Nesting conditional statements

Homework #2 Review

Homework #2 Review

Exercises 1. 4, # 2 – 12 points • Valid: – – – b)

Exercises 1. 4, # 2 – 12 points • Valid: – – – b) Payroll c) Room 222 e) A f) A 1 k) List. Of. Employees • Invalid: – – – – a) 7 up d) Name List g) 1 A h) Time&Place i) CONST j) X*Y l) Lima, Ohio

Exercises 1. 4, # 4 – 3 points • The three main sections of

Exercises 1. 4, # 4 – 3 points • The three main sections of a Pascal program are: – Program heading – Declaration section – Executable section / program body • You tell me what is in each part.

Exercises 1. 4, # 6 – 6 points a. CONST Company : ‘General Motors’;

Exercises 1. 4, # 6 – 6 points a. CONST Company : ‘General Motors’; VAR Salary : real; b. VAR Age = 25; c. VAR Days : integer; Swap order Ch : char; CONST Name = ‘John Smith’;

d. CONST Car : ‘Cadillac’; e. CONST Score : integer; f. VAR X, Y,

d. CONST Car : ‘Cadillac’; e. CONST Score : integer; f. VAR X, Y, Z : real; Score, Num : integer; This is okay!

Exercises 1. 4, # 7 – 2 points • Semicolon is a statement separator

Exercises 1. 4, # 7 – 2 points • Semicolon is a statement separator • Semicolon is not needed before an END because END is not a statement • A semicolon is also not needed before an ELSE (we’ll see this later) Stmt ; stmt separator (correct) Stmt ; stmt ; terminator (accepted)

Exercises 1. 5, # 16 – 6 points What type of data is appropriate

Exercises 1. 5, # 16 – 6 points What type of data is appropriate for each of the following: a. Your age – integer b. Your grade point average (GPA) – real c. Your name – string (not char) d. A test score – integer or real e. The average test score – real f. Your grade – char, integer, real, string

Part c) • Following the example of calculating the mean that we used in

Part c) • Following the example of calculating the mean that we used in class during Week 3 of the course, develop the problem statement, analysis, and design for a program that calculates the maximum of a set of numbers. You don't know how many numbers you will be given. You can assume that all numbers will be greater than 0. • Use example from Week 3. 1, Slide 29.

Maximum of N PROCESSING: called a sentinel value because it guards the loop Initialize

Maximum of N PROCESSING: called a sentinel value because it guards the loop Initialize Old to 0 Prompt for New number Read New while New is not equal to -99999 do: IF New > Old THEN Old : = New Prompt for New Read New Write the value of New {New stores the maximum value} This is also an example of indefinite looping : You DO NOT know how many times you go around the loop until you finish.

Minimum of N (very similar to Maximum) PROCESSING: called a sentinel value because it

Minimum of N (very similar to Maximum) PROCESSING: called a sentinel value because it guards the loop Initialize Old to Max. Int Prompt for New number Read New while New is not equal to -99999 do: IF New < Old THEN Old : = New Prompt for New Read New Write the value of New {New stores the minimum value} This is also an example of indefinite looping : You DO NOT know how many times you go around the loop until you finish.

New Material

New Material

Types of Statements • Input/Output : for user-program communication • Assignment : to store

Types of Statements • Input/Output : for user-program communication • Assignment : to store (intermediate) results • Control Structures: to determine which other statements are executed and when – conditional or selection statements : content is executed once, if at all – looping, repetition, or iteration statements : content is executed several times

What about computations? • Computations are performed through expressions. Examples: – 3+X – a<b

What about computations? • Computations are performed through expressions. Examples: – 3+X – a<b • If you don’t use them in other statements you might as well not perform them – Assign them to variables with an assignment statement – Ouput them via output statements – Use them in control structures to determine what statements are executed.

Looping/Iteration/Repetition Statements • • Three terms for the same idea: Performing an action or

Looping/Iteration/Repetition Statements • • Three terms for the same idea: Performing an action or a set of actions a number of times Fixed or definite repetition : – – • You know how many repetitions before you enter the loop Also counter-controlled repetition Pascal uses FOR loop Example : printing out a rectangle Variable or indefinite repetition : – You don’t know how many repetitions you will do before you enter the loop – Sentinel-controlled loops – Pascal uses two types of loops: • WHILE loop – Pretest loop : condition is tested at the top of the loop and therefore before ever entering the loop – Body of loop executed 0 or more times • REPEAT loop – Postest loop : condition is tested at the top of the loop – Body of loop executed at least one time in order to reach the condition Examples of all of these in slides from Week 3. 1. • We will look at these in more detail later

Conditional / Selection Statements • The basic idea, at the level of the algorithm,

Conditional / Selection Statements • The basic idea, at the level of the algorithm, is that there is a choice to be made • Three types of choices: 1. Yes/no choice. If yes, do something, otherwise do nothing 2. Either/or choice. A 2 -way choice. Do something different in each case. 3. Multiple choice. An N-way chice. Do something different in each case. It can be expressed as a series of 2 -way choices. • Like most programming languages, Pascal provides a way of expressing these choices.

Combining Statements • The various types of statements can be combined in many ways.

Combining Statements • The various types of statements can be combined in many ways. • In particular, control statements can be nested inside each other. Nesting is a visual/physical relationship but also a control relationship. – One loop can be performed inside another – A conditional statement can control whether a loop is executed – A conditional statement can be executed several times inside a loop • When several statements are controlled by another statement we often use BEGIN and END to create compound statements

Example: Drawing Rectangles FOR I : = 1 to Height BEGIN FOR J :

Example: Drawing Rectangles FOR I : = 1 to Height BEGIN FOR J : = 1 TO Width write(‘*’); writeln; END This FOR loop controls only the input/output statement “write(‘*’)”. This FOR loop controls a compound statement enclosed by the BEGIN and END. The inner FOR statement is nested inside the outer FOR statement.