modules the basics n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Modules – the Basics PowerPoint Presentation
Download Presentation
Modules – the Basics

Loading in 2 Seconds...

play fullscreen
1 / 31

Modules – the Basics - PowerPoint PPT Presentation


  • 95 Views
  • Uploaded on

Modules – the Basics. CSCE 110 Influenced by material developed by James Tam & Jennifer Welch. Header. Declarations. const :. Statements. begin end. Where To __________ Modules. Module ________ ( ___________ & ____________ ). Procedure definition. Procedures (Basic Case).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Modules – the Basics' - eyal


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
modules the basics

Modules – the Basics

CSCE 110

Influenced by material developed by James Tam & Jennifer Welch

where to modules

Header

Declarations

const

:

Statements

begin

end.

Where To __________ Modules

Module ________ (___________ & ____________)

procedures basic case

Procedure definition

Procedures (Basic Case)

Procedure call

No Information Is Passed In/ No Parameters

defining procedures basic case no
Defining Procedures (Basic Case – No __________)

Format:

procedure name;

begin

{ Statements of the procedure go here }

end; { End of procedure name }

Example:

procedure displayInstructions;

begin

writeln ('The statements in this module will');

writeln (' typically give a high level');

writeln (' overview of what the program as a');

writeln ('whole does');

end; (* End of procedure displayInstructions *)

calling a procedure basic case no
Calling A Procedure (Basic Case – No __________)

Format:

name;

Example:

displayInstructions;

The name of the procedure is a ____________.

where to modules1
Where To ______ Modules

It can be done ________________________ in the program – but must be done ___________ its ____________.

Header

Declarations

const

:

Modules can be ______ from the ______________ of the program or from within any _______ as long as the __________ is already ___________.

Module definitions

Main Body

begin

end.

important a module must be before it can be

Correct

First: _______ the module

Second: _______ the module

Important: A Module Must Be ________ Before It Can Be ___________!

program exampleModule (output);

procedure exampleProcedure;

begin

:

end;

begin

exampleProcedure;

end.

important a module must be before it can be1

Incorrect

First: ________ the module

Code?

Second: ____________ the module

Important: A Module Must Be ________ Before It Can Be ________!

program exampleModule (output);

begin

exampleProcedure;

end.

procedure exampleProcedure;

begin

:

end;

procedures
Procedures

firstExampleProcedure.pas

program firstExampleProcedure (output);

procedure displayInstructions;

begin

