CMP 131 Introduction to Computer Programming - PowerPoint PPT Presentation

About This Presentation
Title:

CMP 131 Introduction to Computer Programming

Description:

If the car is running out of gas, put in gasoline. ... Named after the mathematician George Boole who invented logic. Boolean expressions ... – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 61
Provided by: violettaca
Learn more at: http://www.cs.cmu.edu
Category:

less

Transcript and Presenter's Notes

Title: CMP 131 Introduction to Computer Programming


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
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
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I ?
J ?
8
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J ?
9
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J ?
10
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 1
11
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 1
12
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 1
13
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 2
14
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 2
15
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 2
16
A few steps later
17
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 6
18
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 6
19
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 1
J 6
20
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 2
J 6
21
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 2
J 6
22
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 2
J 6
23
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 2
J 1
24
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 2
J 1
25
A few steps later
26
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 3
J 6
27
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 4
J 6
28
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 4
J 6
29
DATA MEMORY
  • 007 008 I 1009 IF I gt 3 GOTO 018010 J
    1 011 IF J gt 5 GOTO 015012 write()013
    J J 1014 GOTO 011015 writeln016 I I
    1017 GOTO 009018

I 4
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/icm
    is/oakman/outline/chap05/slides/symbols.htm

31
Flowchart Symbols

32
Rectangle Flow Chart
BEGIN
yes
I gt 3
no
yes
J gt 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 dont want to seem
    impolite, say hello back.

34
Yes/No Choice The IF-THEN Statement
  • Syntax IF ltconditiongt THEN ltstatementgt
  • 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
Either/Or Choice The IF-THEN-ELSE Statement
  • Syntax IF ltconditiongt THEN ltstatementgt ELSE
    ltstatementgt
  • Syntax graph
  • Flowchart

37
What is ltstatementgt ?
  • 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 ltstatementgt ltstatementgt
    .ltstatementgt
  • END

38
What is ltconditiongt ?
  • 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
  • lt less than or equal to
  • lt less than
  • gt greater than or equal to
  • gt greater than
  • equal
  • ltgt 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 lt old
  • B lt A
  • value ltgt -99999
  • 3.0 lt 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
    bankELSE Ask parents for money
  • IF Value lt MinValue OR Value gt MaxValue THEN
    writeln (Value , Value, is out of range.)

43
Truth Tables for Boolean Operators
  • Op1 Op2 Op1 AND Op2 Op1 OR Op2 NOT 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
  • Operator Precedence
  • ( ) parentheses Highest (evaluated first)
  • - NOT (unary operators)
  • / DIV MOD AND
  • - OR
  • lt lt ltgt gt gt Lowest (evaluated last)

45
  • (4.2 gt 5.0) AND (8 (3 5))
  • (4.2 gt 5.0) OR (8 (3 5))
  • writeln('Value of (-2 lt 0) AND (18 gt 10) is ',
  • (-2 lt 0) AND (18 gt 10) )
  • writeln('Value of (-2 lt 0) OR (18 gt 10) is
    ',
  • (-2 lt 0) OR (18 gt 10) )
  • writeln('Value of (3 gt 5) AND (14.1 0.0) is
    ',
  • (3 gt 5) AND (14.1 0.0) )
  • writeln('Value of (3 gt 5) OR (14.1 0.0) is
    ',
  • (3 gt 5) OR (14.1 0.0) )
  • writeln('Value of NOT (18 10 8) is ',
  • NOT (18 10 8) )
  • writeln('Value of NOT (-4 gt 0) is ',
  • NOT (-4 gt 0) )
  • writeln('Value of ''a'' lt ''b'' is ', 'a' lt
    'b' )
  • writeln('Value of ''a'' lt ''A'' is ', 'a' lt
    '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 cant 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

51
Task Decomposition (1)
  • Write table header
  • WIDTH LENGTH AREA
  • Write table contents
  • 4 2 8
  • 21 5 105
  • Simplest code
  • writeln(WIDTH LENGTH AREA)
  • writeln( 4 2 8)
  • writeln( 21 5 105)

52
Using formatting
  • Assume table header starts in first column 1
  • Write header as
  • WIDTH, 8 spaces, LENGTH, 8 spaces, AREA
  • Write columns of numbers as
  • First number fits in field of width 3
  • Second number fits in field 284 14
  • Third column fits in field of 284 14
  • Code will be
  • writeln(WIDTH, 8,LENGTH, 8,AREA)
  • writeln(43,214,814)
  • writeln(213,514,10514)

53
Exercises 1.5, 8
  • Assume the hourly wages of five students are
    3.65, 4.10, 2.89, 5.00, 4.50. Write a program
    that produces the following output, where the E
    in Employees is in column 20.

54
Desired Output
  • 12345678901234567890123456789012345678901234
  • -------------------------
  • Employees Hourly Wage
  • -------------------------
  • 1 3.65
  • 2 4.10
  • 3 2.89
  • 4 5.00
  • 5 4.50
  • -------------------------

55
Task Decomposition (1)
  • Write table header
  • -------------------------
  • Employees Hourly Wage
  • -------------------------
  • Write table contents
  • 1 3.65
  • .
  • Write table footer
  • -------------------------

56
Task Decomposition (2)
  • Write table header
  • Write line starting at column 20
  • Write column headings starting at column 20
  • Write line starting at column 20
  • -------------------------
  • Employees Hourly Wage
  • -------------------------
  • Write table contents
  • Write 5 lines each with
  • Employee number starting at column 23
  • Employee wage starting at column 36
  • 1 3.65
  • .
  • Write table footer
  • Write line starting at column 20
  • -------------------------

57
Task Decomposition (2)
  • Write table header
  • Write line starting at column 20
  • Write column headings starting at column 20
  • Write line starting at column 20
  • -------------------------
  • Employees Hourly Wage
  • -------------------------
  • Write table contents
  • Write 5 lines each with
  • Employee number starting at column 23
  • Employee wage starting at column 36
  • 1 3.65
  • .
  • Write table footer
  • Write line starting at column 20
  • -------------------------

58
Task Decomposition (3)
  • Write table header
  • Write line starting at column 20
  • Write column headings starting at column 20
  • Write line starting at column 20
  • -------------------------
  • Employees Hourly Wage
  • -------------------------
  • Pascal code
  • CONST Line -------------------------
  • BEGIN
  • writeln( 19,Line)
  • writeln( 19,Employee, 5,Hourly
    Wage)
  • writeln( 19,Line)
  • END.

59
Task Decomposition (4)
  • Write table contents
  • Write 5 lines each with
  • Employee number starting at column 23
  • Employee wage starting at column 36
  • 1 3.65
  • .
  • Pascal code
  • BEGIN
  • writeln(123,13,3.6552)
  • writeln(223,13,4.1052)
  • writeln(323,13,2.8952)
  • writeln(423,13,5.0052)
  • writeln(523,13,4.5052)
  • END.

60
Task Decomposition (5)
  • Write table footer
  • Write line starting at column 20
  • -------------------------
  • Pascal code
  • CONST Line -------------------------
  • BEGIN
  • ...
  • writeln( 19,Line)
  • END.
Write a Comment
User Comments (0)
About PowerShow.com