1 / 31

Modules – the Basics

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).

eyal
Télécharger la présentation

Modules – the Basics

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Header Declarations const : Statements begin end. Where To __________ Modules Module ________ (___________ & ____________)

  3. Procedure definition Procedures (Basic Case) Procedure call No Information Is Passed In/ No Parameters

  4. 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. Calling A Procedure (Basic Case – No __________) Format: name; Example: displayInstructions; The name of the procedure is a ____________.

  6. 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.

  7. 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.

  8. 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;

  9. 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. 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 ___________

  11. 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;

  12. 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. 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

  14. 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;

  15. pennies dimes amount quarters ___________________ To Modules • Modules generally aren’t useful unless they can ______________________. computeChange

  16. Procedures With ____________________ Passed In Procedure call P1 P2 …Pn Procedure definition

  17. _________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 *)

  18. Calling Modules (Procedures) With Parameters Format: name (Name of parameter 1, Name of parameter 2…Name 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. 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 ____________

  21. 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.

  22. 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.

  23. 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.

  24. 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. 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. 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. Pass by ______ vs. Pass by __________ • Each _______ parameter is ____________ to the _______ of the corresponding ____________ parameter. Called ________________________.

  28. 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. ... ... ... 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

  30. 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 _________________________)

  31. 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

More Related