Presentation is loading. Please wait.

Presentation is loading. Please wait.

J. Michael Moore Modules – the Basics CSCE 110 Influenced by material developed by James Tam & Jennifer Welch.

Similar presentations


Presentation on theme: "J. Michael Moore Modules – the Basics CSCE 110 Influenced by material developed by James Tam & Jennifer Welch."— Presentation transcript:

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


Download ppt "J. Michael Moore Modules – the Basics CSCE 110 Influenced by material developed by James Tam & Jennifer Welch."

Similar presentations


Ads by Google