Download presentation
Presentation is loading. Please wait.
Published byCathleen Lamb Modified over 9 years ago
1
CS 1430: Programming in C++ 1
2
Test 2 Friday Functions Arrays For Loops Understand Concepts and Rules Memorize Concepts and Rules Apply Concepts and Rules to Different Problems 2
3
3 C++ Functions Why? Modularity!
4
4 C++ Functions Function Prototype int IndexOfMax(const float s[], int size); Function Definition int IndexOfMax(const float s[], int size) { int index = 0; for (int i = 1; i < size; i ++) if (s[i] > s[index]) index = i; return index; } Function Call index = IndexOfMax(Test2Scores, numStudents);
5
5 Function Type The type of the value returned by a function float sqrt(float x); int IndexOfMax(const float s[], int size); bool eof(); char RomanChar(int romanDigitValue); StudentType GetStudent(); void ReadAnswers(char answers[], int numQuestions); RETURN Statement! Not Parameters!
6
6 Prog4 Required Function //--------------------------------------------------- // Finds and returns an index of the look-up-mass // in the Masses array. Since the Masses array is // ordered in ascending order by mass, this function // returns the index of the first mass in the masses // array such that lookUpMass is less than or equal // to masses[i]. // On the off chance that no such index can be found, // returns -1. // params: ( ?, ?, ? ) //--------------------------------------------------- int FindIndexOfMass(const int masses[], int lookUpMass, int size);
7
7 Prog4 Required Function //--------------------------------------------------- // Returns the largest value in the dim array; // size is how many items are in the dim array. // params: ( ?, ? ) //--------------------------------------------------- float FindLargestDimension(const int dim[], int size);
8
8 Prog4 Required Function //--------------------------------------------------- // Returns the girth of a parcel where girth is // calculated as twice the difference of the sum of // the elements in the dim array and the largest of // the dimensions. // params: ( ?, ? ) //--------------------------------------------------- float Girth( const int dim[], int size);
9
Function Parameters Need to pass data to the function May need more than one value out of the function Not Return Statement! Parameters are local variables Parameters get values or addresses at function calls 9
10
Formal Parameters and Actual Parameters Formal Parameters In function prototype and definition Must specify type with/without & [] for arrays with/without const Actual Parameters In function call No type, &, and no [] or const for arrays 10
11
Passing Parameters Basic Data Types (char, int, float, string, bool) Pass by Value (without & in prototype) Pass by Reference (with & in prototype) Arrays (of any data type) Always Pass by Reference (pointer!) (Never &) (Structure and Class) 11
12
Value Parameters and Reference Parameters const float REG_HOURS = 40.0; const float OVER_TIME = 1.5; int main() { float hours, rate, gross; GetInput(rate, hours); gross = GrossPay(rate, hours); // display result return 0; } float GrossPay(float payRate, float hours) { if (hours > REG_HOURS) payRate = (hours - REG_HOURS) * OVER_TIME * payRate + REG_HOURS * payRate; else payRate = hours * payRate; return payRate; } main() GetInput() void GetInput(float& payRate, float& hoursWorked) { cout << "Enter pay rate: "; cin >> payRate; cout << "Enter hours: "; cin >> hoursWorked; return; } GrossPay() Passing parameters 12.5 50 Passing parameters Addresses of rate and hours Return control With value Return control 12
13
In, Out, InOut Parameters The original value of the actual parameter The value of the actual parameter before the function call In The function uses the original value of the actual parameter, but does not change its value. Out The function does not use the original value of the actual parameter, but changes its value. InOut The function uses the original value of the actual parameter, and also changes its value. 13
14
Tracing Functions Input: 10.5 53 float GrossPay(float payRate, float hours) void GetInput(float& payRate, float& hoursWorked); main() GetInput() GrossPay() hours rate gross payRate& hoursWorked& hours payRate ? ? ? ? ? ? ? Addr of Addr of rate hours 10.5 53.0 53.0 10.5 556.5 14
15
Arrays Array Declaration const int MAX_SIZE = 30; int size = 30; int nums[30]; // Valid? float ArrayA[MAX_SIZE]; // Valid? float ArrayB[size]; // Valid? Memory allocation Array Element and Index Index starts with 0 An array element is the same as a single variable For Loop on array for (int i = 0; i < size; i ++) cin >> ArrayA[i]; 15
16
Functions on Arrays Always passing by reference No & Size is passed separately Const for IN parameter void ReadAnswers(char answers[], int numQuestions); void ProcessAnswer(const char keys[], const char answers[], int numQuestion, int& correct, bool& pass); Function calls No [] Passing arrays and passing array elements average = ArrayAvg(Scores, count); max = Largest(Scores[0], Scores[1], Scores[2]); Linear search return value or index 16
17
For Loops Same as while loops Better on arrays Better on Count-Controlled loops 17
18
Nested For Loops int result; for (int i = 4; i < 6; i ++) { result = 1; for (int j = i; j > 1; j --) result *= j; cout << “The result: “ << result; } 18
19
Tracing int i, j, result; for (i = 4; i < 6; i ++) { result = 1; for (j = i; j > 1; j --) result *= j; cout << “The result: ” << result; } Do it yourself now! i j result ? ? ? 4 1 4 4 3 12 2 24 1 5 1 5 5 4 20 3 60 2 120 1 6 19
20
Schedule Quiz7-1 Lab7 & Lab8 Prog4 Test 2 20
21
21 Test 1 Test 2 Test 3Final
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.