1 / 60

CMP 131 Introduction to Computer Programming

CMP 131 Introduction to Computer Programming. Violetta Cavalli-Sforza Week 6, Lecture 1 (Monday). TODAY. Flow of control and flow charts Conditional statements Boolean expressions Go over Homework #2 programming part. TOMORROW (Lab).

Download Presentation

CMP 131 Introduction to Computer Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. TODAY • Flow of control and flow charts • Conditional statements • Boolean expressions • Go over Homework #2 programming part

  3. TOMORROW (Lab) • Exercises on the computer with I/O and simple conditional statements. • Review of topics for Midterm Exam

  4. CONST = value Identifier ; Syntax Graphs, Flowcharts, & Structure Charts • Syntax graph • To define the language syntax • Structure chart • To show the relationship between program modules and the data transfer between the modules (Example) Compute mean of 3 numbers Read 3 numbers Compute mean of inputs Display mean to screen

  5. Flowchart • A form of visual control-flow specification employing arrows and balloons of various shapes. • Shows flow of actions (algorithm) in a program

  6. What is Flow of Control? How the locus (location) of execution changes as the program executes. Example. Let Height = 3 and Width = 5 FOR I := 1 to Height BEGIN FOR J := 1 TO Width DO write(‘*’); writeln; END

  7. DATA MEMORY I = ? 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = ?

  8. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = ?

  9. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = ?

  10. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 1

  11. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 1

  12. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 1

  13. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 2

  14. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 2

  15. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 2

  16. A few steps later …

  17. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  18. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  19. DATA MEMORY I = 1 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  20. DATA MEMORY I = 2 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  21. DATA MEMORY I = 2 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  22. DATA MEMORY I = 2 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  23. DATA MEMORY I = 2 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 1

  24. DATA MEMORY I = 2 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 1

  25. A few steps later …

  26. DATA MEMORY I = 3 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  27. DATA MEMORY I = 4 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  28. DATA MEMORY I = 4 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  29. DATA MEMORY I = 4 007 …008 I := 1009 IF I > 3 GOTO 018010 J := 1 011 IF J > 5 GOTO 015012 write(‘*’)013 J := J + 1014 GOTO 011015 writeln016 I := I + 1017 GOTO 009018 … J = 6

  30. Flow of Control • You can show it by animation for the simplest programs or • You can show it much more succinctly with Flow Charts • A graphical formalism for showing how control flows through a program • Standard Flowchart Symbols (later) fromhttp://www.wiley.com/legacy/college/busin/icmis/oakman/outline/chap05/slides/symbols.htm

  31. Flowchart Symbols

  32. I := 1 J := 1 write(‘*’) J := J+1 writeln I := I+1 Rectangle Flow Chart BEGIN yes I > 3 no yes J > 5 no END

  33. Yes/No Choice • The logic: IF some condition or test is TRUE THEN perform some action [ ELSE do nothing ] • Examples: • If the car is running out of gas, put in gasoline. • If you are failing your class and you cannot drop it, study more. • If someone says hello and you don’t want to seem impolite, say hello back.

  34. IF statement condition THEN statement 1 statement 3 statement 2 Yes/No Choice: The IF-THEN Statement • Syntax: IF <condition> THEN <statement> • Syntax graph: • Flowchart: yes condition no

  35. Either/Or Choice • The logic: IF some condition or test is TRUE THEN perform some action ELSE perform a different action • Examples: • If the weather is hot wear light clothes, else wear warm clothes. • If a number is odd increment OddCount else increment EvenCount • If a noun starts with a capital letter categorize it as a proper noun (name) else as a common noun.

  36. IF THEN condition ELSE statement statement statement 1 statement 4 statement 2 statement 3 yes no condition Either/Or Choice : The IF-THEN-ELSE Statement • Syntax: IF <condition> THEN <statement> ELSE <statement> • Syntax graph: • Flowchart:

  37. What is <statement> ? • A single statement: • An input or output statement • An assignment • Another IF … THEN … ELSE statement • A looping statement (FOR, WHILE, REPEAT) • A compound statement: BEGIN <statement> ; <statement> ; ….<statement> END

  38. What is <condition> ? • A boolean expression • Named after the mathematician George Boole who invented logic. • Boolean expressions • Evaluate to TRUE or FALSE • Include • different types of operands • different types of operators

  39. Boolean Expressions • Boolean constants • TRUE • FALSE • Boolean variables • Declared as type “boolean” CONST Debug = TRUE; { or FALSE } VAR SaveDebug : BOOLEAN;

  40. Relational expressions: Arithmetic, character, or strings acted upon by relational operators: • Relational operators are: • <= less than or equal to • < less than • >= greater than or equal to • > greater than • = equal • <> not equal • Relational operators compare two compatible values • Two characters • Two strings • Real and integer • Two Booleans • Relational operators return a Boolean value

  41. Examples: new < old ‘B’ < ‘A’ value <> -99999 3.0 < 4 MiddleInitial = ‘L’ 1.0 = 1.0/ 3.0 * 3.0 { Implementation dependent}

  42. Logical expressions: Boolean values acted upon by logical operators • Logical operators are: • AND • OR • NOT • Logical operators take Boolean operands and return Boolean values. • Examples: • IF NeedMoney AND (NOT HaveMoneyInHand) AND HAVE MoneyInBankTHEN {Go get money at the bank}ELSE {Ask parents for money} • IF Value < MinValue OR Value > MaxValue THEN writeln (‘Value ‘, Value, ‘ is out of range.’)

  43. Truth Tables for Boolean Operators Op1Op2Op1 AND Op2Op1 OR Op2NOT Op1 true true true true false true false false true false false true false true true false false false false true binary operators unary operator

  44. Operator Precedence: Arithmetic, Relational and Logical OperatorPrecedence ( ) parentheses Highest (evaluated first) - + NOT (unary operators) * / DIV MOD AND + - OR < <= = <> >= > Lowest (evaluated last)

  45. (4.2 >= 5.0) AND (8 = (3 + 5)) (4.2 >= 5.0) OR (8 = (3 + 5)) writeln('Value of (-2 < 0) AND (18 >= 10) is : ', (-2 < 0) AND (18 >= 10) ); writeln('Value of (-2 < 0) OR (18 >= 10) is : ', (-2 < 0) OR (18 >= 10) ); writeln('Value of (3 > 5) AND (14.1 = 0.0) is : ', (3 > 5) AND (14.1 = 0.0) ); writeln('Value of (3 > 5) OR (14.1 = 0.0) is : ', (3 > 5) OR (14.1 = 0.0) ); writeln('Value of NOT (18 = 10 + 8) is : ', NOT (18 = 10 + 8) ); writeln('Value of NOT (-4 > 0) is : ', NOT (-4 > 0) ); writeln('Value of ''a'' < ''b'' is : ', 'a' < 'b' ); writeln('Value of ''a'' < ''A'' is : ', 'a' < 'A' );

  46. Summary of Operations on Boolean Values • Logical operations (AND, OR, NOT) • Relational operators act on non-Boolean values but return Boolean values • Assignment VAR Debug, SaveDebug : BOOLEAN; Debug := TRUE; SaveDebug := Debug; {Save the value of Debug} • Output (in Turbo Pascal) writeln (‘The value of Debug is ‘, Debug); • (Not Input – can’t read/readln a Boolean value)

  47. Boolean expressions • Appear primarily in control structures • Used to determine the sequence in which Pascal statement are executed. • Boolean variables are often called Boolean ‘flags’ : var Debug, SaveDebug : Boolean; … BEGIN … SaveDebug := Debug; Debug := TRUE; IF Debug THEN {print out the value of several variables} Debug := SaveDebug; ... END

  48. Example Expressions • See program BOOLEXPR.PAS

  49. Go Over Homework #2, Programming Part

  50. Exercises 1.5, #13 • Write a complete program that produces the following table: WIDTH LENGTH AREA 4 2 8 21 5 105

More Related