1 6/20/2015cs150 introduction to computer science 1 functions chapter 6, 8
Post on 20-Dec-2015
215 views
TRANSCRIPT
![Page 1: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/1.jpg)
104/18/23 CS150 Introduction to Computer Science 1
FunctionsChapter 6, 8
![Page 2: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/2.jpg)
2
Review
Functionso Prototype
o Call
o Definition
Passing argumentso By value
o By reference
![Page 3: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/3.jpg)
3
Arrays as Function Arguments (8.8)
You can pass an array as an argument to a function
void printIntArray(int arr[], int size);
int main(){ int values[] = {5, 6, 0, 1, 2, 3, 4}; const int SIZE = 7;
printIntArray(values, SIZE);
return 0;}
Array Name
![Page 4: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/4.jpg)
4
Arrays as Function Arguments
void printIntArray(int arr[], int size)
{
for(int i = 0; i < size; i++)
{
cout << arr[i] << endl;
}
}
![Page 5: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/5.jpg)
5
Passing Single Array Elements
Passing single array elements is like passing in a single variable
void showValue(int num);
int main()
{
int values[] = {5, 6, 0, 1, 2, 3, 4};
const int SIZE = 7;
for(int i = 0; i < SIZE; i++)
{
showValue(values[i]);
}
return 0;
}
![Page 6: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/6.jpg)
6
Passing Arrays into Functions
Arrays are always passed by reference
What does this mean?
![Page 7: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/7.jpg)
7
Q.1. Practice
Write a function that will accept an integer array and a size for that array, and return the sum of all the elements in the arrayo int sumArray(int array[], int size);
![Page 8: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/8.jpg)
8
Q.2. Practice
Write a function that will accept an integer array and a size for that array and return the highest value in the arrayo int getHighest(int array[], int size);
![Page 9: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/9.jpg)
9
Variable Scope (6.10)
Scope: where can a variable be used?
Local Scope: variable is only available locally (within a function, loop, etc.)
int foo(int x){ int value = x * 2; for(int k = 0; k < value; k++) { value += (k % 3); } value += k; // ERROR return value;}
![Page 10: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/10.jpg)
10
Variable Scope
Global Scope: variable is available everywhere in the source codeo often a bad idea!
int lowervalue = 0;
int foo(int x){ int value = x * 2; for(int k = lowervalue; k < value; k++) { value += (k % 3); } return value;}
![Page 11: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/11.jpg)
11
Variable Scope
Local variables can hide other variables
int lowervalue = 0;
int foo(int lowervalue){ int value = lowervalue * 20; for(int k = lowervalue; k < value; k++) { value += (k % 3); } return value;}
![Page 12: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/12.jpg)
12
Variable Scope
int value = 99;int foo(int lowervalue){ int lowervalue = 20; // ERROR for(int k = lowervalue; k < value; k++) { value += (k % 3); } return value;}
![Page 13: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/13.jpg)
13
Q.3. Practice: What is the result?
int number = 0;
int foo(int value){ int number = value * 10; for(int value = 0; value < number; value++) { value += number; } return value;}
int main(){ int number = 2; cout << foo(number); return 0;}
![Page 14: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/14.jpg)
14
Q.4. Static Local Variables (6.11)
What happens here?void foo(){ int value = 20;cout << “ value: “ << value << endl;value *= 22;
}
int main(){foo();foo();
}
![Page 15: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/15.jpg)
15
Q.6. Static Local Variables
Sometimes we want a function to retain a value between useso static local variables
void foo(){ static int value = 20;
cout << “ value: “ << value << endl;value *= 2;
}
int main(){
foo();foo();
}
![Page 16: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/16.jpg)
16
Q.7. Practice: Static Local Variables
Write a function that will count the number of times it has been called and print that to the screen.
Write a function that will take one integer as a parameter and produce a running sum and running average of the values used as arguments when it is called.
![Page 17: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/17.jpg)
17
Default Arguments (6.12)
“Default arguments are passed to the parameters automatically if no argument is provided in the function call” p343
void stars(int numberOfStars = 5){
for(int i = 0; i < numberOfStars; i++) {
cout << “*”;}cout << endl;
}
int main(){ stars(10); stars();}
![Page 18: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/18.jpg)
18
Default Arguments
// specify the default arguments the first time// you define the functionvoid stars(int numberOfStars = 5);
int main(){ stars(10); stars();}
// do not redefine the default arguments herevoid stars(int numberOfStars){
for(int i = 0; i < numberOfStars; i++) {
cout << “*”;}cout << endl;
}
![Page 19: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/19.jpg)
19
Q.8. Practice: Default Arguments
Write a function that will accept either one or two integers as parameters and return the area of a square (if one parameter is specified) or a rectangle (if two parameters are specified)
![Page 20: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/20.jpg)
20
Overloading Functions (6.14)
“Two or more functions may have the same name as long as their parameter lists are different.” p354o return data type is not considered
int area(int length);int area(int length, int width);
int square(int value);double square(double value);
int increment(int value); // ERRORdouble increment(int value); // ERROR
![Page 21: 1 6/20/2015CS150 Introduction to Computer Science 1 Functions Chapter 6, 8](https://reader030.vdocument.in/reader030/viewer/2022032800/56649d4c5503460f94a2a035/html5/thumbnails/21.jpg)
21
Q.9. Practice: Overloaded Functions
Write two overloaded functions that will produce the sum and average of three integers or three doubles.