Pascal i control structures l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 43

PASCAL I - Control Structures PowerPoint PPT Presentation


  • 230 Views
  • Uploaded on
  • Presentation posted in: General

PASCAL I - Control Structures. Philip Fees CS241. Week 1 Topics. Reserved Words Syntax Diagrams PASCAL Program Basic Data Types Basic Output. Reserved Words. See page 29-30 Identifiers that are part of the syntax of the language

Download Presentation

PASCAL I - Control Structures

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Pascal i control structures l.jpg

PASCAL I - Control Structures

Philip Fees

CS241

CS241 PASCAL I - Control Structures


Week 1 topics l.jpg

Week 1 Topics

  • Reserved Words

  • Syntax Diagrams

  • PASCAL Program

  • Basic Data Types

  • Basic Output

CS241 PASCAL I - Control Structures


Reserved words l.jpg

Reserved Words

  • See page 29-30

  • Identifiers that are part of the syntax of the language

  • Cannot be used for constant, type, variable, function, procedure identifier names

CS241 PASCAL I - Control Structures


Syntax diagrams l.jpg

Syntax Diagrams

  • See page 30-31

  • Graphic representation of a language’s grammar

  • Identifier:

    [A-Za-z][A-Za-z0-9]*

CS241 PASCAL I - Control Structures


Pascal program l.jpg

PASCAL Program

  • See page 32

  • What is the minimum PASCAL program?

CS241 PASCAL I - Control Structures


Basic data types l.jpg

Basic Data Types

  • integer (-maxint <= integer <= maxint)

  • real (4567.123, 4.567123 x 103, 4.567123E3)

  • char (‘a’, ‘7’, ‘ ‘)

  • String constant (const name = ‘sally’;)

CS241 PASCAL I - Control Structures


Basic output l.jpg

Basic Output

  • write - output without newline terminator

  • writeln - output with newline terminator

  • writeln(expr1[:n[:n]], expr2[:n[:n]], … , exprN[:n[:n]]);

CS241 PASCAL I - Control Structures


Exercises l.jpg

Exercises

  • Exercise #39, page 52

CS241 PASCAL I - Control Structures


Week 2 topics l.jpg

Week 2 Topics

  • Arithmetic Operators

  • Basic Debugging (tracing and print)

  • Basic Input

  • Constants

  • Standard Functions

CS241 PASCAL I - Control Structures


Arithmetic operators l.jpg

Arithmetic Operators

  • ( ), *, MOD, DIV, /, +, -

  • What is an operator?

  • Precedence - evaluation sequence of multiple operator expressions

  • Typically left to right, but can be inside to outside or right to left.

CS241 PASCAL I - Control Structures


Basic input l.jpg

Basic Input

  • Variables - name vs. memory location

  • Data pointer

    • location of next data item to be read from input stream

  • read - input next data item

  • readln - input next data item, skip to next line

CS241 PASCAL I - Control Structures


Constants l.jpg

Constants

  • Maintenance - descriptive name, one location updates

    CONST

    pi = 3.14;

    VAR

    area, radius : real;

    ...

    area := 3.14 * radius * radius;

    vs.

    area := pi * radius * radius;

CS241 PASCAL I - Control Structures


Standard functions l.jpg

Standard Functions

  • pp. 92 & 96

  • what is a function

    • perform some operation on argument(s)

    • returns value(s) as determined by operation

  • Example

    area := pi * sqr(radius);

CS241 PASCAL I - Control Structures


Week 3 topics l.jpg

Week 3 Topics

  • Boolean Logic

    • Relational Operators

    • Boolean Expressions

  • IF THEN ELSE Statements

  • CASE Statements

CS241 PASCAL I - Control Structures


Boolean expression l.jpg

Boolean Expression

  • Relational Operators (=, <, >, <=, >=, <>) used to build Boolean Expressions

  • Logical Operators (AND, OR, NOT) used to build Compound Boolean Expressions

  • Exercise: pp 177-178 #16-22, #28-33

