Thanks, ahead of time, for any help you can offer.
The following is a simple programming assignment I'm trying to turn in for homework... I've written two functions into the program at lines 65 and 69 *MARKED with comment 1 line ahead, and the functions are defined in lines 93-101 and 103-111*ALSO MARKED with comment 1 line ahead. When the program runs, it returns a value of 0 for "largest rainfall" and "smallest rainfall" and does not offer any value for months(index). It is my goal to display the largest rainfall amount with the month that it fell in and the smallest rainfall amount in the month that it occurred in... Am I approaching this correctly?
Thanks for any time.
Module Module1
Sub Main()
'declare constant for array size- to be used in parrallel arrays
Const SIZE As Integer = 12
'declare parrallel arrays rainfall and month
Dim rainfall(SIZE) As Double
Dim month(SIZE) As String
month(0) = "January"
month(1) = "February"
month(2) = "March"
month(3) = "April"
month(4) = "May"
month(5) = "June"
month(6) = "July"
month(7) = "August"
month(8) = "September"
month(9) = "October"
month(10) = "November"
month(11) = "December"
'declare other variables
Dim total As Double
Dim average As Double
Dim index As Integer
Dim largest As Double = rainfall(0)
Dim smallest As Double = rainfall(0)
Dim keepGoing As String = "yes"
'main program is encapsulated in a while loop
'so that user can choose to use program again or exit
While keepGoing = "yes" Or keepGoing = "Yes"
'program intro text
Call programIntro()
'***********main program module********************************
Call rainfallProgram(index, SIZE, month, rainfall, total, average, largest, smallest)
Console.WriteLine(" ")
Console.WriteLine(" ")
Console.WriteLine("Would you like to use RainfallAverage again?")
Console.Write("Enter 'yes' to keep going or any other key to exit: ")
keepGoing = Console.ReadLine()
Console.WriteLine(" ")
Console.WriteLine(" ")
End While
End Sub
Sub rainfallProgram(ByRef index, ByVal SIZE, ByVal month, ByRef rainfall,
ByRef total, ByRef average, ByRef largest, ByRef smallest)
'input months and rainfall data in parallel arrays
For index = 0 To SIZE - 1
Console.Write("Enter rainfall for " & (month(index)) & ": ")
rainfall(index) = (Console.ReadLine())
Console.WriteLine(" ")
Next
Call getTotalRainfall(index, SIZE, rainfall, total)
Call getAverageRainfall(average, total)
Console.WriteLine(" ")
' ******First problem occurs here
Console.WriteLine("The largest amount of rainfall was " & (CDbl(getLargestRainfall(index, SIZE, rainfall, largest))) & " inches")
Console.WriteLine(" and occurred durring" & month(index))
Console.WriteLine(" ")
'**********Second Problem occurs here
Console.WriteLine("The smallest amount of rainfall was " & (CDbl(getSmallestRainfall(index, SIZE, rainfall, smallest))) & " inches")
Console.WriteLine(" and occurred durring" & month(index))
' Call functionSmallestRainfall()
End Sub
'module for total rainfall
Sub getTotalRainfall(ByVal index, ByVal SIZE, ByVal rainfall, ByRef total)
For index = 0 To SIZE - 1
total = total + rainfall(index)
Next
Console.WriteLine(" ")
Console.WriteLine("Total Rainfall: " & total & " inches")
index = index + 1
End Sub
'module for average rainfall
Sub getAverageRainfall(ByRef average, ByRef total)
average = (total / 12)
Console.WriteLine(" ")
Console.WriteLine("Average Rainfall: " & average & " inches")
End Sub
'function for largest rainfall
'********** Another Problem occurs here
Function getLargestRainfall(ByVal index As Integer, ByVal SIZE As Integer, ByVal rainfall() As Double, ByRef largest As Double) As Double
For index = 0 To rainfall.Length - 1
If rainfall(index) > largest Then
rainfall(index) = largest
End If
Next
Return largest
End Function
'function for smallest rainfall
'********** Another Problem occurs here
Function getSmallestRainfall(ByVal index As Integer, ByVal SIZE As Integer, ByVal rainfall() As Double, ByRef smallest As Double) As Double
For index = 0 To rainfall.Length - 1
If rainfall(index) > smallest Then
rainfall(index) = smallest
End If
Next
Return smallest
End Function
'program intro text display
Sub programIntro()
Console.WriteLine(" ")
Console.WriteLine("---------------------------------------------------------")
Console.WriteLine("************ Welcome to RainfallAverage ************")
Console.WriteLine("---------------------------------------------------------")
Console.WriteLine(" ")
Console.WriteLine(" This program will help to total, average, ")
Console.WriteLine(" and compare the rainfall of 12 months ")
Console.WriteLine(" ")
Console.WriteLine(" Unit is inches. Input numeric values only")
Console.WriteLine(" ")
Console.WriteLine(" ")
End Sub
End Module