cs 105 lecture 10 functions

21
1 CS 105 Lecture 10 Functions Version of Mon, Mar 28, 2011, 3:13 pm

Upload: mara-peters

Post on 04-Jan-2016

38 views

Category:

Documents


2 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CS 105 Lecture 10 Functions

1

CS 105 Lecture 10Functions

Version of Mon, Mar 28, 2011, 3:13 pm

Page 2: CS 105 Lecture 10 Functions

2

Quiz 2 Scores• Hmm....

Grade Range 50 Count45 - 49 45 140 - 44 40 135 - 39 35 230 - 34 30 325 - 29 25 220 - 24 20 4

Below 20 4

Total 17

17 Scores:474338 3734 32 3229 2722 22 21 2114109 9Avg 26.3/50 (or 52.6/100)Std dev 11.7

Page 3: CS 105 Lecture 10 Functions

3

Quiz 2 Scores• Numerous problems came from Labs

Q2 Question Pts Textbook Exercise

1 2 4.6(a): switch

6 3 4.8: switch

7 3 5.2: while

8 3 5.9: while

9 3 5.6: for loop

10 15PgmEx 5.10(c)

Total 29

Page 4: CS 105 Lecture 10 Functions

4

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.

Page 5: CS 105 Lecture 10 Functions

5

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.

Page 6: CS 105 Lecture 10 Functions

6

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;

Page 7: CS 105 Lecture 10 Functions

7

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;}

Page 8: CS 105 Lecture 10 Functions

8

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;}

Page 9: CS 105 Lecture 10 Functions

9

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?

Page 10: CS 105 Lecture 10 Functions

10

• A function prototype tells the compiler how we'll use the function. (Omits the function body.)

Use Function Prototype

#include <iostream>using namespace std;

Function Prototype "declares" calcAveragedouble calcAverage(int total, int numItems); ←––––––

int main(){ // etc}

"Definition" of calcAverage gives its bodydouble calcAverage(int total, int numItems)

{ // rest of body as before}

Page 11: CS 105 Lecture 10 Functions

11

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.

Page 12: CS 105 Lecture 10 Functions

12

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 return 0; • 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).

Page 13: CS 105 Lecture 10 Functions

13

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

Page 14: CS 105 Lecture 10 Functions

14

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 definitionvoid printNum(int numToPrint){ cout << numToPrint;}

Page 15: CS 105 Lecture 10 Functions

15

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!

Page 16: CS 105 Lecture 10 Functions

16

Sum Functionint sumOfInt(int num){ int i, sum = 0; for(i = 1; i <= num; i++) sum = sum + i; return(sum);}

Page 17: CS 105 Lecture 10 Functions

17

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!

Page 18: CS 105 Lecture 10 Functions

18

Function Callsint sumOfInt(int);

int main(){ int sum5; sum5 = sumOfInt(5); cout << sum5 << endl; return 0;}

Page 19: CS 105 Lecture 10 Functions

19

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!

Page 20: CS 105 Lecture 10 Functions

20

displayChar() Functionvoid displayChar(char charPassed, int times){ int i; for(i = 0; i < times; i++) cout << charPassed; cout << endl;}

Page 21: CS 105 Lecture 10 Functions

21

do{ theLabs(threeHoursAWeek);}while (!semesterDone);