Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 1400 Chap 6 Functions. Library routines are functions! root = sqrt (a); power = pow (b, c); function name argument arguments.

Similar presentations


Presentation on theme: "CS 1400 Chap 6 Functions. Library routines are functions! root = sqrt (a); power = pow (b, c); function name argument arguments."— Presentation transcript:

1 CS 1400 Chap 6 Functions

2 Library routines are functions! root = sqrt (a); power = pow (b, c); function name argument arguments

3 Functions General form; type Name ( parameters ) { … return value ; } parameters is a list of comma-separated declarations – or it can be empty

4 Example: my_abs() int my_abs (int value) {int answer; if (value < 0) answer = -value; else answer = value; return answer; } number passed into the function number passed back from the function

5 Example: main program int main () {int number, answer; cout << “enter a number: “; cin >> number; answer = my_abs (number); cout << “absolute value is: “ << answer << endl; }

6 More on functions… Functions can be placed –after boilerplate but before main() simplest –below main() covered later –in another file covered later A function has its own variables!

7 types… The return value of a function must match the function type. Arguments passed to function parameters must match in type and in position. if either of these rules is neglected, the computer will force (cast) a match.

8 Value passing… int MyFunc (float a, int b) { int temp = x+y; return temp; } int main() { float x=5.1; int z, y=21; z = MyFunc (x, y);

9 Value passing diagrams… main() MyFunc() z x y a b 5.1 21 temp MyFunc (x, y); 5.121

10 Examples: FunctionExample Squarecout << Square (21.6); Cubey = Cube (z); Maxcout << Max (a, b); Absy = Abs (x); PrintHeadPrintHead(); GetBetweeny = GetBetween (21, 80); Roundcout << Round (3.567);

11 Quiz Write a void function that accepts two integer parameters and puts them in numerical order. In other words, if the first is less than the second, their values are exchanged. Example use: int a, b; cout << “Enter two integers: “; cin >> a >> b; Order (a, b); cout << “In order: “ << a << “, “ << b << endl;

12 Global variables… Variables declared outside of main() or a function are globally accessible. int x; int main() { cout << x; … Local variables may eclipse global variables int x; int main() { int x; cout << x; …

13 Static variables… Static variables retain their values when a function exits and are only created and initialized once void MyFunc () { static int counter = 0; cout << counter++; } int main() {MyFunc();// outputs 0 MyFunc();// outputs 1 MyFunc();// outputs 2…

14 Reference parameters… A function using reference parameters can modify corresponding arguments void Swap (int &a, int &b) { int temp = a; a = b; b = temp; } int main() { … Swap (x, y); Swap (cost, rate);

15 The value passed or copied into a reference parameter is a forwarding address… main() Swap() x y cost rate a b see x in main() see y in main() temp Swap (x, y); 591239

16 Results… main() Swap() x y cost rate a b see x in main() see y in main() temp 591239 95 5

17 main() Swap() x y cost rate a b see cost in main() see rate in main() temp Swap (cost, rate); 951239

18 main() Swap() x y cost rate a b see cost in main() see rate in main() temp 951239 Results… 3912

19 Example: Max() The function Max() is intended to determine the maximum value of a list of N numbers input by the user (The argument N is provided by the caller).

20 Example: MaxMin() The function MaxMin() is intended to determine two values; the maximum and minimum values of a list of 10 numbers input by the user

21 Functions need not return a value! If a function does not return a value, its type is void and it does not need a return void MyFunc ( int a ) { cout << “the value is: “ << a; cout << “and the square is: “ << a*a; }

22 Alternate function locations… Functions can be placed below calling functions if the function prototype is above the other functions that call it. A prototype is the first line or title of a function – followed by a semicolon. Functions can be placed in a separate file if the function prototype is above other functions that call it and the function file is included in the project

23 Example A void Swap (int &a, int &b) { int temp = a; a = b; b = temp; } int main() { …// function Swap() is used here return 0; }

24 Example B void Swap (int &a, int &b); // function prototype int main() { … // function Swap() is used here return 0; } void Swap (int &a, int &b) { int temp = a; a = b; b = temp; }

25 Example C FILE A.cpp: void Swap (int &a, int &b); int main() { … // Swap used here return 0; } FILE B.cpp: void Swap (int &a, int &b) { int temp = a; a = b; b = temp; }

26 Overloading functions… Several functions may have the same name Each function must have a unique signature –name –number and type of parameters Note that the return type of a function is not part of its signature!

27 Examples… cout << Sum (a, b, c); cout << Sum (a, b); cout << Sum (a, b, c, d);

28 Default Arguments A function may specify default values for parameters in its prototype. Example: Example function calls: int TotalPrice (float item_cost; float taxrate = 0.065; int count=1); cout << TotalPrice (5.98); cout << TotalPrice (7.95, 0.075); cout << TotalPrice (3.56, 0.055, 3);

29 Default Arguments… Only the last or ending arguments may have default values Illegal: cout << TotalCost (4.68,, 4); // ERROR!!

30 Reference Parameters (bis) All arguments for reference parameters must be simple variables – expressions are not allowed; int MyFunc (int x, int& y); … z = MyFunc (5+a, 7*b); OK Illegal!

31 Example project Calculate the average of a series of test scores. The input file consists of many students in following format; Fred 7 32 53 44 25 96 87 68 (name) (count) (scores) For each student, the output should be the name, average, maximum, and minimum; Fred: average 63.3 max: 96 min: 25


Download ppt "CS 1400 Chap 6 Functions. Library routines are functions! root = sqrt (a); power = pow (b, c); function name argument arguments."

Similar presentations


Ads by Google