Arrays Structured Programming 256 Chapter 10 © 2000 Scott S Albert Arrays One-Dimensional initialize & display Arrays as Arguments Two-dimensional initialize.

Slides:



Advertisements
Similar presentations
CHAPTER 10 ARRAYS II Applications and Extensions.
Advertisements

Arrays. Introduction Arrays –Structures of related data items –Static entity - same size throughout program A few types –C-like, pointer-based arrays.
 2003 Prentice Hall, Inc. All rights reserved Introduction Arrays –Structures of related data items –Static entity (same size throughout program)
Review (Week1) C++_ the unit of programming is the class from which objects are eventually instantiated. C++ classes contain functions that implement class.
Computer Science 1620 Multi-Dimensional Arrays. we used arrays to store a set of data of the same type e.g. store the assignment grades for a particular.
1 Arrays In many cases we need a group of nearly identical variables. Example: make one variable for the grade of each student in the class This results.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 6 - Arrays Outline 6.1Introduction 6.2Arrays 6.3Declaring Arrays 6.4Examples Using Arrays 6.5Passing.
Chapter 8. 2 Objectives You should be able to describe: One-Dimensional Arrays Array Initialization Arrays as Arguments Two-Dimensional Arrays Common.
 2003 Prentice Hall, Inc. All rights reserved. 1 Arrays –Structures of related data items –Static entity (same size throughout program) A few types –Pointer-based.
Chapter 9: Arrays and Strings
Chapter 9: Arrays and Strings
C++ for Engineers and Scientists Third Edition
Chapter 8 Arrays and Strings
1 CSCE 1030 Computer Science 1 Arrays Chapter 7 in Small Java.
 2007 Pearson Education, Inc. All rights reserved C Arrays.
Arrays.
Arrays One-Dimensional initialize & display Arrays as Arguments Two-dimensional initialize & display Part I.
Chapter 7: Arrays. In this chapter, you will learn about: One-dimensional arrays Array initialization Declaring and processing two-dimensional arrays.
Arrays One-Dimensional initialize & display Arrays as Arguments Part I.
Arrays Multi-dimensional initialize & display Sample programs Sorting Searching Part II.
Chapter 8 Arrays and Strings
1 DATA STRUCTURES: LISTS. 2 LISTS ARE USED TO WORK WITH A GROUP OF VALUES IN AN ORGANIZED MANNER. A SERIES OF MEMORY LOCATIONS CAN BE DIRECTLY REFERENCED.
CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 19 Thanks for Lecture Slides:
Chapter 6 Arrays Associate Prof. Yuh-Shyan Chen Dept. of Computer Science and Information Engineering National Chung-Cheng University.
Introduction to Arrays in Java Corresponds with Chapter 6 of textbook.
1 © 2002, Cisco Systems, Inc. All rights reserved. Arrays Chapter 7.
Arrays Array –Group of consecutive memory locations –Same name and type To refer to an element, specify –Array name –Position number Format: arrayname.
C Lecture Notes 1 Arrays Lecture 6. C Lecture Notes 2 6.1Introduction Arrays –Structures of related data items –Static entity – same size throughout program.
Data Structures (Terminology) Static Set at compile time Dynamic Set at run time.
C++ for Engineers and Scientists Second Edition Chapter 11 Arrays.
CHAPTER 7 arrays I NTRODUCTION T O C OMPUTER P ROGRAMMING (CSC425)
 2003 Prentice Hall, Inc. All rights reserved. Using Arrays in Abstract Data Types.
1 Lecture 8 Arrays Part II Sorting Arrays Sorting data  Important computing application  Virtually every organization must sort some data Massive.
1 Topic: Array Topic: Array. 2 Arrays Arrays In this chapter, we will : Learn about arrays Learn about arrays Explore how to declare and manipulate data.
Arrays Multi-dimensional initialize & display Sorting Part II.
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 4 - Arrays Outline 4.1Introduction 4.2Arrays 4.3Declaring Arrays 4.4Examples Using Arrays.
Section 5 - Arrays. Problem solving often requires information be viewed as a “list” List may be one-dimensional or multidimensional List is implemented.
A First Book of C++: From Here To There, Third Edition2 Objectives You should be able to describe: One-Dimensional Arrays Array Initialization Arrays.
 2003 Prentice Hall, Inc. All rights reserved. 1 Vectors.
 2007 Pearson Education, Inc. All rights reserved C Arrays.
