0% found this document useful (0 votes)
9 views22 pages

08 2D Arrays

The document outlines code for a C++ program that uses a two-dimensional array to store student grades. It initializes the array with sample data, then uses functions to calculate statistics like minimum, maximum, and average grades. These statistics and the original grade array are printed. The program demonstrates how a two-dimensional array can represent rows and columns of data like student grades in a table.

Uploaded by

amramr.elbrns78
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views22 pages

08 2D Arrays

The document outlines code for a C++ program that uses a two-dimensional array to store student grades. It initializes the array with sample data, then uses functions to calculate statistics like minimum, maximum, and average grades. These statistics and the original grade array are printed. The program demonstrates how a two-dimensional array can represent rows and columns of data like student grades in a table.

Uploaded by

amramr.elbrns78
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Outline

CSE131: Computer Programming

2D Array

Prof. Mahmoud Khalil

 2003 Prentice Hall, Inc.


All rights reserved.
2

Two- and Multidimensional Arrays

• Two-dimensional array: collection of a fixed


number of components (of the same type)
arranged in two dimensions
– Sometimes called matrices or tables
• Declaration syntax:

- intExp1 and intExp2 are expressions with


positive integer values specifying the number
of rows and columns in the array

2
 2003 Prentice Hall, Inc. All rights reserved.
3

Accessing Array Components

• Accessing components in a two-dimensional


array:

– Where indexExp1 and indexExp2 are expressions


with positive integer values, and specify the row and column
position
• Example:
sales[5][3] = 25.75;

3
 2003 Prentice Hall, Inc. All rights reserved.
4

Accessing Array Components (cont’d.)

Sales[5][3]
4
 2003 Prentice Hall, Inc. All rights reserved.
5
Two-Dimensional Array Initialization During
Declaration
• Two-dimensional arrays can be initialized
when they are declared:
– Elements of each row are enclosed within braces
and separated by commas
– All rows are enclosed within braces
– For number arrays, unspecified elements are set to 0

5
 2003 Prentice Hall, Inc. All rights reserved.
6

Two-Dimensional Arrays and Enumeration Types

• Enumeration types can be used for array


indices:

6
 2003 Prentice Hall, Inc. All rights reserved.
7

Processing Two-Dimensional Arrays

• Ways to process a two-dimensional array:


– Process entire array
– Row processing: process a single row at a time
– Column processing: process a single column at a time
• Each row and each column of a two-dimensional
array is a one-dimensional array
– To process, use algorithms similar to processing one-
dimensional arrays

7
 2003 Prentice Hall, Inc. All rights reserved.
8

Initialization

• Examples:
– To initialize row number 4 (fifth row) to 0:

– To initialize the entire matrix to 0:

8
 2003 Prentice Hall, Inc. All rights reserved.
9

Print

• Use a nested loop to output the components of a


two dimensional array:

9
 2003 Prentice Hall, Inc. All rights reserved.
10

Input

• Examples:
– To input into row number 4 (fifth row):

– To input data into each component of matrix:

10
 2003 Prentice Hall, Inc. All rights reserved.
Sum by Row

• Example:
– To find the sum of row number 4:

11
 2003 Prentice Hall, Inc. All rights reserved.
12

Sum by Column

• Example:
– To find the sum of each individual column:

12
 2003 Prentice Hall, Inc. All rights reserved.
13
Largest Element in Each Row
and Each Column

• Example:
– To find the largest element in each row:

13
 2003 Prentice Hall, Inc. All rights reserved.
14
Passing Two-Dimensional Arrays as Parameters
to Functions
• Two-dimensional arrays are passed by reference as
parameters to a function
– Base address is passed to formal parameter
• Two-dimensional arrays are stored in row order
• When declaring a two-dimensional array as a
formal parameter, can omit size of first dimension,
but not the second

14
 2003 Prentice Hall, Inc. All rights reserved.
Multiple-Subscripted Arrays (Example)

• Next: program showing initialization


– After, program to keep track of students grades
– Multiple-subscripted array (table)
– Rows are students
– Columns are grades Quiz1 Quiz2

Student0 95 85
Student1 89 80

15
 2003 Prentice Hall, Inc. All rights reserved.
Outline

1 // Fig. 4.23: fig04_23.cpp


