Using Visual Basic, create an application that displays the largest and smallest values stored in a single dimensional array. The user will enter ten integer values which can be negative or positive numbers. When the user clicks on the “Input Values” button, an input box will appear prompting the user for a value. If that value is a valid integer it will be displayed in the list box and a new input box will prompt the user for another value until all ten values are entered. When the user clicks the “Display Min & Max” button, the values will be presented. See the figure below for an example of what the program will look like at run time.
When the program first runs, the label controls which display the largest and smallest values should initially be invisible. They should become visible only when the “Display Min & Max” button is clicked.
Suggested Control Names and Attributes:
| Name Property | Text Property | Control Type | Notes | |
| frmLargestSmallestArray | Largest / Smallest Array | Form | Holds Controls | |
| lstInputValues | ListBox | Displays values which have been input | ||
| lblLargest | Label | Display max value. Visible property set to false. | ||
| lblSmallest | Label | Display min value. Visible property set to false. | ||
| btnInputValues | &Input Values | Button | Trigger event to display min and max values | |
| btnClear | C&lear | Button | Triggers event to clear the list box and labels | |
| btnExit | E&xit | Button | Triggers event to end program |
Write the Code:
' Project: Largest and Smallest Array Values
' Description: Prompt the user to enter a list of ten integers.
' Display the largest and smallest values which have been entered.
Public Class frmLargestSmallestArray
' declare global variables
Const ARRAY_SIZE = 10
Dim numbers(ARRAY_SIZE - 1) As Integer
Dim numberString As String = ""
Dim valid As Boolean = True
Private Sub btnInputValues_Click(sender As Object, e As EventArgs) Handles btnInputValues.Click
' handles the event for when the user clicks on the "Input Values" button
' it calls input data sub routine to populate the list box
lstInputValues.Items.Add("Input Values")
InputData()
For x = 0 To (ARRAY_SIZE - 1)
lstInputValues.Items.Add(CStr(numbers(x)))
Next
End Sub
Private Sub btnDisplayMinAndMax_Click(sender As Object, e As EventArgs) Handles btnDisplayMinAndMax.Click
' sub routine handles the event for when the user clicks on the "Display Min and Max" button
lblSmallest.Text = ("The smallest number is " & CStr(smallestNumber()))
lblSmallest.Visible = True
lblLargest.Text = ("The largest number is " & CStr(largestNumber()))
lblLargest.Visible = True
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
' sub routine handles the event for when the user clicks on the "Clear" button.
lstInputValues.Items.Clear()
lblLargest.Text = ""
lblSmallest.Text = ""
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
' ends the program when the user clicks on the "Exit" button
End
End Sub
Sub InputData()
' Validates input from user and assigns values to array
For x = 0 To (ARRAY_SIZE - 1)
Do
valid = True ' Initialize to true to account for prior invalid input
numberString = InputBox("Enter an integer value")
If IsNumeric(numberString) Then
numbers(x) = CInt(numberString)
valid = True
Else
MessageBox.Show("You did not enter a numeric value. Please try again.")
valid = False
End If
Loop Until valid = True
Next
End Sub
Function largestNumber() As Integer
Dim largest As Integer = numbers(0)
For x = 1 To (ARRAY_SIZE - 1)
If (numbers(x) > largest) Then
largest = numbers(x)
End If
Next
Return largest
End Function
Function smallestNumber() As Integer
Dim smallest As Integer = numbers(0)
For x = 1 To (ARRAY_SIZE - 1)
If (numbers(x) < smallest) Then
smallest = numbers(x)
End If
Next
Return smallest
End Function
End Class
