Fundamental Programming Function Parameters Fundamental Programming 310201 1
- Slides: 49
Fundamental Programming Function Parameters Fundamental Programming 310201 1
Memory Management · in last lecture you leant about local variables · unless authorised, other functions cannot change the value of a local variable · authority to change a variable is given when we call a function with an output variable · in this class we explore how input and output variables work - this is an important topic · let’s start with input variables… Fundamental Programming 310201 2
Input Variables · when a function with an input variable is called, the value of the variable in the call is copied into the function’s local variable Fundamental Programming 310201 3
#include <iostream> void Sub. Function(int Local. To. Sub); note: here, name of variable in call does not match name of input variable in declaration void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } Sub. Function assigns a value to Local. To. Sub – it has no effect on value of Local. To. Main Fundamental Programming 310201 4
Input Variables · value of variable in call is copied to local variable declared in the function header… void main(void) Local. To. Main { : Sub. Function(Local. To. Main); : } void Sub. Function(int Local. To. Sub) { : Local. To. Sub } main’s variable function call function header Sub. Function’s variable Fundamental Programming 310201 5
#include <iostream> void Sub. Function(int Local. To. Sub); void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } Local. To. Sub: Fundamental Programming 310201 6
#include <iostream> void Sub. Function(int Local. To. Sub); main(void) => void { } int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } ? Local. To. Sub: ? Fundamental Programming 310201 7
#include <iostream> void Sub. Function(int Local. To. Sub); => void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } ? Local. To. Sub: ? Fundamental Programming 310201 8
#include <iostream> void Sub. Function(int Local. To. Sub); => void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } ? Local. To. Sub: ? Fundamental Programming 310201 9
#include <iostream> void Sub. Function(int Local. To. Sub); => void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 Local. To. Sub: ? Fundamental Programming 310201 10
#include <iostream> void Sub. Function(int Local. To. Sub); => void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 c o p y Local. To. Sub: 1 Fundamental Programming 310201 11
#include <iostream> void Sub. Function(int Local. To. Sub); void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } => void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 Local. To. Sub: 1 Fundamental Programming 310201 12
#include <iostream> void Sub. Function(int Local. To. Sub); void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } => void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 Local. To. Sub: 1 Fundamental Programming 310201 13
#include <iostream> void Sub. Function(int Local. To. Sub); void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } => void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 Local. To. Sub: 1 Fundamental Programming 310201 14
#include <iostream> void Sub. Function(int Local. To. Sub); void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } => 1 Local. To. Sub: 2 Fundamental Programming 310201 15
#include <iostream. h> void Sub. Function(int Local. To. Sub); => void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 Local. To. Sub: 2 Fundamental Programming 310201 16
Example dialog Local. To. Main after call is: Fundamental Programming 310201 17
#include <iostream> void Sub. Function(int Local. To. Sub); => void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 Local. To. Sub: 2 Fundamental Programming 310201 18
Example dialog Local. To. Main after call is: 1 Fundamental Programming 310201 19
#include <iostream> void Sub. Function(int Local. To. Sub); => void main(void) { int Local. To. Main = 1; Local. To. Main: Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int Local. To. Sub) { Local. To. Sub = 2; } 1 Local. To. Sub: 2 Fundamental Programming 310201 20
Memory Management · when a function with an input variable is called, the value of the variable in the call is copied into the function’s local variable · two functions can have a local variable with the same name · at the end of the following program, main’s Local. Variable holds 1, and Sub. Function’s Local. Variable holds 2 Fundamental Programming 310201 21
#include <iostream> void Sub. Function(int Local. Variable); void main(void) { int Local. Variable = 1; Local. Variable: Sub. Function(Local. Variable); cout << "Local. Variable after call is: "; cout << Local. Variable; } void Sub. Function(int Local. Variable) { Local. Variable = 2; } Local. Variable: note: these are two quite different variables – they refer to different memory locations Fundamental Programming 310201 22
#include <iostream> void Sub. Function(int Local. Variable); => void main(void) { int Local. Variable = 1; Local. Variable: Sub. Function(Local. Variable); cout << "Local. Variable after call is: "; cout << Local. Variable; } 1 void Sub. Function(int Local. Variable) { Local. Variable = 2; } Local. Variable: 2 note: at the end of the program, these two variables hold different values Fundamental Programming 310201 23
Activity · the design for a program to determine the highest and second highest of two integers is provided in the handout · the required behavior is shown below: Enter an integer ==> 3 Enter another integer ==> 4 Highest integer is: 4 Second highest integer is: 3 Fundamental Programming 310201 24
Activity · as provided, the program will not produce this output? · activities: · what output will the program produce? · what is the final value of the following variables: Int 1 Int 2 Local Fundamental Programming 310201 25
Activity Break Fundamental Programming 310201 26
Activity Feedback · what output will the program produce? Enter an integer ==> 3 Enter another integer ==> 4 Highest integer is: 3 Second highest integer is: 3 · final value of variables is a trick question: Int 1 (in main) : 3 Int 1 (in Swap) : 4 Int 2 : 3 Local : 3 Fundamental Programming 310201 27
Output Variables · the authority to use a variable is given when a function with an output variable is called · when you call a function with an input variable, the value of the variable in the call is copied into a local variable in the function · when you call a function with an output variable, no data is copied… · instead, you grant the function permission to use the variable in the call Fundamental Programming 310201 28
#include <iostream> void Sub. Function(int &Parameter); note: similar to program used before; difference is that Sub. Function’s parameter is for output void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } Local. To. Main is 2 after void Sub. Function(int &Parameter) call to Sub. Function { Parameter = 2; } Sub. Function assigns a value to Parameter – effect is to change value of Local. To. Main Fundamental Programming 310201 29
Output Variables · when you call a function with an output variable, no data is copied - a local variable is not created in the function · instead, you grant the function permission to use the variable in the function call… · variables provide us with a convenient way to refer to memory locations · a variable references a memory location · so, the variable in a function call serve as a reference to a memory location of interest Fundamental Programming 310201 30
Output Variables · when you call a function with an output variable, no data is copied - a local variable is not created in the function the output variable in a function header provides a the · instead, you grant the function permission to use variable in the function call… reference to the same · variables provide us with a convenient way to refer memory location to memory locations · a variable references a memory location – the memory location of · so, the variable in a function call serve as a reference a memory location of interest the tovariable in the call Fundamental Programming 310201 31
#include <iostream> void Sub. Function(int &Parameter); Local. To. Main is a name we use to refer to a memory location void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int &Parameter ) { Parameter = 2; } Parameter serves as a reference to the same memory location Fundamental Programming 310201 32
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 33
#include <iostream> void Sub. Function(int &Parameter); main(void) => void { } int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 34
#include <iostream> void Sub. Function(int &Parameter); void main(void) { => int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 35
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; => Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 36
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); => cout << "Local. To. Main after call is: "; cout << Local. To. Main; } 1 void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 37
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } 1 void Sub. Function(int &Parameter ) => { Parameter = 2; } Fundamental Programming 310201 38
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } 1 void Sub. Function(int &Parameter ) { => } Parameter = 2; Fundamental Programming 310201 39
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } => 1 void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 40
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } 2 void Sub. Function(int &Parameter ) { Parameter = 2; } => Fundamental Programming 310201 41
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); => cout << "Local. To. Main after call is: "; cout << Local. To. Main; } 2 void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 42
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; => } 2 void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 43
Example dialog Local. To. Main after call is: Fundamental Programming 310201 44
#include <iostream> void Sub. Function(int &Parameter); void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; => } 2 void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 45
Example dialog Local. To. Main after call is: 2 Fundamental Programming 310201 46
#include <iostream> void Sub. Function(int &Parameter); => void main(void) { int Local. To. Main = 1; Sub. Function(Local. To. Main); cout << "Local. To. Main after call is: "; cout << Local. To. Main; } 2 void Sub. Function(int &Parameter ) { Parameter = 2; } Fundamental Programming 310201 47
Reference Parameters · parameters marked for input only are called value parameters – a value is copied into a local variable · parameters marked for output are called reference parameters – they provide a reference to the memory location of the variable in the function call : call Sub. Function( Local. Variable ) : ? void Sub. Function( int &Parameter ) {…} Fundamental Programming 310201 48
Summary · in this lecture we’ve examined an important topic – value and reference parameters · it may take a while for you to become comfortable with these ideas · we will work on these ideas in tutes and labs to raise your comfort level · in the next lecture we will deal with the outstanding issue of the void in: void Get. Nearest. Prime(int Number, int &Nearest. Prime); void Get. Yor. NReply(char &Reply); Fundamental Programming 310201 49
- Vertial
- Fundamental parameters of antenna
- Gaussian function parameters
- Gaussian function parameters
- In void function, formal parameters are optional.
- Perbedaan linear programming dan integer programming
- Greedy programming vs dynamic programming
- Windows 10 system programming, part 1
- Linear vs integer programming
- Definisi integer
- Xcopy parameters
- Lesson 4 parameters and return make
- Parameters and return practice
- Lennard-jones parameters table
- Y parameter
- Five parameters of sign
- Zener diode parameters
- Sparameters
- Scaling factor in vlsi
- Uplink design in satellite communication
- Actual parameters in c
- Parameter of intrest
- Thermal building blocks
- What is conditional macro expansion
- Ruby keyword arguments
- Mechanical efficiency of engine
- Robo
- Arguments vs parameters
- Evaluation parameters of semi solid dosage forms
- S-parameters basics
- Variation of parameters
- Method of variation of parameters
- Actual parameters in c
- Densenet number of parameters
- Thread height
- Estimating parameters and determining sample sizes
- Z parameters
- Urine anion gap calculator
- Abg parameters
- Z parameters
- Abgs normal range
- The variable for fbd control parameters includes
- Docker parameters
- Lesson 3 parameters and return practice 8
- Transaction launcher in sap crm
- Technical performance parameters
- Cayley-klein parameters
- For counting the number of positional parameters
- Abcd short
- Coeficiente multinomial