2 // Double-subscripted array example.
3 #include <iostream>
4
5 using std::cout;
fig04_23.cpp
6 using std::endl; (1 of 6)
7 using std::fixed;
8 using std::left;
9
10 #include <iomanip>
11
12 using std::setw;
13 using std::setprecision;
14
15 const int students = 3; // number of students
16 const int exams = 4; // number of exams
17
18 // function prototypes
19 int minimum( int [][ exams ], int, int );
20 int maximum( int [][ exams ], int, int );
21 double average( int [], int );
22 void printArray( int [][ exams ], int, int );
23  2003 Prentice Hall, Inc. 16
All rights reserved.
Outline

24 int main()
25 {
26 // initialize student grades for three students (rows)
27 int studentGrades[ students ][ exams ] =
28 { { 77, 68, 86, 73 },
fig04_23.cpp
29 { 96, 87, 89, 78 }, (2 of 6)
30 { 70, 90, 86, 81 } };
31
32 // output array studentGrades
33 cout << "The array is:\n";
34 printArray( studentGrades, students, exams );
35
36 // determine smallest and largest grade values
37 cout << "\n\nLowest grade: "
38 << minimum( studentGrades, students, exams )
39 << "\nHighest grade: "
40 << maximum( studentGrades, students, exams ) << '\n';
41
42 cout << fixed << setprecision( 2 );
 2003 Prentice Hall, Inc. 17
43 All rights reserved.
Outline

44 // calculate average grade for each student


45 for ( int person = 0; person < students; person++ )
46 cout << "The average grade for student " << person
47 << " is "
48 << average( studentGrades[ person ], exams )
fig04_23.cpp
49 << endl; (3 of 6)
50
Determines the average for
51 return 0; // indicates successful termination
52
one student. We pass the
53 } // end main array/row containing the
54 student’s grades. Note that
55 // find minimum grade studentGrades[0] is
56 int minimum( int grades[][ exams ], int itself
pupils, intantests
array. )
57 {
58 int lowGrade = 100; // initialize to highest possible grade
59
60 for ( int i = 0; i < pupils; i++ )
61
62 for ( int j = 0; j < tests; j++ )
63
64 if ( grades[ i ][ j ] < lowGrade )
65 lowGrade = grades[ i ][ j ];
66
67 return lowGrade;
68
69 } // end function minimum  2003 Prentice Hall, Inc.
18
All rights reserved.
Outline

70
71 // find maximum grade
72 int maximum( int grades[][ exams ], int pupils, int tests )
73 {
74 int highGrade = 0; // initialize to lowest possible grade
fig04_23.cpp
75 (4 of 6)
76 for ( int i = 0; i < pupils; i++ )
77
78 for ( int j = 0; j < tests; j++ )
79
80 if ( grades[ i ][ j ] > highGrade )
81 highGrade = grades[ i ][ j ];
82
83 return highGrade;
84
85 } // end function maximum  2003 Prentice Hall, Inc. 19
86 All rights reserved.
Outline

87 // determine average grade for particular student


88 double average( int setOfGrades[], int tests )
89 {
90 int total = 0;
91
fig04_23.cpp
92 // total all grades for one student (5 of 6)
93 for ( int i = 0; i < tests; i++ )
94 total += setOfGrades[ i ];
95
96 return static_cast< double >( total ) / tests; // average
97  2003 Prentice Hall, Inc. 20
98 } // end function maximum All rights reserved.
Outline

99
100 // Print the array
101 void printArray( int grades[][ exams ], int pupils, int tests )
102 {
103 // set left justification and output column heads
fig04_23.cpp
104 cout << left << " [0] [1] [2] [3]"; (6 of 6)
105
106 // output grades in tabular format
107 for ( int i = 0; i < pupils; i++ ) {
108
109 // output label for row
110 cout << "\nstudentGrades[" << i << "] ";
111
112 // output one grades for one student
113 for ( int j = 0; j < tests; j++ )
114 cout << setw( 5 ) << grades[ i ][ j ];
115
116 } // end outer for
117
118 } // end function printArray  2003 Prentice Hall, Inc. 21
All rights reserved.
Outline

The array is:


[0] [1] [2] [3]
studentGrades[0] 77 68 86 73
studentGrades[1] 96 87 89 78
studentGrades[2] 70 90 86 81
fig04_23.cpp
output (1 of 1)
Lowest grade: 68
Highest grade: 96
The average grade for student 0 is 76.00
The average grade for student 1 is 87.50
The average grade for student 2 is 81.75  2003 Prentice Hall, Inc. 22
All rights reserved.

You might also like