1 One Dimensional Arrays Chapter 11 2 "All students to receive arrays!" reports Dr. Austin. Declaring arrays scores :
1 Arrays and Strings Lecture: Design Problem l Consider a program to calculate class average Why?? ?
 2003 Prentice Hall, Inc. All rights reserved. 1 Arrays Outline Multidimensional Arrays Case Study: Computing Mean, Median and Mode Using Arrays.
 2008 Pearson Education, Inc. All rights reserved. 1 Arrays and Vectors.
1 Chapter 12 Arrays. 2 C++ Data Types structured array struct union class address pointer reference simple integral enum char short int long bool floating.
UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Arrays.
Chapter 8 Arrays. A First Book of ANSI C, Fourth Edition2 Introduction Atomic variable: variable whose value cannot be further subdivided into a built-in.
Arrays.
Arrays Chapter 12. Overview Arrays and their properties Creating arrays Accessing array elements Modifying array elements Loops and arrays.
C++ Programming Lecture 16 Arrays – Part III The Hashemite University Computer Engineering Department (Adapted from the textbook slides)
Opening Input/Output Files ifstream infile; ofstream outfile; char inFileName[40]; char outFileName[40]; coutinFileName;
© Janice Regan, CMPT 128, January CMPT 128: Introduction to Computing Science for Engineering Students Introduction to Arrays.
Arrays Declaring arrays Passing arrays to functions Searching arrays with linear search Sorting arrays with insertion sort Multidimensional arrays Programming.
C++ Array 1. C++ provides a data structure, the array, which stores a fixed-size sequential collection of elements of the same type. An array is used.
SEQUENTIAL AND OBJECT ORIENTED PROGRAMMING Arrays.
CHAPTER 3 ARRAYS Dr. Shady Yehia Elmashad. Outline 1.Introduction 2.Arrays 3.Declaring Arrays 4.Examples Using Arrays 5.Multidimensional Arrays 6.Multidimensional.
SIMPLE Sorting Sorting is a typical operation to put the elements in an array in order. Internal Sorts [for small data sets] selection bubble (exchange)
 2000 Prentice Hall, Inc. All rights reserved Arrays Array –Consecutive group of memory locations –Same name and type To refer to an element, specify.
1 C++ Data Types structured array struct union class address pointer reference simple integral enum char short int long bool floating float double long.
KUKUM-06/07 EKT120: Computer Programming 1 Week 6 Arrays-Part 1.
Objectives You should be able to describe: One-Dimensional Arrays
A FIRST BOOK OF C++ CHAPTER 7 ARRAYS. OBJECTIVES In this chapter, you will learn about: One-Dimensional Arrays Array Initialization Arrays as Arguments.
Chapter 8: Arrays Starting Out with C++ Early Objects Ninth Edition
Arrays Kingdom of Saudi Arabia
C++ Programming Lecture 16 Arrays – Part III
4.9 Multiple-Subscripted Arrays
Arrays Kingdom of Saudi Arabia
Arrays Arrays A few types Structures of related data items
C++ Array 1.
SIMPLE Sorting Sorting is a typical operation to put the elements in an array in order. Internal Sorts [for small data sets] selection bubble (exchange)
Presentation transcript:

Arrays Structured Programming 256 Chapter 10

© 2000 Scott S Albert Arrays One-Dimensional initialize & display Arrays as Arguments Two-dimensional initialize & display Part I

© 2000 Scott S Albert Data Types a simple or atomic a structured * char, int, float, double array, struct, union, class

© 2000 Scott S Albert Structured Data Type - Array An array is a collection of data storage locations, each of which holds the same type of data. Each storage location is called an element of the array. Each element is referred to as an indexed or subscripted variable.

© 2000 Scott S Albert Array Declaration []Syntax dataType arrayName [ ConstIntExpression ] The number of elements in an array is [ ]stated within square brackets, [ ]. Examples double angle [4];constant POLY = 8; int testScore [12];double angle [POLY]; char password [8];

© 2000 Scott S Albert Array Storage Each array has sufficient memory reserved to hold the number of data items of the given type. Initializing an array sets up the address of the first element. Addresses of all other elements are offsets from the starting address.

© 2000 Scott S Albert Array Element Access Syntax arrayName [ indexExpression ] Program access to each of the array elements is by referring to an offset from the array name. Array elements are counted beginning with zero.

© 2000 Scott S Albert Array Element Access double angle[4];// declaration Example angle [0] = 6.21; angle [1] = 15.89; angle [2] = 7.5; angle [3] = -45.7; angle sub zero = 6.21 angle sub one = angle sub two = 7.5 angle sub three = * * *

