standard algorithms. many algorithms appear over and over again, in program after program. these are...

21
Standard Algorithms

Upload: lynne-jones

Post on 18-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Standard Algorithms

Standard Algorithms

Standard Algorithms

Many algorithms appear over and over again, in program after program. These are called standard algorithms

You are required to know about 5 of these algorithms:

Input Validation (Int 2)

Linear search

Counting occurences

Finding the maximum value

Finding the minimum value

Standard Algorithms

Input validation checks user input to see if it’s within a valid number range. If it’s outside the valid range the algorithm asks for the number again until it falls within the acceptable range.

What is Input Validation

Standard Algorithms

Input Validation Pseudocode

1 Get and store value

2 Loop WHILE data is out with range

3 Display error message

4 Prompt user to re-enter value

5 End loop

Standard Algorithms

Input Validation VB6.0 code

Number = InputBox (“Enter number between 1 and 10”)

Do While number < min Or number > max

MsgBox (“Must be num between “ & min & ” and “ & max)

Number = InputBox (“Enter number between “ & min & ” and “ & max)

Loop

Standard Algorithms

What is Linear Search?

Linear search is the simplest search method to implement and understand.

Starting with an array holding 8 numbers with a pointer indicating the first item, the user inputs a search key.

Scanning then takes place from left to right until the search key is found, if it exists in the list.

Standard Algorithms

Linear Search

(The search item is 76)

Each item is checked to see if it 76, until 76 is found or the last item is checked.

1. Set found to false2. Get search value3. Start at first element on the list4. Do while (not end of list) AND (found is false)5. If current element = search value Then6. Set found = true7. Display found message8. Else9. Move to next element in the list10. End If11. Loop12. If found = false Then13. Display not found message14. End If

Standard AlgorithmsLinear Search Pseudocode

IsFound = false

SearchValue = InputBox(“Please enter the value your are looking for”)

Position = 0

Do While (Position <> UBound(List())) AND (found = false)

If List(Position) = SearchValue Then

IsFound = true

MsgBox(“The item is at position ” & Position & “in the list”)

Else

Position = Position + 1

End If

Loop

If found = false Then

MsgBox(“The item is not in the list”)

End If

Standard AlgorithmsLinear Search VB6.0 Code

Standard Algorithms

What is Counting OccurrencesPrograms often have to count occurrences.

Examples include counting the number of: students who achieved particular marks in an exam rainfall measurements greater than a particular level words equal to a given search value in a text file.

The basic mechanism is simple:1. a counter is set to 02. a list is searched for the occurrence of the search value3. every time the search value occurs, the counter is

incremented

Standard Algorithms

Counting Occurrences Algorithm

1. Set counter = 02. Get search value3. Set pointer to start of the list4. Do 5. If search item = list(position) Then6. Add 1 to counter7. End If8. Move to next position9. Until end of list10. Display number of occurrences

Standard Algorithms

Counting Occurrences VB6.0 Code

Count = 0

Occurrence = Inputbox(“Please enter value to count”)

Position = 0

Do

If List(Position) = Occurrence Then

Counter = Counter + 1

End If

Position = Position + 1

Loop Until Position = UBound(List())

Standard Algorithms

Maximum And Minimum Algorithms

Computers are often used to find maximum and minimum values in a list.

For example, a spreadsheet containing running times for videos might make use of a maximum algorithm to identify the video with the longest running time, or a minimum algorithm to identify the shortest running time.

To find a maximum, we set up a variable which will hold the value of the largest item that has been found so far, usually the first element. If an element in the array exceeds this working maximum, we give the working maximum that value.

Standard Algorithms

Maximum Pseudocode1. Set maximum value to first item in this list

2. Set current position to 1

3. Do

4. If list(position) > maximum Then

5. set maximum equal to list(position)

6. End If

7. Move to next position

8. Until end of list

9. Display maximum value

Standard Algorithms

Finding the Maximum VB6.0 Code

Maximum = List(0)

Position = 1

Do

If List(Position) > Maximum Then

Maximum = List(Position)

End If

Position = Position + 1

Loop Until Position = UBound(List())

Msgbox(“The maximum value is ” & Maximum)

Standard Algorithms

Minimum Pseudocode1. Set minimum value to first item in ths list

2. Set current position to 1

3. Do

4. If list(position) < minimum Then

5. set minimum equal to list(position)

6. End If

7. Move to next position

8. Until end of list

9. Display minimum value

Standard Algorithms

Finding the Minimum VB6.0 Code

Minimum = List(0)

Position = 1

Do

If List(Position) < Minimum Then

Minimum = List(Position)

End If

Position = Position + 1

Loop Until Position = UBound(List())

Msgbox(“The minimum value is ” & Minimum)

Standard Algorithm Exam Questions

An international athletics competition between eight countries has a number of events. The winning times are stored in a list in order of lane number like the one on the right. The stadium needs a program to help process the results.

Q1.The program must find the fastest time for a race. Use pseudocode to design an algorithm to find the fastest time (4 marks)

Q2. It is suggested that algorithm should find the lane number of the fastest time instead of the fastest time. Explain how this could be achieved. (1 mark)

Lane Time (secs)

1 40.232 41.053 42.884 39.895 40.556 40.017 39.87

Exam Marking Scheme

Set fastest to first time in list

For rest of array items

If array(current)<fastest then

Set fastest to array(current)

End if

End loop

In summary, 1 mark for each of the following:

• Setting initial value • Loop (with end) for

traversal of array • Comparison of

current element with maximum value (with end if)

• Assignment of new maximum value

Standard Algorithm Exam Questions

NoTow is a company that runs a city centre car park. The company requires a piece of software that will calculate the number of cars on a particular day that spent more than three hours in the car park. The number of whole minutes each car is parked is stored in a list as shown on the right.

Q3. Use pseudocode to design an algorithm to carry out this calculation (4 marks)

.

.

.124210105193157

Exam Marking Scheme

Set over3 = 0

For each car that day

If duration >180 then

Add one to over3

End if

End loop

• 1 mark for initialising• 1 mark loop with

termination• 1 mark for if..endif

with correct condition• 1 mark for keeping

running total

Note: End of if/loop may be implicit in clearly indented algorithmThe value is in minutes so the condition is > 180