writeln ('The statements in this module will typically give a’);

writeln (‘high level overview of what the program as a’);

writeln (‘whole does');

end; (*Procedure displayInstructions *)

begin

displayInstructions;

writeln('Thank you, come again!');

end. (* Program *)

procedures1
Procedures

firstExampleProcedure.pas

program firstExampleProcedure (output);

procedure displayInstructions;

begin

writeln ('The statements in this module will typically give a’);

writeln (‘high level overview of what the program as a’);

writeln (‘whole does');

end; (*Procedure displayInstructions *)

begin

displayInstructions;

writeln('Thank you, come again!');

end. (* Program *)

Procedure ___________

Procedure ___________

declaring variables
Declaring _______ Variables

Format:

procedure name;

var

<variable 1 name> : <variable 1 type>;

<variable 2 name> : <variable 2 type>;

: :

begin

:

end;

Example:

procedure proc;

var

num1 : integer;

num2 : integer;

begin

: :

end;

declaring variables1
Declaring __________ Variables

program secondExampleProcedure (output);

procedure proc;

var

num1 : integer;

begin

var num2 : integer;

num1 := 1;

num2 := 2;

writeln(num1, ' ', num2);

end;

begin

var num1 : integer;

num1 := 10;

writeln(num1);

proc;

writeln(num1);

end.

declaring variables2
Declaring ________ Variables

secondExampleProcedure.pas

program secondExampleProcedure (output);

procedure proc;

var

num1 : integer;

begin

var num2 : integer;

num1 := 1;

num2 := 2;

writeln(num1, ' ', num2);

end;

begin

var num1 : integer;

num1 := 10;

writeln(num1);

proc;

writeln(num1);

end.

______ variable: procedure ‘proc’

________ variable: main module

variables have

This ________ is __________ here

These 4 __________ are _________ to procedure ‘calculateInterest’

______ Variables Have ____________________

procedure getInformation;

begin

write (‘Enter the principle: ‘);

readln (principle);

end;

procedure calculateInterest;

var

amount : integer;

principle : integer;

interest : integer;

time : integer;

begin

getInformation;

end;

to modules

pennies

dimes

amount

quarters

___________________ To Modules
  • Modules generally aren’t useful unless they can ______________________.

computeChange

procedures with passed in
Procedures With ____________________ Passed In

Procedure call

P1

P2

…Pn

Procedure definition

defining modules procedures with

_________Parameters

Defining Modules (Procedures) With ____________

Format:

procedure name (Name of parameter 1 : type of parameter 1;

Name of parameter 2 : type of parameter 2;

: :

Name of parameter n : type of parameter n);

begin

(* Statements of the procedure go here *)

end;

Example:

procedure celciusToFahrenheit (celciusValue : real);

var

fahrenheitValue : real;

begin

fahrenheitValue := 9 / 5 * celciusValue + 32;

writeln(‘temperature in Celsius: ', celciusValue:0:2);

writeln(‘temperature in Fahrenheit: ', fahrenheitValue:0:2);

end; (* Procedure celciusToFahrenheit *)

calling modules procedures with parameters
Calling Modules (Procedures) With Parameters

Format:

name (Name of parameter 1, Name of parameter 2…Name of parameter n);

Example:

celciusToFahrenheit (celciusValue);

_________Parameters

and parameters
________ and _________ Parameters
  • __________ parameters: The parameters in the method _______________.
  • __________ parameters: The parameters in the method _______________.
  • Parameters act like _________________ within a module.
and parameters1
____________ and ______________ Parameters
  • Module call and module definition must have:
    • _____________ of parameters
    • ______________ parameters must have the same _______
    • e.g. definition:procedure calc(i: integer, f: real, b:boolean);e.g. call:calc(num, avg, flag)where:
      • _____ must be of type ____________
      • _____ must be of type ____________
      • _____ must be of type ____________
important the and parameter lists must

Procedure definition requires an __________ parameter

parameters match

Procedure call passes in an __________ parameter

Important: The _____ and _____ Parameter Lists Must _____!
  • The ______ and _________ of parameters must ________ or there will be a compilation error.

program parameterExample;

procedure proc (num : integer);

begin

num := 10;

end;

begin

var num : integer;

proc (num);

end.

important the and parameter lists must1

Procedure definition requires __________ parameter

Number of parameters

not equal

Procedure call passes in ________parameters

Important: The _____ and _____ Parameter Lists Must _____!
  • The ______ and _________ of parameters must ________ or there will be a compilation error.

program parameterExample;

procedure proc (num : integer);

begin

num := 10;

end;

begin

proc;

end.

important the and parameter lists must2

Procedure definition requires an __________ parameter

Type mismatch

Procedure call passes in a ______ parameter

Important: The _____ and _____ Parameter Lists Must _____!
  • The ______ and _________ of parameters must ________ or there will be a compilation error.
  • .

program parameterExample;

procedure proc (num : integer);

begin

num := 10;

end;

begin

var ch : char;

proc (ch);

end.

example problem
Example Problem

Write a program that will convert a temperature value from Celsius to Fahrenheit.

The part of the program that performs that actual conversion should take the form of a separate module.

procedures putting together the case of procedures with parameters
Procedures: Putting Together The Case Of Procedures With Parameters

temperatureConverter.pas

program temperatureConverter (input, output);

procedure celsiusToFahrenheit (celsiusValue : real);

var

fahrenheitValue : real;

begin

fahrenheitValue := 9 / 5 * celsiusValue + 32;

writeln('Temperature in Celsius: ', celsiusValue:0:2);

writeln('Temperature in Fahrenheit: ', fahrenheitValue:0:2);

end; (* Procedure celsiusToFahrenheit *)

procedures putting together the case of procedures with parameters 2
Procedures: Putting Together The Case Of Procedures With Parameters (2)

begin

var celsiusValue : real;

writeln;

writeln('This program will convert a given temperature from a Celsius');

writeln('value to a Fahrenheit value.');

write(‘Enter a temperature in Celsius: ');

readln(celsiusValue);

writeln;

celsiusToFahrenheit(celsiusValue);

writeln('Thank you and come again.');

end. (* Program *)

pass by vs pass by
Pass by ______ vs. Pass by __________
  • Each _______ parameter is ____________ to the _______ of the corresponding ____________ parameter. Called ________________________.
pass by vs pass by1
Pass by ______ vs. Pass by __________
  • Let actP be actual and formP be formal
    • Pass by __________
      • actP and formP refer to __________ memory locations
      • ________ of actP’s______________ to formP’s_______
      • changes to formP are __________ to the caller (i.e. actP)
    • Pass by Reference
      • actP and formP refer to __________ memory location
      • the _______ for formP is ____________________ for actP
      • changes to formP are __________ to the caller (i.e. actP)
    • By default, Pascal passes variables by ________. However, we’ll see how to make it pass by _________________.
pass by vs pass by2

...

...

...

k

a

b

c

i

j

...

...

a,i

b,j

c,k

Pass by ______ vs. Pass by __________
  • procedure larger(i:integer; j:integer; k:integer);begin if (i<j) then i := j; k := i;end;
  • Suppose that larger is called with:
    • a := 3; b := 5; larger(a,b,c);
    • After calling larger and passing by __________, then a = 3, b = 5, c = 5
    • After calling larger if passing by __________, then a = 5, b = 5, c = 5
stack frames

Module call (local variables get _________ in memory)

Module ends (local variables get ____________ in memory)

Stack Frames
  • When a method begins executing, space on the ________, called a _____________, is ____________ for it, to hold
    • formal parameters
    • local variables declared in the method
    • return value (for functions)
  • When the method finishes __________, the _______ frame is ______________, and the formal parameters and local variables are _______________________.

The program code in the module executes (the variables are used to _________________________)

stack frames example

q

r

p

p

p

p

main

main

main

main

main

main calls p

p calls q

q returns

p calls r

s

r

r

p

p

p

main

main

main

main

r calls s

s returns

r returns

p returns

Stack Frames Example