490 likes | 847 Views
Programming Logic and Design, Fifth Edition, Comprehensive. 2. Objectives. Understand arrays and how they occupy computer memoryManipulate an array to replace nested decisionsUse a named constant to refer to an array's sizeDeclare and initialize an arrayUnderstand the difference between variable
E N D
1. Programming Logic and Design Fifth Edition, Comprehensive Chapter 6
Arrays
2. Programming Logic and Design, Fifth Edition, Comprehensive 2 Objectives Understand arrays and how they occupy computer memory
Manipulate an array to replace nested decisions
Use a named constant to refer to an array’s size
Declare and initialize an array
Understand the difference between variable and constant arrays
3. Programming Logic and Design, Fifth Edition, Comprehensive 3 Objectives (continued) Search an array for an exact match
Use parallel arrays
Search an array for a range match
Learn about remaining within array bounds
Use a for loop to process arrays
4. Programming Logic and Design, Fifth Edition, Comprehensive 4 Understanding Arrays and How They Occupy Computer Memory Array:
Series or list of variables in computer memory
All variables share the same name
Each variable has a different subscript
Subscript (or index):
Position number of an item in an array
Subscripts are always a sequence of integers
5. Programming Logic and Design, Fifth Edition, Comprehensive 5 How Arrays Occupy Computer Memory Each item has same name and same data type
Element: an item in the array
Array elements are contiguous in memory
Size of the array: number of elements it will hold
6. Programming Logic and Design, Fifth Edition, Comprehensive 6 How Arrays Occupy Computer Memory (continued)
7. Programming Logic and Design, Fifth Edition, Comprehensive 7 How Arrays Occupy Computer Memory (continued) All elements have same group name
Individual elements have unique subscript
Subscript indicates distance from first element
Subscripts are a sequence of integers
Subscripts placed in parentheses or brackets following group name
Syntax depends on programming language
8. Programming Logic and Design, Fifth Edition, Comprehensive 8 Manipulating an Array to Replace Nested Decisions Example: Human Resources Department Dependents report
List employees who have claimed 0 through 5 dependents
Assume no employee has more than 5 dependents
Application produces counts for dependent categories
Uses series of decisions
Application does not scale up to more dependents
9. Programming Logic and Design, Fifth Edition, Comprehensive 9
10. Programming Logic and Design, Fifth Edition, Comprehensive 10
11. Programming Logic and Design, Fifth Edition, Comprehensive 11 Manipulating an Array to Replace Nested Decisions (continued) Array reduces number of statements needed
Six dependent count accumulators redefined as single array
Variable as a subscript to the array
Array subscript variable must be:
Numeric with no decimal places
Initialized to 0
Incremented by 1 each time the logic passes through the loop
12. Programming Logic and Design, Fifth Edition, Comprehensive 12
13. Programming Logic and Design, Fifth Edition, Comprehensive 13
14. Programming Logic and Design, Fifth Edition, Comprehensive 14 Manipulating an Array to Replace Nested Decisions (continued)
15. Programming Logic and Design, Fifth Edition, Comprehensive 15 Manipulating an Array to Replace Nested Decisions (continued)
16. Programming Logic and Design, Fifth Edition, Comprehensive 16
17. Programming Logic and Design, Fifth Edition, Comprehensive 17 Using a Named Constant to Refer to an Array’s Size Avoid “magic numbers” (unnamed constants)
Declare a named numeric constant to be used every time array is accessed
Make sure any subscript remains less than the constant value
Constant created automatically in many languages
18. Programming Logic and Design, Fifth Edition, Comprehensive 18 Array Declaration and Initialization Declarations in different languages have two things in common:
Name the count array
Indicate there will be 20 separate numeric elements
19. Programming Logic and Design, Fifth Edition, Comprehensive 19 Array Declaration and Initialization (continued) Initialize array elements
num count[20] = 0
Make individual assignments
count[0] = 5
No language allows assignment of more values than elements declared
Initialization loop: loop structure that provides initial values to an array
Use the loop control variable as the array subscript
20. Programming Logic and Design, Fifth Edition, Comprehensive 20 Array Declaration and Initialization (continued)
21. Programming Logic and Design, Fifth Edition, Comprehensive 21 Variable and Constant Arrays Variable array: values may change during program execution
Values created during execution of application
Constant array: assigned permanent and final values when program code written
Hard-coded values are explicitly assigned to array elements
22. Programming Logic and Design, Fifth Edition, Comprehensive 22
23. Programming Logic and Design, Fifth Edition, Comprehensive 23 Variable and Constant Arrays (continued)
24. Programming Logic and Design, Fifth Edition, Comprehensive 24 Searching an Array for an Exact Match Sometimes must search through an array to find a value
Example: mail-order business
Item numbers are three-digit, non-consecutive numbers
Customer orders an item, check if item number is valid
Create an array that holds valid item numbers
Search array for exact match
25. Programming Logic and Design, Fifth Edition, Comprehensive 25 Searching an Array for an Exact Match (continued)
26. Programming Logic and Design, Fifth Edition, Comprehensive 26
27. Programming Logic and Design, Fifth Edition, Comprehensive 27
28. Programming Logic and Design, Fifth Edition, Comprehensive 28 Flag: variable that indicates whether an event occurred
Technique for searching an array:
Set a subscript variable to 0 to start at the first element
Initialize a flag variable to false to indicate the desired value has not been found
Examine each element in the array
If the value matches, set the flag to True
If the value does not match, increment the subscript and examine the next array element Searching an Array for an Exact Match (continued)
29. Programming Logic and Design, Fifth Edition, Comprehensive 29 Using Parallel Arrays Example: mail-order business
Two arrays, each with six elements
Valid item numbers
Valid item prices
Each price in valid item price array in same position as corresponding item in valid item number array
Parallel arrays
Each element in one array associated with element in same relative position in other array
Look through valid item array for customer item
When match found, get price from item price array
30. Programming Logic and Design, Fifth Edition, Comprehensive 30
31. Programming Logic and Design, Fifth Edition, Comprehensive 31
32. Programming Logic and Design, Fifth Edition, Comprehensive 32 Using Parallel Arrays (continued)
33. Programming Logic and Design, Fifth Edition, Comprehensive 33 Improving Search Efficiency Using an Early Exit Program should stop searching the array when a match is found
Setting a variable to a specific value instead of letting normal processing set it
Early exit: leaving a loop as soon as a match is found
Improves efficiency
The larger the array, the better the improvement by doing an early exit
34. Programming Logic and Design, Fifth Edition, Comprehensive 34
35. Programming Logic and Design, Fifth Edition, Comprehensive 35 Searching an Array for a Range Match Sometimes programmers want to work with ranges of values in arrays
Example: mail-order business
Read customer order data, determine discount based on quantity ordered
First approach:
Array with as many elements as each possible order quantity
Store appropriate discount for each possible order quantity
36. Programming Logic and Design, Fifth Edition, Comprehensive 36 Searching an Array for a Range Match (continued)
37. Programming Logic and Design, Fifth Edition, Comprehensive 37 Searching an Array for a Range Match (continued) Drawbacks of first approach:
Requires very large array, uses a lot of memory
Stores same value repeatedly
How do you know you have enough elements?
Customer can always order more
Better approach:
Create four discount array elements for each discount rate
Parallel array with discount range
Use loop to make comparisons
38. Programming Logic and Design, Fifth Edition, Comprehensive 38 Searching an Array for a Range Match (continued)
39. Programming Logic and Design, Fifth Edition, Comprehensive 39
40. Programming Logic and Design, Fifth Edition, Comprehensive 40 Remaining within Array Bounds Every array has finite size
Number of elements in the array
Number of bytes in the array
Arrays composed of elements of same data type
Elements of same data type occupy same number of bytes in memory
Number of bytes in an array always a multiple of number of array elements
Access data using subscript containing a value that accesses memory occupied by the array
41. Programming Logic and Design, Fifth Edition, Comprehensive 41
42. Programming Logic and Design, Fifth Edition, Comprehensive 42 Remaining within Array Bounds (continued) Program logic assumes every number entered by the user is valid
When invalid subscript is used:
Some languages stop execution and issue an error
Other languages access a memory location outside of the array
Invalid array subscript is a logical error
Out of bounds: using a subscript that is not within the acceptable range for the array
Program should prevent bounds errors
43. Programming Logic and Design, Fifth Edition, Comprehensive 43
44. Programming Logic and Design, Fifth Edition, Comprehensive 44
45. Programming Logic and Design, Fifth Edition, Comprehensive 45 Using a FOR Loop to Process Arrays for loop: single statement
Initializes loop control variable
Compares it to a limit
Alters it
for loop especially convenient when working with arrays
To process every element
Must stay within array bounds
Highest usable subscript is one less than array size
46. Programming Logic and Design, Fifth Edition, Comprehensive 46 Using a FOR Loop to Process Arrays (continued)
47. Programming Logic and Design, Fifth Edition, Comprehensive 47
48. Programming Logic and Design, Fifth Edition, Comprehensive 48 Summary Array: series or list of variables in memory
Same name and type
Different subscript
Use a variable as a subscript to the array to replace multiple nested decisions
Declare and initialize all elements in an array with a single statement
Initialize array values within an initialization loop
Some array values determined during program execution
Other arrays have hard-coded values
49. Programming Logic and Design, Fifth Edition, Comprehensive 49 Summary (continued) Search an array:
Initialize the subscript
Test each array element value in a loop
Set a flag when a match is found
Parallel arrays: each element in one array is associated with the element in second array
Elements have same relative position
For range comparisons, store either the low- or high-end value of each range
50. Programming Logic and Design, Fifth Edition, Comprehensive 50 Summary (continued) Access data in an array
Use subscript containing a value that accesses memory occupied by the array
Subscript is out of bounds if not within defined range of acceptable subscripts
for loop convenient tool for working with arrays
Process each element of an array from beginning to end