CPSC 120 Spring 2014
Lab 8
Name _____________________________
Practice Objectives of this Lab:
1. Arrays Hold Multiple Values
2. Accessing Array Elements
3. Inputting and Displaying Array Contents
4. Array Initialization
5. Processing Array Contents
6. Using Parallel Arrays
7. Two-Dimensional Arrays
Grading:
1. 8.1 10 points
8.2-7.7 15 points each
100 points totally
2. Your final complete solution report is due before your lab in next week(April. 27—May.3rd).
To begin
· Log on to your system and create a folder named Lab8 in your work space.
· Start the C++ IDE (Visual Studio) and create a project named Lab8.
· Please refer to the PPTs, Chapter 8 in our Textbook.
LAB 8.1– TRY IT: You do not need to complete all of them (at least 60%). These questions help you review the basic concepts in Arrays.
1. Declare an array named scores of twenty-five elements of type int .
2. Write a statement that declares an array of char named streetAddress that contains exactly eighty elements .
3. Given the array a , write an expression that refers to the first element of the array .
4. Given an array a , declared to contain 34 elements , write an expression that refers to the last element of the array .
5. Assume that the array arr has been declared . In addition, assume that ARR_SIZE has been defined to be an integer that equals the number of elements in arr . Write a statement that assigns to x the value of the next to last element of the array ( x has already been declared ).
6. Assume that the array monthSales of integers has already been declared and that its elements contain sales data for the 12 months of the year in order (i.e., January, February, etc.). Write a statement that writes to standard output the element corresponding to October. Do not write anything else out to standard output .
7. Given that an array of int named a has been declared , assign 3 to its first element .
8. Assume that an array of int variables named salarySteps that contains exactly five elements has been declared . Write a single statement to assign the value 30000 to the first element of this array .
9. Assume that an array of integers named salarySteps that contains exactly five elements has been declared . Write a statement that assigns the value 160000 to the last element of the array salarySteps .
10. Assume that an array named a , containing exactly five integers has been declared and initialized . Write a single statement that adds ten to the value stored in the first element of the array .
11. Given that an array of int named a has been declared , and that the integer variable n contains the number of elements of the array a, assign -1 (minus one) to the last element in a.
12. Assume that an array of int named a has been declared with 12 elements and that the integer variable k holds a value between 0 and 6. Assign 15 to the array element whose index is k .
13. Given that an array of int named a has been declared with 12 elements and that the integer variable k holds a value between 0 and 6. Assign 9 to the element just after a[k] .
14. Assume that an array of integers named a that contains exactly five elements has been declared and initialized . Write a single statement that assigns a new value to the first element of the array . This new value should be equal to twice the value stored in the last element of the array . Do not modify any values in the array other than the first element .
15. Suppose v is an array with 100 int elements. If 100 is assigned to v[100], what happens? image1.wmf The compiler issues an error message. image2.wmf The compiler issues a warning message. image3.wmf The program will terminate immediately. image4.wmf Another variable or array will very likely be unexpectedly modified.
16. QUESTION 1:
An array of 1000 integers is declared. What is the largest integer that can be used as an index to the array? image5.wmf 1001 image6.wmf 1000 image7.wmf 999
17. QUESTION 2:
Consider the declaration: int v[1]; What is the index of the last element of this array? image8.wmf 0 image9.wmf 1 image10.wmf 2
18. Declare an array named a of 10 elements of type int and initialize the elements (starting with the first) to the values 10, 20, ..., 100, respectively.
19. Declare an array named taxRates of 5 elements of type double and initialize the elements (starting with the first) to the values 0.10, 0.15, 0.21, 0.28, 0.31, respectively.
20. Write a statement to declare and initialize an array of int named denominations that contains exactly six elements . Your declaration statement should initialize the elements of the array to the following values : 1, 5, 10, 25, 50, 100. (The value 1 goes into the first element ; the value 100 to the last.)
21. Given an array temps of double , containing temperature data, and an int variable n that contains the number of elements in temps : Compute the average temperature and store it in a variable called avgTemp . Besides temps , n , and avgTemp , you may use only two other variables -- an int variable k and a double variable total , which have been declared .
22. Reversing the elements of an array involves swapping the corresponding elements of the array : the first with the last, the second with the next to the last, and so on, all the way to the middle of the array . Given an array a , an int variable n containing the number of elements in a , and two other int variables , k and temp , write a loop that reverses the elements of the array . Do not use any other variables besides a , n , k , and temp .
23. Declare a 8x8 two-dimensional array of strings named chessboard.
24. Given a two-dimensional array x of doubles , write an expression whose value is twice the value of the element in the 3rd row and the 2nd column.
25. Gi ven a two-dimensional array x of element type int , write an expression whose value is the sum of the element in the 3rd row and4th column and the element in the 5th rowand 1st column.
26. Given a two-dimensional array x of element type int with 5 rows and 4 columns, write an expression whose value the last element in the array (the last column of the last row).
27. Given a two-dimensional array x of element type double , and two integer variables i and j , write an expression whose value is the i-th element in the j-th row.
28. Given a two-dimensional array of integers named q , with 2 rows and 4 columns, write some code that puts a zero in every element of q . Declare any variables needed to help you.
29. You are given a 6x8 (6 rows, 8 columns) array of integers , x , already initialized and three integer variables : max , i and j . Write the necessary code so that max will have the largest value in the array x .
Please do the following few Programming Projects in the following way.
1) Pseudocode of your program (20% grading);
2) Your C++ source code (include your name, section number, CSUF email, lab number and date (60% grading);
3) Screenshots gotten using any reasonable testing cases or as required (20% grading)
8.2 (15 points) Write a short program that prompts the user and reads in integers into an array called Table. When the user enters a negative number, the input stops. Keep track of how many numbers were read in (at least 5 and no more than 10; what size should you declare the array to have?)
--At least 1 screenshot for testing
8.3 (15 points) Based on your solution of 8.2, add code to do the following (only include your complete pseudocode after step 4 in your report):
1) Print how many numbers were read in, and then print out all the numbers that were stored in the array.
2) Find and print the sum of the numbers in the array.
3) Find the average of the numbers in the array. (Make sure the average is a real number, not an integer.)
4) Then find and print how many of the numbers are less than the average calculated above, how many are exactly the same value as the average, and how many were greater than the average. Test and make sure it works.
--At least 1 screenshot for each step’s testing (totally 4)
8.4 (15 points) Add code to do the following based on your solution of exercise 8.3:
Ask the user for a value and see if it is in the array. If found, the program should print “Found at” followed by the index where the value was found. Ask the user whether to repeat and keep repeating if the user wants to. (The body of the loop would be:
Asking user for a value and reading it in.
Searching for the value in the array and printing either “Not found.” or “Found at index ….”. Asking user whether to continue and reading in the answer.)
Test using different values. At a minimum, test using the following values:
a. value not in the array.
b. the first value of the array,
c. the last value in the array
d. value in the array somewhere between the first and the last values.
--At least 1 screenshot for each case’s testing (totally 4)
8.5 (15 points) Add code to do the following based on your solution of exercise 8.4:
Find and print the smallest value in the array AND the index where it is located. Then write code that will swap the smallest value and the first value in the array.
--At least 1 screenshot for testing
8.6 (15 points) Programming Challenges of Chapter 8 # 4 Monkey Business (Page 587)
image11.png
8.7 (15 points) Write a program that reads in sales for different items in a chain of 6 stores. This means that you read in an item ID, a one word description, the item price, followed by 6 numbers representing the number of that item sold at the 6 stores. Keep reading in item data until the user enters -1 where the item ID should be.
Sample input:
4715 toy_car 3.00 7 4 3 6 5 6
6813 birthday_card 2.00 16 8 15 4 12 19
-1
You should use an array for all the IDs, an array of strings for the item description, another array for the prices, and a 2D array for the sales. These should be parallel arrays; that is, the item with its ID stored at index 2 will have its item description at index 2, its price in the price array at index 2, and the numbers of that item sold will be in the row 2.
1) First write code that will print out the data, reproducing the input pattern (that is, the first row will print out the ID, price, and sales for the first item. Use it to check that the input went correctly.
(2 testing screenshots)
2) Now add to the program an interactive loop, asking what data the user wishes to see. Choice 1 should be the complete array contents you wrote for the previous problem.
(1 testing screenshot)
3) Then for the other choices (one choice should be able to quit), you will write the code for the following tasks that use the arrays.
1) Given an item ID, print out the total sales for that item for the whole chain. (2 testing screenshots)
2) Given one store (0, 1, … 5), print the actual $ values the sales represents for each item.
(2 testing screenshots)
3) Given one store, print out the item that had the largest total $ value of the sales.
(2 testing screenshots)
4) Given an item, print out the store that sold the most and the store that sold the fewest.
(2 testing screenshots)
1
_1459571805.unknown
_1459571807.unknown
_1459571808.unknown
_1459571806.unknown
_1459571803.unknown
_1459571804.unknown
_1459571801.unknown
_1459571802.unknown
_1459571800.unknown
_1459571799.unknown