array processing n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Array Processing PowerPoint Presentation
Download Presentation
Array Processing

Loading in 2 Seconds...

play fullscreen
1 / 47

Array Processing - PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on

Array Processing. Lecture 7. Motivation. One of the most powerful programming tools available Help to organize a collection of homogeneous data items (same type and lenght). The individual data items that make up the array are called as Element of the array

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Array Processing' - panthea


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
motivation
Motivation
  • One of the most powerful programming tools available
  • Help to organize a collection of homogeneous data items (same type and lenght). The individual data items that make up the array are called as Element of the array
  • Example: Scores[3]  indicated the third exam score
operation on arrays
Operation on Arrays
  • Loading initial value into the element of array
  • Processing the elements of the array
  • Searching an array (linear or binary search)
  • Writing out the array content to the report
example 7 1 find the sum of the elements of an array
Example 7.1 Find the sum of the elements of an array
  • Each elemen of the array is accumulated into a variable called sum. When all elements have been added, the variable sum is printed.
slide6
Find_sum_of_elements

Set sum to zero

DO index = 1 to number_of_elements

sum = sum + array(index)

ENDO

Print sum

END

example 7 2 find the average of the elements of an array
Example 7.2 Find the average of the elements of an array
  • Each element of the array is accumulated into a variable called sum. When all elements have been added, the average of the elements is found and printed.
slide8
Find_element_average

Set sum to zero

DO index = 1 to number_of_elements

sum = sum + array(index)

ENDO

Average = sum / number_of_elements

Print average

END

example 7 3 find the largest elements of an array
Example 7.3 Find the largest elements of an array
  • The elements of an array are searched to determine which element is the largest. The algorithm starts by putting the first element of the array into the variable largest_element, and then looks at the other elements of the array to see if a larger value exists. The largest value is then printed.
slide10
Find_largest_element

Set largest_element to array(1)

DO index = 2 to number_of_elements

IF array(index) > largest_element THEN

largest_element = array(index)

ENDIF

ENDO

Print largest_element

END

example 7 4 find the smallest of the elements of an array
Example 7.4 Find the smallest of the elements of an array
  • The elements of an array are searched to determine the smallest element. The algorithm starts by putting the first element of the array into the variable smallest_element, and then looks at the other elements of the array to see if a smaller value exists. The smallest value is then printed.
slide12
Find_smallest_element

Set smallest_element to array (1)

DO index = 2 to number_of_elements

IF array(index) < smallest_element THEN

smallest_element = array(index)

ENDIF

ENDO

Print smallest_element

END

slide13
Find_range_of_element

Set smallest_element to array(1)

Set largest_element to array(1)

DO index = 2 to number_of_elements

IF array(index) < smallest_element THEN

smallest_element = array(index)

ELSE

IF array(index) > largest_element THEN

largest_element = array(index)

ENDIF

ENDIF

ENDO

Print the range as smallest_element followed by largest_element

END

initialising the elements of an array
Initialising the elements of an array
  • Because an array is an iternal data structure, initial values must be placed into the array before any information can be retrieved from it.
  • The initial values can be assigned to the element as constant or be read from file.
loading constant values into array only be used for data which is unlikely to be changed
Loading constant values into array (only be used for data which is unlikely to be changed)

Initialise_month_table

month_table(1) = `Januari`

month_table(2) = `February`

.

.

.

month_table(12) = `December`

END

2 loading initial values into an array from an input file
2. Loading initial values into an array from an input file

Read_values_into_array

Set max_num_elements to required value

Set index to zero

Read first input value

DOWHILE (input value exist) AND (index<max_num_elements)

index = index + 1

array(index) = input value

Read next input value

ENDDO

IF (input value exist) AND index = max_num_elements THEN

Print `Array size is too small`

ENDIF

END

array of variable size
Array of variable size

Read_values_into_variable_array

Set max_num_elements to required value

Set index to zero

Read first input value

DOWHILE (input value NOT = 9999) AND (index<max_num_elements)

