Small Steps III — Thinking with Programs
Remembering the largest value so far
Remember the largest value seen so far.
What you will learn
Finding a maximum means remembering the largest value seen so far and replacing it when a larger one appears.
Try it
Example · example1.cpp
void small_main()
{
Array<int> numbers = {7, 2, 9, 4, 5};
int largest = numbers[0];
for (int i = 1; i < numbers.length(); i = i + 1)
if (numbers[i] > largest)
largest = numbers[i];
print("Largest: ", largest);
}
Start with the first element, 7. 2 is smaller, so nothing changes; 9 is larger, so it replaces the remembered value. The result is Largest: 9.
Starting at 0 may be wrong when all values are negative. This example uses an array with at least one element.
Exercise
Find and print the smallest value in the Array.
Exercise starter · exercise1_starter.cpp
void small_main()
{
Array<int> numbers = {8, -3, 5, 2, -1};
// find and print the smallest value.
}
Hint
Use the first value as smallest and compare from index 1 onward.
show solution
void small_main()
{
Array<int> numbers = {8, -3, 5, 2, -1};
int smallest = numbers[0];
for (int i = 1; i < numbers.length(); i = i + 1)
if (numbers[i] < smallest)
smallest = numbers[i];
print(smallest);
}