1 / 111

Chapter 7 – Arrays

Chapter 7 – Arrays. 7.1 Arrays Hold Multiple values. Unlike regular variables, arrays can hold multiple values. Figure 7-1. int count. Enough memory for 1 int. 12345. float price. Enough memory for 1 float. 56.981. char letter. Enough memory for 1 char. A. Figure 7-2. Table 7-1.

yaakov
Télécharger la présentation

Chapter 7 – Arrays

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7 – Arrays

  2. 7.1 Arrays Hold Multiple values • Unlike regular variables, arrays can hold multiple values.

  3. Figure 7-1 int count Enough memory for 1 int 12345 float price Enough memory for 1 float 56.981 char letter Enough memory for 1 char A

  4. Figure 7-2

  5. Table 7-1

  6. 7.2 Accessing Array elements • The individual elements of an array are assigned unique subscripts. These subscripts are used to access the elements.

  7. Program 7-1 // This program asks the user for the number of hours worked // by 6 employees. It uses a 6-element int array to store the // values. #include <iostream.h> void main(void) { short hours[6]; cout << "Enter the hours worked by six employees: "; cin >> hours[0]; cin >> hours[1]; cin >> hours[2]; cin >> hours[3];

  8. Program continues cin >> hours[4]; cin >> hours[5]; cout << "The hours you entered are:"; cout << " " << hours[0]; cout << " " << hours[1]; cout << " " << hours[2]; cout << " " << hours[3]; cout << " " << hours[4]; cout << " " << hours[5] << endl; }

  9. Program Output with Example Input Enter the hours worked by six employees: 20 12 40 30 30 15 [Enter] The hours you entered are: 20 12 40 30 30 15

  10. Figure 7-7

  11. Program 7-2 // This program asks the user for the number of hours worked // by 6 employees. It uses a 6-element short array to store the // values. #include <iostream.h> void main(void) { short hours[6]; cout << "Enter the hours worked by six employees: "; for (int count = 0; count < 6; count++) cin >> hours[count]; cout << "The hours you entered are:"; for (count = 0; count < 6; count++) cout << " " << hours[count]; cout << endl; }

  12. Program Output with Example Input Enter the hours worked by six employees: 20 12 40 30 30 15 [Enter] The hours you entered are: 20 12 40 30 30 15

  13. Program 7-3 // This program asks the user for the number of hours worked // by 6 employees. It uses a 6-element short array to store the // values. #include<iostream.h> void main(void) { short hours[6]; cout << "Enter the hours worked by six employees.\n"; for (int count = 1; count <= 6; count++) { cout << "Employee " << count << ": "; cin >> hours[count - 1]; } cout << "The hours you entered are\n";

  14. Program continues for (count = 1; count <= 6; count++) { cout << "Employee " << count << ": "; cout << hours[count - 1] << endl; } }

  15. Program Output with Example Input Enter the hours worked by six employees. Employee 1: 20 [Enter] Employee 2:12 [Enter] Employee 3:40 [Enter] Employee 4:30 [Enter] Employee 5:30 [Enter] Employee 6:15 [Enter] The hours you entered are Employee 1: 20 Employee 2: 12 Employee 3: 40 Employee 4: 30 Employee 5: 30 Employee 6: 15

  16. 7.3 No Bounds Checking in C++ • C++ gives you the freedom to store data past an array’s boundaries.

  17. Program 7-4 // This program unsafely accesses an area of memory by writing // values beyond an array's boundary. // WARNING: If you compile and run this program, it could cause // the computer to crash. #include <iostream.h> void main(void) { short values[3]; // An array of 3 short integers. cout << "I will store 5 numbers in a 3 element array!\n"; for (int count = 0; count < 5; count++) values[count] = 100; cout << "If you see this message, it means the computer\n"; cout << "has not crashed! Here are the numbers:\n"; for (int count = 0; count < 5; count++) cout << values[count] << endl; }

  18. Figure 7-8

  19. 7.4 Array Initialization • Arrays may be initialized when they are declared.

  20. Program 7-5 // This program displays the number of days in each month. // It uses a 12-element int array. #include <iostream.h> void main(void) { int days[12]; days[0] = 31; // January days[1] = 28; // February days[2] = 31; // March days[3] = 30; // April days[4] = 31; // May days[5] = 30; // June days[6] = 31; // July

  21. Program continues days[7] = 31; // August days[8] = 30; // September days[9] = 31; // October days[10] = 30; // November days[11] = 31; // December for (int count = 0; count < 12; count++) { cout << "Month " << (count + 1) << " has "; cout << days[count] << " days.\n"; } }

  22. Program Output Month 1 has 31 days. Month 2 has 28 days. Month 3 has 31 days. Month 4 has 30 days. Month 5 has 31 days. Month 6 has 30 days. Month 7 has 31 days. Month 8 has 31 days. Month 9 has 30 days. Month 10 has 31 days. Month 11 has 30 days. Month 12 has 31 days.

  23. Program 7-6 // This program displays the number of days in each month. // It uses a 12-element int array. #include <iostream.h> void main(void) { int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; for (int count = 0; count < 12; count++) { cout << "Month " << (count + 1) << " has "; cout << days[count] << " days.\n"; } }

  24. Program Output Month 1 has 31 days. Month 2 has 28 days. Month 3 has 31 days. Month 4 has 30 days. Month 5 has 31 days. Month 6 has 30 days. Month 7 has 31 days. Month 8 has 31 days. Month 9 has 30 days. Month 10 has 31 days. Month 11 has 30 days. Month 12 has 31 days.

  25. Program 7-7 // This program uses an array of ten characters to store the // first ten letters of the alphabet. The ASCII codes of the // characters are displayed. #include <iostream.h> void main(void) { char letters[10] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}; cout << "Character" << "\t" << "ASCII Code\n"; cout << "--------" << "\t" << "----------\n"; for (int count = 0; count < 10; count++) { cout << letters[count] << "\t\t"; cout << int(letters[count]) << endl; } }

  26. Program Output Character ASCII Code --------- ---------- A 65 B 66 C 67 D 68 E 69 F 70 G 71 H 72 I 73 J 74

  27. Partial Array Initialization • When an array is being initialized, C++ does not require a value for every element. int numbers[7] = {1, 2, 4, 8};

  28. Program 7-8 // This program has a partially initialized array. #include <iostream.h> void main(void) { int numbers[7] = {1, 2, 4, 8}; // Initialize the // first 4elements. cout << "Here are the contents of the array:\n"; for (int index = 0; index < 7; index++) cout << numbers[index] << endl; }

  29. Program Output Here are the contents of the array: 1 2 4 8 0 0 0

  30. Implicit Array Sizing • It is possible to declare an array without specifying its size, as long as you provide an initialization list. float ratings[] = {1.0, 1.5, 2.0, 2.5, 3.0};

  31. Initializing With Strings • When initializing a character array with a string, simply enclose the string in quotation marks: char name[] = “Warren”;

  32. Figure 7-11

  33. Program 7-9 // This program displays the contents of two char arrays. #include <iostream.h> void main(void) { char name1[] = "Holly"; char name2[] = {'W', 'a', 'r', 'r', 'e', 'n', '\0'}; cout << name1 << endl; cout << name2 << endl; }

  34. Program Output Holly Warren

  35. 7.5 Processing Array Contents • Individual array elements are processed like any other type of variable.

  36. Program 7-10 // This program stores, in an array, the hours worked by 5 // employees who all make the same hourly wage. #include <iostream.h> void main(void) { int hours[5]; float payRate; cout << "Enter the hours worked by 5 employees who all\n"; cout << "earn the same hourly rate.\n"; for (int index = 0; index < 5; index++) { cout << "Employee #" << (index + 1) << ": "; cin >> hours[index]; }

  37. Program continues cout << "Enter the hourly pay rate for all the employees: "; cin >> payRate; cout << "Here is the gross pay for each employee:\n"; cout.precision(2); cout.setf(ios::fixed | ios::showpoint); for (index = 0; index < 5; index++) { float grossPay = hours[index] * payRate; cout << "Employee #" << (index + 1); cout << ": $" << grossPay << endl; } }

  38. Program Output with Example Input Enter the hours worked by 5 employees who all earn the same hourly rate. Employee #1: 5 [Enter] Employee #2: 10 [Enter] Employee #3:15 [Enter] Employee #4:20 [Enter] Employee #5:40 [Enter] Enter the hourly pay rate for all the employees: 12.75 [Enter] Here is the gross pay for each employee: Employee #1: $63.75 Employee #2: $127.50 Employee #3: $191.25 Employee #4: $255.00 Employee #5: $510.00

  39. Program 7-11 // This program stores, in an array, the hours worked by 5 // employees who all make the same hourly wage. It then // displays the gross pay, including any overtime. #include <iostream.h> // Constant for defining the array size void main(void) { int hours[5]; float payRate; cout << "Enter the hours worked by 5 employees who all\n"; cout << "earn the same hourly rate.\n"; for (int index = 0; index < 5; index++) { cout << "Employee #" << (index + 1) << ": "; cin >> hours[index]; }

  40. Program continues cout << "Enter the hourly pay rate for all the employees: "; cin >> payRate; cout << "Here is the gross pay for each employee:\n"; cout.precision(2); cout.setf(ios::fixed | ios::showpoint); for (index = 0; index < 5; index++) { float grossPay, overTime; if (hours[index] > 40) { // Calculate pay for 40 hours. grossPay = 40 * payRate; // Calculate overtime pay. overTime = (hours[index] - 40) * 1.5 * payRate; // Add regular pay and overtime pay. grossPay += overTime; }

  41. Program continues else grossPay = hours[index] * payRate; cout << "Employee #" << (index + 1); cout << ": $" << grossPay << endl; } }

  42. Program Output with Example Input Enter the hours worked by 5 employees who all earn the same hourly rate. Employee #1: 10 [Enter] Employee #2:20 [Enter] Employee #3:50 [Enter] Employee #4:40 [Enter] Employee #5:60 [Enter] Enter the hourly pay rate for all the employees:12.75 [Enter] Here is the gross pay for each employee: Employee #1: $127.50 Employee #2: $255.00 Employee #3: $701.25 Employee #4: $510.00 Employee #5: $892.50

  43. 7.6 Focus on Software Engineering: Parallel Arrays • By using he same subscript, you can build relationships between data stored in two or more arrays.

  44. Program 7-12 // This program stores, in two arrays, the hours worked by 5 // employees, and their hourly pay rates. #include <iostream.h> // Constant for defining the array size const int numEmps = 5; void main(void) { int hours[numEmps]; float payRate[numEmps]; cout << "Enter the hours worked by “ << numEmps << “ employees and their\n"; cout << "hourly rates.\n"; for (int index = 0; index < numEmps; index++) { cout << "hours worked by employee #" << (index + 1); cout << ": ";

  45. Program continues cin >> hours[index]; cout << "Hourly pay rate for employee #"; cout << (index + 1) << ": "; cin >> payRate[index]; } cout << "Here is the gross pay for each employee:\n"; cout.precision(2); cout.setf(ios::fixed | ios::showpoint); for (index = 0; index < numEmps; index++) { float grossPay = hours[index] * payRate[index]; cout << "Employee #" << (index + 1); cout << ": $" << grossPay << endl; } }

  46. Program Output with Example Input Enter the hours worked by 5 employees and their hourly rates. hours worked by employee #1: 10 [Enter] Hourly pay rate for employee #1: 9.75 [Enter] hours worked by employee #2: 15 [Enter] Hourly pay rate for employee #2: 8.62 [Enter] hours worked by employee #3: 20 [Enter] Hourly pay rate for employee #3: 10.50 [Enter] hours worked by employee #4: 40 [Enter] Hourly pay rate for employee #4: 18.75 [Enter] hours worked by employee #5: 40 [Enter] Hourly pay rate for employee #5: 15.65 [Enter] Here is the gross pay for each employee: Employee #1: $97.50 Employee #2: $129.30 Employee #3: $210.00

  47. 7.7 Thou Shalt Not Assign • You cannot use the assignment operator to copy one array’s contents to another. for (int count=0; count < 4; count++) newVal[count] = oldVal[count];

  48. Table 7-2

  49. 7.8 Printing the Contents of an Array • To display the contents of an array, you must use a loop to display the contents of each element.int array[5] = { 10, 20, 30, 40, 50 };for (int count = 0; count < 5; count++) cout << array[count] << endl;

  50. 7.9 Arrays As Function Arguments • To pass an array as an argument to a function, pass the name of the array.

More Related