Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 11/8/06CS150 Introduction to Computer Science 1 More Functions! 6.10-6.16 page 343 November 8, 2006.

Similar presentations


Presentation on theme: "1 11/8/06CS150 Introduction to Computer Science 1 More Functions! 6.10-6.16 page 343 November 8, 2006."— Presentation transcript:

1 1 11/8/06CS150 Introduction to Computer Science 1 More Functions! 6.10-6.16 page 343 November 8, 2006

2 2 11/8/06CS150 Introduction to Computer Science 1 Variable Scope  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; }

3 3 11/8/06CS150 Introduction to Computer Science 1 Variable Scope  Global Scope: variable is available everywhere in the source code o 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; }

4 4 11/8/06CS150 Introduction to Computer Science 1 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; }

5 5 11/8/06CS150 Introduction to Computer Science 1 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; }

6 6 11/8/06CS150 Introduction to Computer Science 1 Practice: What is the result? int number = 0; int foo(int value) { int number = value * 20; for( int value = 0; value < number ; value++) { value += (k % 3); } return value; } int main() { int number = 10; cout << foo(number); return 0; }

7 7 11/8/06CS150 Introduction to Computer Science 1 Static Local Variables  What happens here? void foo() { int value = 20; cout << “ value: “ << value << endl; value *= 22; } int main() { foo(); }

8 8 11/8/06CS150 Introduction to Computer Science 1 Static Local Variables  Sometimes we want a function to retain a value between uses o static local variables void foo() { static int value = 20; // This only happens once cout << “ value: “ << value << endl; value *= 2; } What does this do? foo();

9 9 11/8/06CS150 Introduction to Computer Science 1 Practice: Static Local Variables  Write a function that will count the number of times it has been called and print that count 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.

10 10 11/8/06CS150 Introduction to Computer Science 1 Default Arguments  “Default arguments are passed to the parameters automatically if no argument is provided in the function call” p353 void stars(int numberOfStars = 5) { for( int i=0 ; i < numberOfStars ; i++ ) { cout << “*”; } cout << endl; } What does this do? stars(10); stars();

11 11 11/8/06CS150 Introduction to Computer Science 1 Default Arguments // specify the default arguments the first time // you define the function void stars(int numberOfStars = 5); int main() { stars(10); stars(); } // do not redefine the default arguments here void stars(int numberOfStars) { for( int i=0 ; i < numberOfStars ; i++ ) { cout << “*”; } cout << endl; }

12 12 11/8/06CS150 Introduction to Computer Science 1 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)

13 13 11/8/06CS150 Introduction to Computer Science 1 Overloading Functions  “Two or more functions may have the same name as long as their parameter lists are different.” p365 o 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); // ERROR double increment(int value); // ERROR

14 14 11/8/06CS150 Introduction to Computer Science 1 Practice: Overloaded Functions  Write two overloaded functions that will produce the sum and average of three integers or three doubles.

15 15 11/8/06CS150 Introduction to Computer Science 1 YourNumber % 3 == 0  Write a small program to read in the following file and print to the screen: o the running sum of the integers read o the running sum of the doubles read o use static local variables and overloaded functions if possible o the first character denotes the data type of the following number Input File: i 4 d 9.1 d 4.0 i 6 i 42 i 9 d 3.0

16 16 11/8/06CS150 Introduction to Computer Science 1 YourNumber % 3 == 1  Read in the following file and print out a population graph as shown below. The maximum value for a population is 5000. Each input file will have exactly five lines of data. Use one star to represent each 1000 people. Input file 1970 1000 1980 1000 1990 2000 2000 4000 2010 5000 Output to Screen: 5000 * 4000 * * 3000 * * 2000 * * * 1000 * * * * * 1970 1980 1990 2000 2010

17 17 11/8/06CS150 Introduction to Computer Science 1 YourNumber % 3 == 2  Read in the following payroll file and display to the screen the wages for each worker. A zero in the file denotes that the worker worked the default of 40 hours or is paid the default of $15 and hour. Input File format: LastName HoursWorked HourlyWage Input File Example: Williams 50 9.15 Khoja 0 11.12 Ryan 60 0 Output to Screen: Williams: 457.50 Khoja: 444.80 Ryan: 900,00

18 18 11/8/06CS150 Introduction to Computer Science 1 Quiz Solution #include “stdafx.h” #include using namespace std; int main() { ifstream inputFile; int number; inputFile.open( “numbers.dat” ); while(inputFile >> number ) { cout << number << endl; } inputFile.close(); return 0; }


Download ppt "1 11/8/06CS150 Introduction to Computer Science 1 More Functions! 6.10-6.16 page 343 November 8, 2006."

Similar presentations


Ads by Google