© 2000 Scott S Albert Using Array Elements  write the contents of an array element: cout << angle[2];  assign values to an array element: cin >> angle[3]; angle[6] = pow(axis,4);  use it as a parameter: y = sqrt(angle[0]);  use it in an expression: x = 2.5 * angle[1] + 64; * *

© 2000 Scott S Albert Array Component Access indexindex index indexfor(index=0; index < arraySize; index++) myArray[index] = 0.0; 100 * Zero out an entire array. (Initialize every element to 0.0.)

© 2000 Scott S Albert Off Set memory addresses starting address off set by one unit off set by two units off set by three units [ 0 ] [ 1 ] [ 2 ] [

© 2000 Scott S Albert Out-of-Bounds Array Index memory addresses angle[4] = 135; cout << angle[5]; [ 0 ] [ 1 ] [ 2 ] [

© 2000 Scott S Albert Declare an Array Syntax type arrayName[index]; Example double dailyHigh[23] ; int quizGrade[132] ; char ASURiteID[5] ; *

© 2000 Scott S Albert Initialize an Array Element Syntax arrayName[index] = value; Example dailyHigh[18] = 16.7; quizGrade[2] = 15; ASURiteID[3] = ‘d’; *

© 2000 Scott S Albert Initialize an Array double angle[4] = {16.21, 15.89, 7.5, -45.7}; double ATtoCG[5] = {.64,.89,.76,.83,.65}; int scores[12] = {210, 198, 203, 188, 200, 224, 220, 217, 211, 194, 197, 189}; double iona[8] = {0.0}; *

© 2000 Scott S Albert Initialize an Array int scores[ ] = {210, 198, 203, 188, 200, 224, 220, 217, 211, 194, 197, 189}; char name[4] = {‘Z’, ‘o’, ‘l’, ‘a’}; char name[4] = “Zola”;// no braces or, char phrase [ ] = “Hello World”; *

© 2000 Scott S Albert Initialize an Array double angle[4];// declaration Example angle [0] = 6.21; angle [1] = 15.89; angle [2] = 7.5; angle [3] = -45.7; angle sub zero = 6.21 angle sub one = angle sub two = 7.5 angle sub three = *

© 2000 Scott S Albert Sequencing Through an Array Use the for statement to sequence through an array. Total the contents of an array: sum = 0; for(index=0; index < 7; index++) sum = sum + grades[index];

© 2000 Scott S Albert Loading an Array double grade[10]; int index; for(index=0; index < 10; index++) { cout<<“Enter a grade “; cin >> grade[index]; }

© 2000 Scott S Albert Finding the Max/Min Value Set the max or min to element zero. Use a for loop to cycle through the array. Compare each element to the max/min. If necessary, assign a new value to max/min. How would you do this? *

© 2000 Scott S Albert Finding the Maximum Value double find_max(int temp[30]) { max = temp[0]; for(index=0; index max) max = temp[index]; return (max); } *

© 2000 Scott S Albert Finding the Minimum Value double find_min(int temp[30]) { min = temp[0]; <for(index = 1; index < 30; index++) if (temp[index] < min) min = temp[index]; return ( min ); } *

© 2000 Scott S Albert Aggregate Assignment - NOT! There are no aggregate assignments with arrays. That is, you may not assign one array to another. int x[5] = {11, 22, 33, 44, 55}; int y[5]; y = x;y[ ] = x[ ];

© 2000 Scott S Albert Arrays as Arguments temp[ ]void find_max(int temp[ ]) { max = temp[0]; for(index = 1; index max) max = temp[index]; } temp[ ] double find_max(int temp[ ]) * return max;

© 2000 Scott S Albert Passing an Array/Element tempfind_max(temp); // no [ ] pricequantityamountinventory(price, quantity, amount); // 3 arrays cupletwords(cuplet); temp[3] find_max(temp[3]); pricequantity[4]amount[12] inventory(price, quantity[4], amount[12]); cuplet words(cuplet); *

© 2000 Scott S Albert Passing an Array formal parameter formal parameter declaration fordeclaration for parameterPass-by-ValuePass-by-Referenceformal parameter formal parameter declaration fordeclaration for parameterPass-by-ValuePass-by-Reference simple var.int costint& price arrayimpossibleint myArray[ ] arrayconst int source[ ]

© 2000 Scott S Albert 1-D Array Review An array is a structured data type 1st element is “ arrayName subzero ” Array Declaration int myArray [9]; Array Initialization int myArray [9 ] = { 9, 9, 9, 8, 7, 6, 5, 4, 3}; Array Element Reference myArray [7];// value = 4 * 9

© 2000 Scott S Albert 1-D Array Review Arrays are always passed by reference, unless const added to the formal parameter. Array in a Function Prototype void myFunction(int [9]); Array in a Function Call myFunction(myArray); Array in a Function Header void myFunction(int anyArrayName[9]) optional

© 2000 Scott S Albert Two Dimensional Arrays a everything about one dimensional arrays applies a sometimes referred to as a table a has rows and columns ex. multiplication table

© 2000 Scott S Albert 2-D Array Declaration Syntax [] []dataType arrayName [ ConstIntExpression ] [ ConstIntExpression ]  Example int highTemp [52] [7]; double matrix [8] [8]; // checker board int roomSchedule [237] [13];

© 2000 Scott S Albert 2-D Array Initialization int nums [3] [2] = {7, 4, 1, 8, 5, 2} int roomsPSF[3] [7] = { {17, 18,19, 110, 111, 112, 113}, {27, 28, 29, 210, 211,212, 213}, {37, 38, 39, 310, 311, 312, 313} };

© 2000 Scott S Albert 2-D Array Initialization double ATtoCG[2] [3] = {.74,.79,.76,.83,.65,.89}; }double ATtoCG[2] [3] = { {.74,.79,.76}, {.83,.65,.89} }; int scores[4] [3] = {210, 198, 203, 188, 200, 224, 220, 217, 211, 194, 197, 189};

© 2000 Scott S Albert 2-D Array Initialization You can assign values to individual elements: ATtoGC [0] [0] = 0.74; ATtoGC [0] [1] = 0.79; ATtoGC [0] [2] = 0.76; ATtoGC [1] [0] = 0.83; ATtoGC [1] [1] = 0.65; * ATtoCG [1] [2] = 0.89;

© 2000 Scott S Albert Accessing a 2-D Array a very similar to creating a multiplication table. a use nested loops. outer for loop was for the rows inner for loop was for the columns

© 2000 Scott S Albert Loading a 2-D Array a The Multiplication Table for (row =1; row <=10; row++) { cout <<setw(5)<<row<<" "; forfor (column=1; column <= 10; column++) cout << setw(5)<< column*row; cout << endl; }

© 2000 Scott S Albert Loading a 2-D Array int scores [4][3]; for(row=0; row<4; row++) for(col=0; col<3; col++) { cout<<"Enter the value :"; cin>>scores[row][col]; }

© 2000 Scott S Albert Loading a 2-D Array scores [0][0][2][0] [0][1] [2][1] [0][2][2][2] [1][0] [3][0] [1][1][3][1] [1][2][3][2] [row][col] = somevalue;

© 2000 Scott S Albert Displaying a 2-D Array int scores [4] [3]; for(row=0; row<4; row++) { for(col=0; col<3; col++) cout << setw(6) << scores[row][col]; cout << endl; // new line for each row }

© 2000 Scott S Albert Displaying a 2-D Array Output

© 2000 Scott S Albert Functions and 2-D Arrays int test[7][19]; // declaration find_min(test); // function call int find_min(int num [7][19])// funct. header * * char code[26][10]; obtain(code); char obtain(char key [26][10])

© 2000 Scott S Albert Local vs. Global No difference

© 2000 Scott S Albert Arrays Multi-dimensional initialize & display Sorting Part II

© 2000 Scott S Albert Multidimensional Arrays a everything about one dimensional arrays applies a all elements of the same data type [ ] a just need additional sets of [ ] a a 3-D array has rows, columns, and rank

© 2000 Scott S Albert Multidimensional Arrays int scores [4] [3] [2];// assume loaded with for(row=0; row<4; row++) { for(col=0; col<3; col++) { for(rank=0; rank<2; rank++) cout<<setw(6)<<scores[row][col][rank]; cout<<endl; // new line for each row }

© 2000 Scott S Albert Multidimensional Arrays { cout <<endl; // start a new line { nums[row][col][rank] cout<<setw(6)<<nums[row][col][rank]; cout<<endl;// start a new line } for(rank=0; rank < 2; rank++) for(col=0; col < 3; col++) for(row=0; row < 4; row++)

© 2000 Scott S Albert A B C D E parallel arrays = two or more arrays in which elements with corresponding indexes are related Parallel Arrays Used when related data is of different data types. grade% of class *

© 2000 Scott S Albert Parallel Arrays for(row… for(col… {cout >> “Enter id#”; cin >> id[row][col]; cout >> “Enter grade”; cin >> grade[row][col]; }

© 2000 Scott S Albert Sum a Row void main(void) { double nums [3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; double sumRow(double [3] [4]); // prototype cout << “The sum of row 3 is “ << sumRow(nums)<<endl; //function call }

© 2000 Scott S Albert Sum a Row double sumRow(double ary[3][4]) { int col; double total=0; for(col = 0; col < 4; col++) total += ary[ ][col]; return total; } * total += ary[2][col]; //enter row #-1 The sum of row 3 is 42 output The sum of row 3 is 42

© 2000 Scott S Albert Sum a Column void main(void) { 37 11double nums [3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; double sumCol(double [3] [4]); // prototype cout << “The sum of column 3 is “ << sumCol(nums) << endl; //function call }

© 2000 Scott S Albert Sum a Column double sumCol(double ary[3][4]) { int row; double total=0; for(row = 0; row<3; row++) total += ary[row][ ]; return total; } * total += ary[row][2]; //enter col #-1 The sum of column 3 is 21 output The sum of column 3 is 21

© 2000 Scott S Albert Sum All Rows }void sumRow(double ary[3][4]) {int row, col; double total=0; for(row = 0; row < 3; row++) {total = 0;// each row total begins at 0 for(col = 0; col<4; col++) total += ary[row][col]; // enter row # cout << "The sum of row "<<row+1 << " is "<<total<<endl; } cout<<endl; } * 1 X

© 2000 Scott S Albert Sum All Columns void sumCol(double ary[3][4]) {int row, col; double total=0; }for(col = 0; col < 4; col++) { total = 0; // each col. total begins at 0 for(row = 0; row < 3; row++) total += ary[row][col];//enter col # cout << "The sum of col " << col+1 << " is " << total << endl; } }cout<<endl; } * 1 3 X

Just for fun! A 2-D array has the same number of rows as col. 1.How to sum the diagonals - upper left to lower right? 2.How to sum the diagonals - upper right to lower left? Sum Each Diagonal

© 2000 Scott S Albert Sorting Internal Sorts [for small data sets] selection bubble (exchange) External Sorts [for large data sets]

© 2000 Scott S Albert Selection Sort index (k)sm_index 02 swap 21, 9 11 swap 13, swap 21, swap 21,

© 2000 Scott S Albert Selection Sort void sort(double [5]); void swap(double [5], int, int);// prototypes void main(void) {int index; double my_list[ ] = {21, 13, 9, 15, 17}; sort(my_list); // function call cout<<"\nThe sorted array is: \n"; for(index=0; index<5; index++) cout<<'\t'<<my_list[index]<<endl; }

© 2000 Scott S Albert Selection Sort void sort(double testArray[5]) { int n, k, sm_index, moves=0;double smallest; for(k=0; k<4; k++) // size-1 = number of passes {smallest=testArray[k]; sm_index=k; for(n=k+1; n<5; n++) // size = # elem. to look at if(testArray[n]<smallest) {smallest=testArray[n]; sm_index=n; } swap(testArray, sm_index, k);// call to swap() }

© 2000 Scott S Albert Selection Sort void swap(double testArray[5], int smaller, int pass) {// pass = current position: k int moves; double temp; temp=testArray[pass]; testArray[pass]=testArray[smaller]; testArray[smaller]=temp; moves++;// not needed for swap }

© 2000 Scott S Albert Bubble Sort Put smaller first No change Put smaller first

© 2000 Scott S Albert Bubble Sort Begin again and put smaller first No change Put smaller first

A Bubble Sort Function void bubble_sort(int array[ ], int length) { int j, k, flag=1, temp; for(j=1; j<=length && flag; j++) { flag=0; // false for(k=0; k < (length-j); k++) { if (array[k+1] > array[k]) // > low to high { temp=array[k+1]; // swap array[k+1]= array[k]; array[k]=temp; flag=1; // indicates a swap }}}}}}}} // has occurred

© 2000 Scott S Albert Array Review a is an ordered sequence of data of the same type a can be of any valid data type a can be 1-, 2-, or multi- dimensional a must be declared before used a can be assigned and initialized a element numbering starts at zero

© 2000 Scott S Albert Array Review a use for loops to access (nested for multidimentional) a can be passed back and forth between functions a when sent to functions the actual values are manipulated - not a copy (passed by reference)

© 2000 Scott S Albert Array Review -1 Write a C++ program that adds equivalent elements of the two-dimensional arrays named first and second. Both arrays should have two rows and three columns. For example, element [1][2] of the resulting array should be the sum of first[1][2] and second[1][2]. first second sum *

© 2000 Scott S Albert Write a C++ program that finds and displays the maximum value in a two- dimensional array of integers. It should also show the maximum value’s subscripts. The array should be declared as a four-by-five array of integers and initialized. data:16, 22, 99, 4, 18, -258, 4, 101, 5, 98, 105, 6, 15, 2, 45, 33, 88, 72, 46, 3 Array Review - 2

© 2000 Scott S Albert Array Review - 3 Write a program which picks the elements in ascending order from a two dimensional matrix (4 by 5) and puts them in a single dimensional array. Display the single dimensional array.

© 2000 Scott S Albert There is a 3 by 5 array of grades. Write a program which reads the 15 grades and displays the number of grades below 60, number of grades in the 60's, number or grades in the 70's, number of grades in the 80's, and number of grades 90 or better. Array Review - 4

© 2000 Scott S Albert Write a program that finds and displays the maximum value and its indicies in a two- dimensional array of integers. The array should be declared as a 10-row by 20- column array of integers in main(). Array Review - 5

© 2000 Scott S Albert Array Review - 6a There is an array of three students each with four exam scores. Assume the scores are known and are: {77, 68, 86, 73}, {96, 87, 89, 78}, {70, 90, 86, 81}. Create a program which will display the lowest grade, the highest grade and the average of the grades to two decimal places.

© 2000 Scott S Albert Array Review - 6b #include const int STUDENTS = 3; const int EXAMS = 4; int mini (int [][EXAMS], int, int); int maxi (int [][EXAMS], int, int); float average(int [], int); void printArray(int [][EXAMS], int, int);

Array Review - 6c void main(void) { int studentGrades[ STUDENTS ][ EXAMS ] = {{77, 68, 86, 73}, {96, 87, 89, 78}, {70, 90, 86, 81}}; cout << "The array is:" << endl; printArray(studentGrades, STUDENTS, EXAMS ); cout<<endl<<endl<<"Lowest grade: " << mini (studentGrades, STUDENTS, EXAMS ) << endl << "Highest grade: " << maxi (studentGrades, STUDENTS, EXAMS )<<endl; for (int person = 0; person < STUDENTS; person++) cout << "The average grade for student " << person << " is " << setiosflags(ios::fixed | ios::showpoint)<<setprecision(2) << average(studentGrades[person], EXAMS) << endl; }

© 2000 Scott S Albert Array Review - 6d int mini(int grades[][EXAMS], int pupils, int tests) { int lowGrade = 100; for (int i = 0; i < pupils; i++) for (int j = 0; j < tests; j++) if (grades[i][j] < lowGrade) lowGrade = grades[i][j]; return lowGrade; } int maxi(int grades[][EXAMS], int pupils, int tests) { int highGrade = 0; for (int i = 0; i < pupils; i++) for (int j = 0; j < tests; j++) if (grades[i][j] > highGrade) highGrade = grades[i][j]; return highGrade; }

© 2000 Scott S Albert Array Review - 6e float average(int setOfGrades[], int tests) { int total = 0; for (int i = 0; i < tests; i++) total += setOfGrades[i]; return (float) total / tests; } void prtArray(int grades[][EXAMS], int pupils, int tests) { cout << " [0] [1] [2] [3]"; for (int i = 0; i < pupils; i++) { cout << endl<< "studentGrades[" << i << "] "; for (int j = 0; j < tests; j++) cout << setiosflags(ios::left) << setw(5) << grades[i][j]; }

© 2000 Scott S Albert Array Review - 6f function call: average(studentGrades[person], EXAMS) float average(int setOfGrades[], int tests) {int total = 0; for (int i = 0; i < tests; i++) total += setOfGrades[i]; return total }

© 2000 Scott S Albert Common Errors ; Not declaring the array ; First element is called zero; last element is one less than the number of elements ; Out of range subscripts - no warning ; Error in the for loop - check the counter ; Not initializing the array

© 2000 Scott S Albert Common Errors ; Aggregate operations not allowed ; Omitting array size - permitted only when declared as a formal parameter initialized in the declaration  If array is /* in */ only, declare the formal parameter as const to prevent accidental modification

© 2000 Scott S Albert Debugging array subscripts recheck array size in declaration, initialization, and for loops Prevention - plan first! Valuation tables Display values with cout