Download presentation
Presentation is loading. Please wait.
1
J. Michael Moore Modules – the Basics CSCE 110 Influenced by material developed by James Tam & Jennifer Welch
2
J. Michael Moore Where To __________ Modules Header const : Declarations begin end. Statements Module ________ (___________ & ____________)
3
J. Michael Moore Procedures (Basic Case) Procedure call Procedure definition No Information Is Passed In / No Parameters
4
J. Michael Moore 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 *)
5
J. Michael Moore Calling A Procedure (Basic Case – No __________) Format: name; Example: displayInstructions; The name of the procedure is a ____________.
6
J. Michael Moore Where To ______ Modules It can be done ________________________ in the program – but must be done ___________ its ____________. Header const : Declarations begin end. Main Body Module definitions Modules can be ______ from the ______________ of the program or from within any _______ as long as the __________ is already ___________.
7
J. Michael Moore Important: A Module Must Be ________ Before It Can Be ___________! program exampleModule (output); procedure exampleProcedure; begin : end; begin exampleProcedure; end. First: _______ the module Second: _______ the module Correct
8
J. Michael Moore Important: A Module Must Be ________ Before It Can Be ________! program exampleModule (output); begin exampleProcedure; end. procedure exampleProcedure; begin : end; Second: ____________ the module First: ________ the module Code? Incorrect
9
J. Michael Moore 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 *)
10
J. Michael Moore 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 ___________
11
J. Michael Moore Declaring _______ Variables Format: procedure name; var : ; : : begin : end; Example: procedure proc; var num1 : integer; num2 : integer; begin : : end;
12
J. Michael Moore 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.
13
J. Michael Moore 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: main module ______ variable: procedure ‘proc’
14
J. Michael Moore ______ 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; These 4 __________ are _________ to procedure ‘calculateInterest’ This ________ is __________ here
15
J. Michael Moore ___________________ To Modules Modules generally aren’t useful unless they can ______________________. computeChange amount quarters dimes pennies
16
J. Michael Moore Procedures With ____________________ Passed In Procedure call P1P1 P2P2 …P n Procedure definition
17
J. Michael Moore 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 *) _________ Parameters
18
J. Michael Moore Calling Modules (Procedures) With Parameters Format: name (Name of parameter 1, Name of parameter 2…Name of parameter n); Example: celciusToFahrenheit (celciusValue); _________ Parameters
19
J. Michael Moore ________ and _________ Parameters __________ parameters: The parameters in the method _______________. Parameters act like _________________ within a module.
20
J. Michael Moore ____________ 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 ____________
21
J. Michael Moore 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. Procedure definition requires an __________ parameter Procedure call passes in an __________ parameter parameters match
22
J. Michael Moore 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. Procedure definition requires __________ parameter Procedure call passes in ________ parameters Number of parameters not equal
23
J. Michael Moore 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. Procedure definition requires an __________ parameter Procedure call passes in a ______ parameter Type mismatch Important: The _____ and _____ Parameter Lists Must _____!
24
J. Michael Moore 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.
25
J. Michael Moore 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 *)
26
J. Michael Moore 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 *)
27
J. Michael Moore Pass by ______ vs. Pass by __________ Each _______ parameter is ____________ to the _______ of the corresponding ____________ parameter. Called ________________________.
28
J. Michael Moore 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 _________________.
29
J. Michael Moore 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 Pass by ______ vs. Pass by __________... a,ib,jc,k... abcji k
30
J. Michael Moore 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 _______________________. Module call (local variables get _________ in memory) The program code in the module executes (the variables are used to _________________________) Module ends (local variables get ____________ in memory)
31
J. Michael Moore Stack Frames Example main p main calls p p main q p calls q p main q returns p main r p calls r p main r r calls s s p main r s returns p main r returns main p returns
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.