Getting Started - Al Akhawayn University

Download Report

Transcript Getting Started - Al Akhawayn University

Lab 11
 Arrays
 Exercises
Note:
Read the whole Chapter 8.
Arrays
 A data structure is a grouping of related data items in memory.
 An array is a data structure used to store a collection of data items of the
same type.
 An individual array element is referenced by placing immediately after the
array name a square-bracketed subscript for each dimension.

The initial element of one-dimensional array x is referenced by x[0].
If x has n elements, the final element is referenced as x[n-1].
 An indexed for loop whose counter runs from 0 to one less than an array’s
size enables us to reference all the elements of a one-dimensional array in
sequence by using the loop counter as the array subscript. Nested for
loops provide sequential access to multidimensional array elements
 For an array declared as function parameter, space is allocated in the
function data area for only the address of the initial element of the actual
argument passed.
Arrays (continue)
 The name of an array with no subscript always refers to the address of
the initial array element.
 A function that creates an array result should require the calling module
to pass an output argument array in which to store the result.
 Examples:

Array declarations:
- double data[30]; : allocates storage for 30 type double items in
array data (data[0],data[1]……data[29])
- int matrix[2][3]: 6 type int items (2 rows of 3 columns) in twodimensional array matrix (matrix[0][0],
matrix[0][1],…..matrix[1][2]).
 Initialization:

char vowels[3] ={‘A’,’E’,’I’}: allocates storage for 3 type char items in
array vowels and initializes the array contents: vowels[0]=‘A’,
vowels[1]=‘E’, vowels[2]=‘I’.

int id[2][2]={{1,0},{0,1}}: Allocates 4 locations for the 2*2 matrix id,
initializing the storage so id[0][0]=1, id[0][1]=0, id[0][0]=0, id[0][1]=1.
 Input parameter

void print_alpha(const char alpha[],const int m[], int a_size,int m_size)
: states that the function print_alpha uses arrays aplha and m as input
parameters, only print_alpha will not change their contents.
 Input/Output parameter

void fill(int nums[], int n) or …(int*nums, …): states that function fill can
both look at and modify the actual argument array passed to nums.
 Array references

if (data[0]<39.8) : compares value of initial element of array data
to 39.8

for (i=0;i<30,i++)
data[i]/=2.0; ??

for(i=0;i<2;++i) ??
for(j=0;j<3;++j)
printf(" %6d", matrix[i][j]);
Exercises
 Exercise1:
Write a C program that computes the mean and standard deviation of
an array of data and displays the difference between each value and
the mean.
 Exercise 2:
Write a C program that uses a function get_max() to find the largest of
the first n values in an array list.
 Exercise 3:
Write a C program that uses a function search() to search for the target
item in first n elements of an array gotten as input.
Multidimensional Arrays
 You can initialize arrays in their declarations just like you initialize onedimensional arrays. Still, instead of listing all table values in one list,
the values are usually grouped by rows.

example: char tictac[3][3]={ {‘ ‘ , ‘ ‘, ‘ ‘} , {‘ ‘ , ‘ ‘, ‘ ‘}, {‘ ‘ , ‘ ‘, ‘ ‘}};
it initializes the content of the tic-tac-toe to blanks.
 Arrays with several dimensions

Example: int enroll[MAXCRS][5][4];
This is a three-dimensional array that may be used to store the
enrollment data for a college. The MAXCRS refers to the
maximum number of courses offered at 5 different campuses.
With the 4 refers to the year : 0 refers to the freshman year 0,
the sophomore year 1, and so on. Thus, the enroll [1][4][3]
represents the number of seniors taking course 1 at campus 4.
Exercises
 Write a C program that finds and displays the total number of students
in each course.
 Write a C program that displays the number of students at each
campus.