210 likes | 370 Views
CS 105 Lecture 10 Functions. Version of Mon, Mar 28, 2011, 3:13 pm. Quiz 2 Scores. Hmm. 17 Scores: 474338 3734 32 3229 2722 22 21 2114109 9 Avg 26.3/50 (or 52.6/100)Std dev 11.7. Quiz 2 Scores. Numerous problems came from Labs. Functions.
E N D
CS 105 Lecture 10 Functions Version of Mon, Mar 28, 2011, 3:13 pm
Quiz 2 Scores • Hmm.... 17 Scores: 474338 3734 32 3229 2722 22 21 2114109 9 Avg 26.3/50 (or 52.6/100)Std dev 11.7
Quiz 2 Scores • Numerous problems came from Labs
Functions • Function: A discrete piece of code that performs a specific operation or task • Named with a descriptive identifier • Called from main() or another function • When called, program control (execution) is transferred to the function. • Function performs required tasks, and then possibly returns a value. • After return from function, control returns to the statement following the function call.
Function Attributes • Function Name: Identifier used to call function. • Function Parameter(s) or Argument(s): value(s) passed into function for use by function code. • Function Return Value: Value returned by function back to calling function.
Math Library • Provides a library of common math functions. Get via #include<cmath> • Must call functions with correct number and order of parameters. • Functions return value after calculations. • Example: The power function pow; square root function sqrt. • double bigValue; • double base = 2.0, exponent = 20.0; • bigValue = pow(base, exponent); • cout << bigValue << " " << sqrt(bigValue) << endl;
User-Defined Functions • We can write our own functions; we need to specify the name of the function, the number and kinds of parameters it takes, and the kind of value it returns (if any). • Plus, the "body" of the function — the code that does the calculation • Example: • double calcAverage(int total, int numItems) • { • double result = (double) total / numItems; • return result; • }
Define Function Before Main • #include <iostream> • using namespace std; • double calcAverage(int total, int numItems) • { • double result = (double) total / numItems; • return result; • } • int main() • { • int sumGrades = 921, numStudents = 10; • double avgGrade; • avgGrade = calcAverage(sumGrades,numStudents); • cout << avgGrade << endl; • cout << calcAverage(1200, 14) << endl; • }
Define Functions After Main? • If you have many functions, then you might have a lot of code to get through before you actually get to the main program. • Nice to have the main program first and the functions afterward. • But what if we use calcAvg before we give its definition? • How will the compiler know if we're calling calcAvg correctly?
Use Function Prototype • A function prototype tells the compiler how we'll use the function. (Omits the function body.) • #include <iostream> • using namespace std; • Function Prototype "declares" calcAverage • double calcAverage(int total, int numItems); ←–––––– NOTE ! • int main() • { • // etc • } • "Definition" of calcAverage gives its body • double calcAverage(int total, int numItems) • { • // rest of body as before • }
Declaring a Function • Function Prototype: Declares a function's name and how it is called; it doesn't define the body of the function. • Used by the compiler check for syntax errors in how we call the function • Example: • double calcAverage(int total, int numItems); • double is the return type. • calcAverage is the function name. • total is the first parameter and it has type int • numItems is the second parameter and it has type int. • Standard functions (e.g., those in the STL = Standard Template Library) have function prototypes in header files that we #include.
Functions – Return Types • A function with a return type of int must have a return of some integer. • Similarly, a function with a return type of double must have a return of some double, etc. • That's why main programs include return0; • A function with void as its return type doesn't return a value. (A.k.a. "void" function) • It can have a return; statement (with no value). • Or it can fall off the end of the function (a return; is assumed).
Parameters & Arguments • May pass as many parameters as necessary to function. • A copy of the value of the parameter is passed to the function. • Changing the value of the parameter in the function does not affect the value of the original variable. • This is called Pass-by-Value
Example of void function • #include <iostream> • using namespace std; • void printNum(int); // function prototype • int main() • { • int myNumber = 7; • printNum(myNumber); // function call • printNum(9); • return 0; • } • // begin function definition • void printNum(int numToPrint) • { • cout << numToPrint; • }
Functions • Write a function that accepts one integer as a parameter. The function returns the sum of the integers from 1 to the integer passed to the function. • 5 minutes …… GO!
Sum Function • int sumOfInt(int num) • { • int i, sum = 0; • for(i = 1; i <= num; i++) • sum = sum + i; • return(sum); • }
Function Calls • Write a function call to call sumOfInt with an argument of 5, save the return value into a variable and print it out. • 2 minutes – GO!
Function Calls • int sumOfInt(int); • int main() • { • int sum5; • sum5 = sumOfInt(5); cout << sum5 << endl; • return 0; • }
Display Line Function • Write a function that displays a character some number of times to the display. The function is passed the character and the number of times to display it. • 5 minutes: GO!
displayChar() Function • void displayChar(char charPassed, int times) • { • int i; • for(i = 0; i < times; i++) • cout << charPassed; • cout << endl; • }
do • { • theLabs(threeHoursAWeek); • } • while (!semesterDone);