Download presentation
Presentation is loading. Please wait.
Published byJoella Hudson Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.