CS241 PASCAL I - Control Structures


If then statements l.jpg

IF THEN Statements

  • A decision-making statement

  • Syntax:

    IF <boolean expression> THEN

    <statement>

  • Review flow diagram, figure 5.1 pg. 179

CS241 PASCAL I - Control Structures


Compound statements l.jpg

Compound Statements

  • Treats a set of statements as one

  • Good programming practice even for single statement. Why?

  • Syntax:

    IF <boolean expression> THEN

    BEGIN

    <statement1>;

    <statement2>;

    ...

    <statementN>;

    END;

CS241 PASCAL I - Control Structures


If then else statements l.jpg

IF THEN ELSE Statements

  • Action to occur only if boolean statement is false

  • Review flow diagram, figure 5.2 pg. 187

CS241 PASCAL I - Control Structures


Nested if statements l.jpg

Nested IF Statements

  • When the <statement> part of IF or ELSE is an IF THEN ELSE statement

  • Nested IF ELSE is considered a single statement and doesn’t require BEGIN END

  • Review Example 5.13 on page 197

  • WARNING: ensure ELSE matches to correct IF

CS241 PASCAL I - Control Structures


Case statement l.jpg

CASE Statement

  • Abbreviated IF THEN, ELSE IF THEN, etc statement

  • Review flow diagram, figure 5.4 pg. 209 and CASE rules on pg. 210

  • protect case with IF THEN ELSE or use of OTHERWISE

CS241 PASCAL I - Control Structures


Exercises21 l.jpg

Exercises

  • Modify LAB #2 to improve the display

  • New features

    • If the coefficient is 1 don’t display the 1:

      1x + 2y = 5 becomes x + 2y = 5

    • if the coefficient is 0 don’t display:

      0x + 5y = 5 becomes 5y = 5

    • display subtraction

      2x + -1y becomes 2x - y = 0

    • give error if division by 0 would occur

CS241 PASCAL I - Control Structures


Week 4 topics l.jpg

Week 4 Topics

Nested Selection

No additional information available

CS241 PASCAL I - Control Structures


Week 5 topics l.jpg

Week 5 Topics

  • Repetition Problem

  • Conditional Branch

  • Pre-testing (Top-testing) Loops

  • Post-testing (Bottom-testing) Loops

  • Comparing Loops

CS241 PASCAL I - Control Structures


Repetition problem l.jpg

Repetition Problem

  • A class of problems that can be solved by repeatedly performing some task until some condition is no longer valid.

  • Example 1: Monopoly, “Go to Jail” until you roll doubles, 3 rolls, or pay $50.

  • Example 2: N ! = 1 * 2 * 3 * ... (N-1) * N

  • Iterations could be written as sequence of steps - # of iterations may vary.

CS241 PASCAL I - Control Structures


Conditional branch l.jpg

Conditional Branch

  • Predates looping constructs

    label:

    statement1;

    statement2;

    ...

    statementN;

    if ( boolean expression is true)

    goto label;

  • Exercise: Write N! using conditional branch logic

CS241 PASCAL I - Control Structures


Loop terminology l.jpg

Loop Terminology

  • initialization - assign values before evaluation

  • evaluate - determine if loop should continue

  • increment - modify or increase loop controls

  • iteration - one pass over loop (evaluate, body, increment)

  • loop body - syntax that is executed with each iteration of loop

CS241 PASCAL I - Control Structures


Pre testing top testing loops l.jpg

Pre-testing (Top-testing) Loops

  • Evaluates looping condition before executing body of loop

  • Body of loop executes a minimum of 0 times

  • Pascal has FOR and WHILE loops

  • FOR loop (pg. 239)

    • based on FORTRAN FOR loop

    • used for fixed increment looping

  • WHILE loop (pg. 252)

    • General purpose top-testing loop

CS241 PASCAL I - Control Structures


For loop l.jpg

