Presentation is loading. Please wait.

Presentation is loading. Please wait.

Problem Solving and Program Design in C (5th Edition) by Jeri R. Hanly and Elliot B. Koffman CP 202 Chapter 8 11-10-1429.

Similar presentations


Presentation on theme: "Problem Solving and Program Design in C (5th Edition) by Jeri R. Hanly and Elliot B. Koffman CP 202 Chapter 8 11-10-1429."— Presentation transcript:

1 Problem Solving and Program Design in C (5th Edition) by Jeri R. Hanly and Elliot B. Koffman CP 202 Chapter 8 11-10-1429

2 © FCIT@KAU CHAPTER 8 - Arrays Chapter 8 1. Arrays 1a. Declaring 1b. Manipulating 1c. Declaring and Initializing 2. Arrays and Loops 3. Arrays and Pointers 4. Arrays and Functions 4a. Arrays as Output Arguments 4b. Arrays as Input Arguments 5. Multidimensional Arrays #

3 © FCIT@KAU Arrays A. Introduction  An array is a collection of two or more adjacent memory cells that are associated with a particular symbolic name. B. Subtopics  Declaring arrays  Manipulating arrays  Declaring and initializing arrays 1

4 © FCIT@KAU Arrays Declaring A. Introduction  Declaring arrays is similar to declaring variables, but declaring arrays requires declaring the name of the array and the number of the cells associated with it. B. Syntax C. Example  int id[3];  double dollar[5];  char gender[2]; Data Types Numbers only Integer (int) Double (double) Character (char) 1a

5 © FCIT@KAU Arrays Manipulating ExplanationStatement Displays the value of x[0], which is 16.0. printf(“%.1f”, x[0]); Stores the value 25.0 in x[3]. x[3] = 25.0; Stores the sum of x[0] and x[1], which is 28.0 in the variable sum. sum = x[0] + x[1]; Adds x[2] to sum. The new sum is 34.0. sum += x[2]; Adds 1.0 to x[3]. The new x[3] is 26.0. x[3] += 1.0; Stores the sum of x[0] and x[1] in x[2]. The new x[2] is 28.0. x[2] = x[0] + x[1]; 1b

6 © FCIT@KAU Arrays Manipulating ExplanationStatement i = 5; Displays 4 and 2.5 ( value of x[4]) printf(“%d %.1f”, 4, x[4]); Displays 5 and 12.0 ( value of x[5]) printf(“%d %.1f”, i, x[i]); Displays 13.0 ( value of x[5] plus1) printf(“%.1f”, x[i] +1); Displays 17.0 ( value of x[5] plus5) printf(“%.1f”, x[i] +i); Displays14.0 ( value of x[6]) printf(“%.1f”, x[i +1]); Invalid. Attempt to display x[10] printf(“%.1f”, x[i +i]); Invalid. Attempt to display x[10] printf(“%.1f”, x[2 * i]); Displays -54.5 ( value of x[7]) printf(“%.1f”, x[2 * i-3]); Displays 6.0 ( value of x[2]) printf(“%.1f”, x[(int) x[4]]); Displays12.0 ( value of x[5]); then assign 6 to I printf (“%.1f”, x[i++]); Assigns 5(6-1) to i and then displays 12.0 (value of x[5]) printf (“%.1f”, x[--i]); Assigns 12.0 (value of x[5]) to x[4] x[ i – 1] = x[i]; Assigns 14.0 (value of x[6]) to x[5] x[i] = x[i+1]; Illegal assignment statement x[i] – 1 = x[i]; 1b

7 © FCIT@KAU Arrays Declaring and Initializing A. Introduction  Arrays can be initialized when they are declared as same as variables B. Example  int prime[] = {2, 3, 5, 7, 11, 13, 17, 19};  char vowels[] = {‘A’, ‘E’, ‘I’, ‘O’, ‘U’}; 1c

