Presentation is loading. Please wait.

Presentation is loading. Please wait.

CPSC 230 Computers and Programming I Spring 2003 Dr. Lynn Lambert.

Similar presentations


Presentation on theme: "CPSC 230 Computers and Programming I Spring 2003 Dr. Lynn Lambert."— Presentation transcript:

1 CPSC 230 Computers and Programming I Spring 2003 Dr. Lynn Lambert

2 This course will teach you: C++ Object-oriented concepts Programming Some stabs at problem solving

3 How computers work Computers understand machine language only Each computer has its own language All computer languages are in binary (1s and 0s) No computer understands English, Powerpoint, or C++

4 A computer program: Add X to Y and store in Z In machine language: 01040100 (already simplified to decimal) 01050160 04040506 02060180 HUH!?

5 Assembly Each machine instruction has matching, more English-like assembler: Load X (was: 01040100) Load Y (was: 01050160) Add X Y Z (was: 04040506) Store Z (was: 02060180) Better, but … all this for one addition!?

6 C++ z=x+y; Much better! BUT, no machines understand source code. Only machine code.

7 Designing a Program 1. Decide the problem to solve. 2. Design the solution. 3. Translate design to C++ 4. Type the C++ program (source code) using an editor (emacs): program.cc 5. Compile (g++). Translates C++ into machine language (object, machine, executable code) 6. Link (g++). Creates executable. Can be done with step 5 or separately. 7. Run the program (after 1-6).

8 At each step: 1.Think 2.Do 3.Debug 4.Test