index = index + 1

array(index) = input value

Read next input value

ENDDO

IF index < max_num_elements THEN

index = index + 1

array(index) = 9999

ELSE

Print `Array size is too small`

ENDIF

END

Sentinel value  indicate the end of input records during initial processing and the last element of the array during further processing

paired arrays
Paired Arrays
  • Two array with the same number of elements are paired because they correspond each other.
  • Example:
    • A student number ID array and student name array
slide19

Paired Arrays Example(Algorithm to read a file of product codes and corresponding selling price and load them into corresponding arrays)

Read_values_into_paired_array

Set max_num_elements to required value

Set index to zero

Read first input value

DOWHILE (NOT EOF input record) AND (index<max_num_elements)

index = index + 1

product_codes(index) = input_product_code

selling_prices (index) = input_selling_price

Read next record

ENDDO

IF (NOT EOF input record) AND index = max_num_elements THEN

Print `Array size is too small`

ENDIF

END

searching an array
Searching an Array
  • The reason:
    • To edit an input value (ie. Valid element or not)
    • To retrieve information from array
    • To retrieve information from corresponding element in a paired array.
linear search array
Linear search array

Linear_search_of_an_array

Set max_num_elements to required value

Set element_found to false

Set index to 1

DOWHILE (NOT element_found) AND (index <= max_num_elements)

IF array(index) = input_value THEN

Set element_found to true

ELSE

index = index + 1

ENDIF

ENDDO

IF element_found THEN

Print array (index)

ELSE

Print ´value not found´, input_value

ENDIF

END

binary search array effective method for elements more than 25 and sorted into ascending sequence
Binary Search Array(effective method for elements more than 25 and sorted into ascending sequence)

Binary_search_of_an_array

Set element_found to false

Set low_element to 1

Set high_element to max_num_elements

DOWHILE (NOT element_found) AND (low_element <= high_elements)

index = (low_element + high_element)/2

IF input_value = array(index) THEN

Set element_found to true

ELSE

IF input_value < array (index) THEN

high_element = index – 1

ELSE

low_element = index + 1

ENDIF

ENDIF

ENDDO

IF element_found THEN

Print array (index)

ELSE

Print ´value not found´, input_value

ENDIF

END

writing out the contents of an array
Writing out the contents of an Array

Write_values_of_array

DO index = 1 to number_of_elements

Print array (index)

ENDDO

END

example 7 6 process exam scores
Example 7.6 Process exam scores
  • Design a program that will prompt for and receive 18 examination scores from a mathematics test, compute the class average, and display all the scores and the class average to the screen.
control structures required
Control Structures required
  • An array to store the exam scores – called ´scores´
  • An index to identify each element in the array
  • A DO loop to accept the scores
  • Another DO loop to display the scores to the screen.
solution algorithm
Solution Algorithm

Process_exam_scores

Set total_score to zero

DO index = 1 to 18

Prompt operator for score

Get scores(index)

total_score = total_score + scores(index)

ENDDO

Compute average_score = total_score / 18

DO index = 1 to 18

Display scores(index)

ENDDO

Display average_score

END

example 7 7 process integer array
Example 7.7 Process integer array
  • Design an algorithm that will read an array of 100 integer values, calculate the average integer value, and count the number of integers in the array that are greater than the average integer value. The algorithm is to display the average integer value and the count of integers greater than average.
control structures required1
Control Structures required
  • An array of integer values – called ´numbers´
  • A DO loop to calculate the average of the integers
  • Another DO loop to count the number of integers greater than the average.
solution algorithm1
Solution Algorithm

Process_integer_array

Set integer_total to zero

Set integer_count to zero

DO index = 1 to 100

integer_total = integer_total + numbers(index)

ENDDO

integer_average = integer_total / 100

DO index = 1 to 100

IF numbers(index) > integer_average THEN

add 1 to integer_count

ENDIF

ENDDO

Display integer_average, integer_count

END