8 © FCIT@KAU Arrays and Loops A. Introduction  If you wish to process the elements of an array in sequence, you can use loop  Note: any array starts with element zero (not one) B. Example  Write a fragment of a program that stores the squares of the integers 0 through 9 ? int square[10], i; for (i=0; i<10; ++i) square[i] = i * i; 0149162536496481 [0][1][2][3][4][5][6][7][8][9] 2

9 © FCIT@KAU Calculating Mean and SD  Write a program that computes the mean and standard deviation of an array of data and displays the difference between each value and the mean. 1 Implementation ProblemAnalysis DesignOutline Testing Maintenance

10 © FCIT@KAU Calculating Mean and SD 1 Implementation ProblemAnalysis DesignOutline Testing Maintenance

11 © FCIT@KAU Calculating Mean and SD 1 Implementation ProblemAnalysis DesignOutline Testing Maintenance

12 © FCIT@KAU Arrays and Pointers A. Without arrays: int andy, *ted; andy = 25; fred = andy; ted = &andy; B. With arrays: char andy[]={‘a’,‘b’,‘c’}; char fred[3]; char *ted; fred[0] = andy[0]; fred[1] = andy[1]; fred[2] = andy[2]; ted = andy; 1775 1776 1777 1778 1779 ‘b’ andy ‘a’‘c’ [0] [1] [2] ‘b’ fred ‘a’‘c’ [0] [1] [2] 1776 ted 3

13 © FCIT@KAU Arrays and Pointers Tutorial int main (void) { char letters[5], char *p; int n; p = letters; *p = ‘a’;// ≡ letters[0]=‘a’ p++; *p = ‘b’; // ≡ letters[1]=‘b’ p = &letters[2]; *p = ‘c’; // ≡ letters[2]=‘c’ p = letters + 3; *p = ‘d’;// ≡ letters[3]=‘d’ p = letters; *(p+4) = ‘e’; // ≡ letters[4]=‘e’ for (n=0; n<5; n++) printf(“%c”, letters[n]); return (0); } letters [0] [1] [2] [3] [4] *p ‘b’‘a’‘c’‘d’‘e’ Way 1 Way 2 Way 3 Way 4 Way 5 no pointer 1775 1776 1777 1778 1779

14 © FCIT@KAU Arrays and Functions A. Introduction  Previous examples in functions show that the arguments are variables, so changing their values inside the functions will not affect the original values in the main function  However, using pointers allows you to send the address of a variable instead of the value of a variable, so the changing will take affect  Sending an array as an argument requires sending the address of the first element in the array B. Subtopics  Arrays as output arguments  Arrays as input arguments 4

15 © FCIT@KAU Arrays and Functions Arrays as Output Arguments A. Introduction  In simple (not array) parameters: void test(int *list) { *list = 10; } int main(void) { int x; test(&x); }  In array parameters: void test(int *list) { *(list+5) = 10; } int main(void) { int x[10]; test(&x[0]); } or test(int list[]) or test(x) or list[5] = 10; 4a

16 © FCIT@KAU Arrays and Functions Arrays as Output Arguments B. Example 4a

17 © FCIT@KAU Arrays and Functions Arrays as Input Arguments A. Introduction  In simple (not array) parameters: void function test(int list) { : } int main(void) { int x; test(x); }  In array parameters: void test(const int *list) { : } int main(void) { int x[10]; test(&x[0]); } or test(const int list[]) or test(x) 4b

18 © FCIT@KAU Arrays and Functions Arrays as Input Arguments B. Example 4b

19 © FCIT@KAU Arrays and Functions C. Example 4

20 © FCIT@KAU Simulating Stacks  A stack is a data structure in which only the top element can be accessed.  Inserting a new element at the top of a stack is called push.  Removing the top element of a stack is called pop. 2 Implementation ProblemAnalysis DesignOutline Testing Maintenance

21 © FCIT@KAU Simulating Stacks Write the main() function for this program? 2 Implementation ProblemAnalysis DesignOutline Testing Maintenance

22 © FCIT@KAU Array Search - Linear Search  Search for a value inside an array.  The simple process is to check each element in the array using a loop and exit the loop if the value is found or you finished checking all the elements. This process is called a linear search. 3 Implementation ProblemAnalysis DesignOutline Testing Maintenance

23 © FCIT@KAU Array Search - Linear Search  Assume the target has not been found.  Start with the initial array element.  Repeat while the target is not found and there are more array elements.  If the current element matches the target  Set a flag to indicate that the target has been found.  else  Advance to the next array element.  If the target was found  Return the target index as the search result.  else  Return -1 as the search result. 3 Implementation ProblemAnalysis DesignOutline Testing Maintenance

24 © FCIT@KAU Array Search - Linear Search 3 Implementation ProblemAnalysis DesignOutline Testing Maintenance

25 © FCIT@KAU Sorting an Array  Start from the first data element until the previous of the last one and do the following:  Search for the smallest element from the current data element until the last one [subarray].  If you find one, exchange it with the current data element. 4 Implementation ProblemAnalysis DesignOutline Testing Maintenance

26 © FCIT@KAU Sorting an Array 4 Implementation ProblemAnalysis DesignOutline Testing Maintenance

27 © FCIT@KAU Multidimensional Arrays  Multi-dimensional arrays are arrays with two or more dimensions.  Example of two dimensions:  Example of three dimensions: int cube[100][5][4]; cube[0][2][3] = 2; char jimmy[3][5]; 5

28 © FCIT@KAU Multidimensional Arrays Declaring and Initializing  One Dimension arrays: int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}; char vowels[] = {‘A’, ‘E’, ‘I’, ‘O’, ‘U’};  Two Dimensions arrays: int words[2][3] = { {‘a’,’n’,’d’}, {‘o’,’r’,’ ’}}; 5

