Title: Modules
1Modules the Basics
- CSCE 110
- Influenced by material developed by James Tam
Jennifer Welch
2Where To __________ Modules
Module ________ (___________ ____________)
3Procedures (Basic Case)
Procedure call
No Information Is Passed In/ No Parameters
4Defining 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 )
5Calling A Procedure (Basic Case No __________)
- Format
- name
- Example
- displayInstructions
The name of the procedure is a ____________.
6Where 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.
7Important A Module Must Be ________ Before It
Can Be ___________!
program exampleModule (output) procedure
exampleProcedure begin end begin
exampleProcedure end.
8Important A Module Must Be ________ Before It
Can Be ________!
program exampleModule (output) begin
exampleProcedure end. procedure
exampleProcedure begin end
9Procedures
- 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 )
10Procedures
- 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 ___________
11Declaring _______ Variables
- Format
- procedure name
- var
- ltvariable 1 namegt ltvariable 1 typegt
- ltvariable 2 namegt ltvariable 2 typegt
-
- begin
-
- end
- Example
- procedure proc
- var
- num1 integer
- num2 integer
- begin
-
- end
12Declaring __________ 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.
13Declaring ________ 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
14______ 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
15___________________ To Modules
- Modules generally arent useful unless they can
______________________.
computeChange
16Procedures With ____________________ Passed In
Procedure call
P1
P2
Pn
Procedure definition
17Defining 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 ',
celciusValue02) - writeln(temperature in Fahrenheit ',
fahrenheitValue02) - end ( Procedure celciusToFahrenheit )
18Calling Modules (Procedures) With Parameters
- Format
- name (Name of parameter 1, Name of
parameter 2Name of parameter n) - Example
- celciusToFahrenheit (celciusValue)
_________Parameters
19________ and _________ Parameters
- __________ parameters The parameters in the
method _______________. - __________ parameters The parameters in the
method _______________. - Parameters act like _________________ within a
module.
20____________ and ______________ Parameters
- Module call and module definition must have
- _____________ of parameters
- ______________ parameters must have the same
_______ - e.g. definitionprocedure calc(i integer, f
real, bboolean)e.g. call calc(num, avg,
flag)where - _____ must be of type ____________
- _____ must be of type ____________
- _____ must be of type ____________
21Important 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.
22Important 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.
23Important 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.
24Example 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.
25Procedures 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 ',
celsiusValue02) - writeln('Temperature in Fahrenheit ',
fahrenheitValue02) - end ( Procedure celsiusToFahrenheit )
26Procedures 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 )
27Pass by ______ vs. Pass by __________
- Each _______ parameter is ____________ to the
_______ of the corresponding ____________
parameter. Called ________________________.
28Pass by ______ vs. Pass by __________
- Let actP be actual and formP be formal
- Pass by __________
- actP and formP refer to __________ memory
locations - ________ of actPs ______________ to formPs
_______ - 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, well see how to make it pass by
_________________.
29Pass by ______ vs. Pass by __________
- procedure larger(iinteger jinteger
kinteger)begin if (iltj) then i j
k iend - 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
30Stack 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 _________________________)
31Stack Frames Example