example 7 8 validate sales number
Example 7.8 Validate sales number
  • Design an algorithm that will read a file of sales transactions and validate the sales numbers on each record. As each sales record is read, the sales number on the record is to be verifief against an array of 35 sales numbers. Any sales number not found in the array is to be flagged as an error.
control structures required2
Control Structures required
  • A previously initialised array of sales numbers, called ´sales_numbers´
  • A DOWHILE loop to read the sales file
  • A DOWHILE loop to perform linear search
  • A variable element_found to stop the search
solution algorithm2
Solution Algorithm

Validate_sales_numbers

Set max_num_elements to 35

Read sales record

DOWHILE sales_records exist

Set element_found to false

Set index to 1

DOWHILE (NOT element_found) AND (index <= max_num_elements)

IF sales_numbers(index) = input sales number THEN

Set element_found to true

ELSE

index = index + 1

ENDIF

ENDDO

IF NOT element_found THEN

Print `invalid sales numer`, input sales number

ENDIF

Read sales record

ENDDO

END

example 7 9 calculate shipping charge
Example 7.9 Calculate shipping Charge
  • Design an algorithm that will read an input weight for an item to be shipped, search an array of shipping weigths and retrieve a corresponding shipping charge. In this algorithm, two paired arrays, each containing six elements, have been established and initialised. The array, shipping_weights, contains a range of shipping weights in grams, and the array, shipping_charges, contains a corresponding array of shipping charges in dollars, as follows:
control structures required3
Control Structures required
  • Two arrays, called ´shipping_weigths´ and ´shipping_charges`
  • A DOWHILE loop to search the shipping_weigths array and then retrieve the shipping_charges
  • A variable element_found to stop the search when entry weight is found
solution algorithm3
Solution Algorithm

Calculate_shipping_charge

Set max_num_elements to 6

Read index to 1

Set element found to false

Prompt for entry weigth

Get entry weight

DOWHILE (NOT element_found) AND (index <= max_num_elements)

IF shipping_weights(index) < entry weight THEN

add 1 to index

ELSE

set element_found to true

ENDIF

ENDDO

IF element_found THEN

shipping_charge = shipping charges(index)

Display `shipping charge is`, shipping_charge

ELSE

Display `invalid shipping weight`, entry weight

ENDIF

END

two dimensional arrays
Two-dimensional Arrays
  • Where two subscripts are required to locate an element in an array.
  • The number of elements is calculated as the product of the number of rows and the number of columns
  • Specified by: array(row_index,column_index)
loading a two dimensional array from previous table
Loading a two-dimensional array(from previous table)

Read_values_into_array

Set max_num_elements to 24

Set row_index to zero

Read input file

DOWHILE (input values exist) AND (row_index < 6)

row_index = row_index + 1

DO column_index = 1 to 4

shipping_charges(row_index,column_index) = input value

read input file

ENDDO

ENDDO

IF (input values exist) AND row_index = 6 THEN

Print ´Array size to small`

ENDIF

END

searching two dimensional array
Searching Two dimensional Array

Calculate_shipping_Charges

Set row_index to 1

Set element_found to false

Prompt for shipping_weight, zone

Get shipping_weight, zone

DOWHILE (NOT element_found) AND (row_index <= 6)

IF shipping_weights(row_index) < input shipping_weight THEN

add 1 to row_index

ELSE

set element_found to true

ENDIF

ENDDO

IF element_found THEN

IF zone = (1 or 2 or 3 or 4) THEN

shipping_charge = shipping_charges(row_index, zone)

display ´shipping charge is`, shipping_charge

ELSE

display `invalid zone`, zone

ENDIF

ELSE

Display `invalid shipping weight`, input shipping_weight

ENDIF

END

writing out the contents of 2 d array
Writing out the contents of 2-d array

Write_values_of_array

Set number_of_rows to required value

Set number_of_columns to required value

DO row_index = 1 to number_of_rows

DO column_index = 1 to number_of_columns

Print array (row_index, column_index)

ENDDO

ENDDO

END