29 © FCIT@KAU Tic-Tac-Toe  Write a function to check whether a tic-tac-toe board is completely filled, assuming the original value for each cell is one space? ttt_brd[1][2] 5 Implementation ProblemAnalysis DesignOutline Testing Maintenance

30 © FCIT@KAU Tic-Tac-Toe Implementation ProblemAnalysis DesignOutline Testing Maintenance 5

31 © FCIT@KAU Enrollment Data in 3D  Assuming that you have three-dimensional array, called enroll, that may be used to store the enrollment data for a college.  The college offers 100 courses at five different campuses. We will number the freshman year 0, the sophomore year 1,… 3  Write the code for:  Display number of students in each course  Display number of students at each campus Implementation ProblemAnalysis DesignOutline Testing Maintenance 6

32 © FCIT@KAU Enrollment Data in 3D // Display number of students in each course for (course = 0; course < 100; course++) { course_sum = 0; for (campus = 0; campus < 5; campus++) { for (cls_rank = 0; cls_rank < 4; cls_rank++) { course_sum += enroll[course][campus][cls_rank]; } printf(“Number of students in course %d is %d\n”, course, course_sum); } Implementation ProblemAnalysis DesignOutline Testing Maintenance 6

33 © FCIT@KAU Enrollment Data in 3D // Display number of students at each campus for (campus = 0; campus < 5; campus++) { campus_sum = 0; for (course = 0; course < 100; course++) { for (cls_rank = 0; cls_rank < 4; cls_rank++) { campus_sum += enroll[course][campus][cls_rank]; } printf(“Number of students at campus %d is %d\n”, campus, campus_sum); } Implementation ProblemAnalysis DesignOutline Testing Maintenance 6

34 © FCIT@KAU CHAPTER 8 - Arrays Chapter 8 1. Arrays 1a. Declaring 1b. Manipulating 1c. Declaring and Initializing 2. Arrays and Loops 3. Arrays and Pointers 4. Arrays and Functions 4a. Arrays as Output Arguments 4b. Arrays as Input Arguments 5. Multidimensional Arrays C


Download ppt "Problem Solving and Program Design in C (5th Edition) by Jeri R. Hanly and Elliot B. Koffman CP 202 Chapter 8 11-10-1429."

Similar presentations


Ads by Google