9 Write a program to calculate the volume of a sphere Problem well-defined Design solution: Read radius Calculate volume (V = 4/3(pi)r 3 Print answer

10 C++ Program #include // allows reading in and out using namespace std; // standard namespace int main() { float radius; // radius of a sphere float volume; // volume of sphere Float is decimal. // other types are int, char, bool, double

11 const float mypi = 3.14159; // const values cannot be // changed. M_PI also defined in cmath cout << “This program calculates the volume “ << “of a sphere given its radius.” << endl; // lots of other ways to do this cout. cout “; cin >> radius; // volume = 4/3 p r 3 try 1: volume = 4/3 M_PI r …? 3? try 2: volume = 4 / 3 * M_PI * r * r; try 2.b: volume = 4/3 * M_PI * pow(r, 3); // in cmath cout << "The volume of a sphere with radius "; cout << radius << " is " << volume << endl; return EXIT_SUCCESS; // in }

12 great. except it doesn't work.

13 Functions (modified from Deitel & Deitel web page)

14 Why functions? divide and conquer repeatable. reuse reliable code encapsulated

15 Program Components in C++ Modules: functions and classes Programs use new and “prepackaged” modules New: programmer-defined functions, classes Prepackaged: from the standard library Functions invoked by function call Function name and information (arguments/parameters) it needs Function definitions Only written once

16 Program Components in C++ Boss to worker analogy A boss (the calling function or caller) asks a worker (the called function) to perform a task and return (i.e., report back) the results when the task is done

17 Library Functions Functions called by writing functionName(argument1, argument2, …); Perform common mathematical calculations Include the header file Call the appropriate function

18 Library Functions Example volume = 4.0 / 3.0 * M_PI * pow(r, 3); pow (exponentiation) function returns base exponent (pow(2,3) would return 8) Other math functions listed on p. 173 of text All functions in math library return a double

19 Parameters/Arguments Function arguments can be Constants sqrt( 4 ); Variables sqrt( x ); Expressions sqrt( sqrt( x ) ) ; sqrt( 3 - 6x );

20 Other libraries Perform string operations, include Perform character manipulations, include file handling, standard constants and routines Lots of others

21 Writing your own functions To call a function, you need: Function call – invokes function execution To write your own function, you need: Function call(e.g., pow, sqrt). We know this. Function prototype (shown in function libraries, like -- contains interface information) Function definition– contains the C++ that defines how that function will be executed (e.g., main). Really, we know this.

22 function call, prototype Calling/invoking a function square(x); Parentheses an operator used to call function Pass argument x Function gets its own copy of arguments After finished, passes back result Function prototype Tells compiler argument(s) type and return type of function int square( int ); Function takes an int and returns an int Explained in more detail later

23 Function definition Format for function definition return-value-type function-name ( parameter-list ) { declarations and statements } Parameter list Comma separated list of arguments Data type needed for each argument If no arguments, use void or leave blank Return-value-type Data type of result returned (use void if nothing returned)

24 function definition Example function int square( int y ) { return y * y; } return keyword Returns data, and control goes to function’s caller If no data to return, use return; Function ends when reaches right brace Control goes to caller Functions cannot be defined inside other functions

25 // Fig. 3.3: fig03_03.cpp. But modified from code in book // Creating and using a programmer-defined function. #include using namespace std; // modified from code in book int square( int ); // function prototype int main() { int number; // Ask user for number square then square that number cout << “This program calculates the square of an integer.” << endl; cout “; cin >> number; // next line is function call cout << number << “ squared is “ << square( x ) << endl; return EXIT_SUCCESS; // indicates successful termination } // end main Parentheses () cause function to be called. When done, it returns the result. Function prototype: specifies data types of arguments and return values. square expects and int, and returns an int.

26 function header: return type function name, parameter list. // this continues program begun on previous slide // square function definition returns // square of an integer int square( int y ) // y is a copy of argument to function { return y * y; // returns square of y as an int } // end function square OR int square(int nbr) { int answer; answer = nbr * nbr; return answer; } function body: C++ statements in between {}s.

27 Function Prototypes Function prototype contains Function name Parameters (number and data type) Return type ( void if returns nothing) Only needed if definition after function call semicolon (unlike header in function definition) Prototype must match function definition Function prototype int sqr(int); Function Definition int sqr(int y) { … }

28 Functions with empty parameter lists Empty parameter lists void or leave parameter list empty Indicates function takes no arguments Function print takes no arguments and returns no value void print(); void print( void );

29 print function example Prototype void printinfo(void); Function call int main () {... printinfo(); … }

30 print function example cont'd function definition void printinfo() { cout << "this program calculates"; cout << " the area of a sphere"; cout << endl; }

31 Function overloading Functions with same name and different parameters Should perform similar tasks i.e., function to square int s and function to square float s int square( int x) {return x * x;} float square(float x) { return x * x; } Similar to overloaded +, /, etc. operators

32 Function overloading cont'd Overloaded functions distinguished by signature Based on position, number, and type of parameters (order of parameters matters) Name mangling Encodes function identifier with parameters Type-safe linkage Ensures proper overloaded function called

33 // Fig. 3.25: fig03_25.cpp 2 // Using overloaded functions. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 // function square for int values 9 int square( int x ) 10 { 11 cout << "Called square with int argument: " << x << endl; 12 return x * x; 13 14 } // end int version of function square 15 16 // function square for double values 17 double square( double y ) 18 { 19 cout << "Called square with double argument: " << y << endl; 20 return y * y; 21 } // end double version of function square 23

34 24 int main() 25 { 26 int intResult = square( 7 ); // int version called 27 double doubleResult; 28 doubleResult = square( 7.5 ); // calls double version 29 cout << "\nThe square of integer 7 is " << intResult 30 << "\nThe square of double 7.5 is " 31 << doubleResult << endl; 32 33 return 0; // indicates successful termination 34 35 } // end main Called square with int argument: 7 Called square with double argument: 7.5 The square of integer 7 is 49 The square of double 7.5 is 56.25

35 Write a program Write a program that uses functions Talk to your neighbors Use the book Use your notes


Download ppt "CPSC 230 Computers and Programming I Spring 2003 Dr. Lynn Lambert."

Similar presentations


Ads by Google