For Loop

  • Syntax:

    FOR <var> := <init> [TO | DOWNTO] <value> DO

  • Good practice to have maximum iteration value defined as a CONST or VAR (i.e., don’t hard code).

  • Loop control variable may or may not be defined as VAR

  • Exercise: pg. 251 7-10

CS241 PASCAL I - Control Structures


While loop l.jpg

While Loop

  • Syntax:WHILE <Boolean expr> DO

  • Exercise: pg. 264 #3, 4, 5

CS241 PASCAL I - Control Structures


Post testing bottom testing loops l.jpg

Post-testing (Bottom-testing) Loops

  • Evaluates looping condition after executing body of loop

  • Body of loop executes a minimum of 1 times

  • Syntax:

    REPEAT

    UNTIL <Boolean expr>

  • Exercise: pg. 272 #3, 4, 5.

CS241 PASCAL I - Control Structures


Comparing loops l.jpg

Comparing Loops

  • Each loop can be rewritten in another loop’s syntax

  • Easier to use similar testing loops (i.e. for and while)

  • Review Example 6.22, and 6.23 on pg 275

CS241 PASCAL I - Control Structures


Exercises32 l.jpg

Exercises

  • Write one of the following:

    • pg. 312 # 12 (easier) NOTE: read term from keyboard instead of file

    • pg. 310 # 6a (moderate)

    • pg. 311 #8 (harder)

CS241 PASCAL I - Control Structures


Week 6 topics l.jpg

Week 6 Topics

  • Nested Loops

CS241 PASCAL I - Control Structures


Examples l.jpg

Examples

  • pg. 285

  • Example 6.26 pg. 285

  • Example 6.30 pg. 291

  • Program Problem 6 b pg. 310

CS241 PASCAL I - Control Structures


Week 7 8 topics l.jpg

Week 7 & 8 Topics

  • Subprogramming

  • Procedures

  • Parameters

  • Side Effects

CS241 PASCAL I - Control Structures


Subprogramming l.jpg

Subprogramming

  • Modular - readability, exchange (swap), and fix parts

  • Subtasks - repetitive execution of sub functionality

  • Structured - receive values, perform task, return result

  • Black Box design - Lego building blocks

CS241 PASCAL I - Control Structures


Procedures l.jpg

Procedures

  • Design to perform small discreet task

  • Thought of as a small program - test as such

  • Program is a collection/series of procedure (function) calls

  • Discuss procedure format slide (pg. 321)

CS241 PASCAL I - Control Structures


Procedures cont l.jpg

Procedures (cont.)

  • Placed in declaration section of program/procedure/function

  • use {-------------} to denote procedure boundary

  • procedure name unique to program (scope)

CS241 PASCAL I - Control Structures


Procedure execution l.jpg

Procedure Execution

  • a procedure is called or invoked by name

  • flow of control jumps to first line in procedure

  • on completing procedure, flow of control returns to first line after procedure call

  • walk through exercise 11 pg. 335

CS241 PASCAL I - Control Structures


Parameters l.jpg

Parameters

  • PROCEDURE <name> ( <parameter list> );

  • parameter list format: similar to VAR format

  • Discuss parameter notes slide

CS241 PASCAL I - Control Structures


Parameter types l.jpg

Parameter Types

  • formal - variables in procedure heading (parameters)

  • actual - values in procedure call (arguments)

  • call by value (value parameters) arguments are copies to parameters

  • call by reference (variable parameters) parameters refer to arguments

CS241 PASCAL I - Control Structures


Side effects l.jpg

Side Effects

  • Unintended change in a variable

  • Typically associated with call by reference parameter passing

  • Considered “bad” programming. Why?

  • Sometimes desirable. When/Example?

CS241 PASCAL I - Control Structures


Exercise l.jpg

Exercise

  • Walk through program on pg. 349

  • Do prime program in class #2, pg. 372

  • Lab: #3 pg. 372, #8 pg. 373, prime program above.

CS241 PASCAL I - Control Structures


  • Login