Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 2.

Similar presentations


Presentation on theme: "CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 2."— Presentation transcript:

1 CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 2

2 Today’s Plan Questions Quiz (1/2 hour) Break (brief) Lecture: Important Programming Concepts

3 Program Structure Programs are made up of: –Program headers –Declaration statements: Name things Allocate memory Examples: –Constant Definitions –Type Definitions –Variable Declarations –Executable statements Statements that perform actions

4 Executable Statements Assignment statements Selection statements Looping statements ….

5 Important Structured Programming Concepts Selection Repetition/Looping/Iteration Sequential execution (stacking) Nesting Blocks & Compound Statements (Most high-level PLs provide constructs for these important structured programming concepts. Pascal was one of the first PLs to provide them.)

6 Selection Conditional statements –Condition controlled execution –Single branch : IF THEN –Two branches : IF THEN ELSE –Multiple branches: CASE statement

7 Selection Examples Single branch: –IF a condition is true THEN perform an action –The condition is tested once –The action is performed once Examples: –IF it’s cold THEN wear a coat –IF a homework is due THEN do it –…

8 Selection Examples Two branches: –IF a condition is true THEN perform an action ELSE perform a different action –The condition is tested once –One of the two actions is performed once Examples: –To take the absolute value of a number: IF N >= 0 THEN return N ELSE return -N –IF the time is before noon THEN say good morning ELSE say good afternoon –…

9 Selection Examples Multiple branches: –The condition is tested once –Several values of the condition are possible –Several actions are possible –One of the actions is performed once Examples: –CASE Score OF 10, 9 : Grade is A 8, 7 : Grade is B 6, 5 : Grade is C OTHERWISE Grade is F –…

10 Repetition / Looping / Iteration Fixed / Definite –Know before entering how many times will repeat loop body –While the “how many times” may be a variable: Its value is set before entry into the loop Its value may not (should not) be changed inside the loop –FOR loop Variable Condition / Indefinite –Don’t know before entering how many times will repeat loop body –Entry into / exit from loop is controlled by a variable that can be changed inside the loop –REPEAT…UNTIL : tests condition at end –WHILE … DO : tests condition at start

11 Mean of 20 Numbers: Refinement PROCESSING: Initialize Sum to 0 Do the following 20 times: Get a Number Add it to Sum Compute Mean as Sum / 20 This is an example of definite looping: You know how many times you go around the loop when you start.

12 Mean of N Take 1: Refinement PROCESSING: Initialize Sum to 0 Prompt for value of Count Read value of Count Do the following Count times: Prompt for Number Read Number Add Number to Sum Compute Mean as Sum / Count This is ALSO an example of definite looping : You know how many times you go around the loop when you start.

13 Mean of N Numbers (Take 2): Refinement PROCESSING: Initialize Sum to 0 Initialize Count to 0 repeat Prompt for Number Read Number Add Number to Sum Increment Count by 1 until no more numbers Compute Mean as Sum / Count

14 Mean of N (Take 3) PROCESSING: Initialize Sum to 0 Initialize Count to 0 P rompt for Number Read Number while Number is not equal to -99999 do: Add Number to Sum Increment Count Prompt for Number Read Number Compute Mean as Sum / Count This is also an example of indefinite looping : You DO NOT know how many times you go around the loop until you finish. called a sentinel value because it guards the loop

15 Stacking Two meanings: –sequential execution vs. nested execution one statement/block of code after the other, vs. one statement/block of code inside the other –a way of storing and retrieving data: Last-In First-Out (LIFO) regime Used in a certain style of processor architecture (stack machines) Used for memory management at runtime with procedure and function calls. Used for certain types of applications (e.g. search)

16 Nesting A block of code is visually placed inside another block of code AND The execution of the internal block of code is controlled by the execution of the external block of code. Ex. Do the following 20 times: Get a Number Add it to Sum

17 PROGRAM Silly (output); CONST Name = 'George'; Age = 26; VAR J, Sum : integer; BEGIN Sum := 0; FOR J := 1 TO 10 DO Sum := Sum + J; writeln ('My name is ':28, Name); writeln ('My age is ':27, Age); writeln; writeln ('The sum is ':28, Sum) END.

18 PROGRAM Silly (output); CONST Name = 'George'; Age = 26; VAR J, Sum : integer; BEGIN Sum := 0; FOR J := 1 TO 10 DO Sum := Sum + J; writeln ('My name is ':28, Name); writeln ('My age is ':27, Age); writeln; writeln ('The sum is ':28, Sum) END.

19 Blocks of Code Most statements like FOR, IF, etc.. control only one other statement: –What do I mean by that? To make them control multiple statements, you need to enclose those statements in a bracketing mechanism: BEGIN … END. BEGIN … END –essentially says: treat all my contents as if they were a single complex statement –creates a compound statement


Download ppt "CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 2."

Similar presentations


Ads by Google