Ik zou het BMI gemiddelde moeten berekenen. De formule ken ik, maar blijkbaar komt hij met mijn kommagetal niet uit.
adhv van onderstaand vb zou ik de output exact hetzelfde moeten hebben als:
Weight <in kg> : 75
Height <in cm> : 165
Average BMI so far : 27,5482093663912
Highest BMI so far : 27,5482093663912
Lowest BMI so far : 27,5482093663912
Enter more data <type <Y> or <y> and enter to continue> ? : y
Weight <in kg> : 95
Height <in cm> : 168
Average BMI so far : 30,6037532092727
Highest BMI so far : 33,6592970521542
Lowest BMI so far : 27,5482093663912
Enter more data <type <Y> or <y> and enter to continue> ? : y
Weight <in kg> : 52
Height <in cm> : 164
Average BMI so far : 26,8470787804035
Highest BMI so far : 33,6592970521542
Lowest BMI so far : 19,3337299226651
Enter more data <type <Y> or <y> and enter to continue> ? : y
...etc. Dit tot je 'n' drukt, dan stopt dit programma.
Alsook zou dit programma elk gemiddelde van de voorgaande gegevens(adhv een Do loop??) moeten kunnen berekenen. Heeft iemand hier een idee?
Module Module1
Sub Main()
Console.WriteLine("Weigth <in kg> :")
Dim gewicht As Integer = Console.ReadLine
Console.WriteLine("Height <in cm> : ")
Dim lengte As Integer = Console.ReadLine
Dim bmiresult As Double
bmiresult = gewicht / (lengte * lengte)
Console.WriteLine("BMI : " & bmiresult)
End Sub
End Module
Module Module1
Sub Main()
Console.WriteLine("Weigth <in kg> :")
Dim gewicht AsInteger= Console.ReadLine
Console.WriteLine("Height <in cm> : ")
Dim lengte AsInteger= Console.ReadLine
Dim bmiresult AsDouble
bmiresult = gewicht /(lengte * lengte)
Console.WriteLine("BMI : "& bmiresult)
EndSub
End Module
Hier loopt mijn komma verkeerd en ik zie niet direct in hoe dat komt...
3 antwoorden
Gesponsorde links
Abbas - 08/10/2011 22:53 (laatste wijziging 08/10/2011 22:55)
Crew .NET
Hier is een werkende versie die ik ineengestoken heb op basis van je vorige vraag in verband met dat gemiddelde. Alleen snap ik niet waarom je niet de laatst ingevoerde BMI moet ingeven. Je ziet de hoogste, laagste en het gemiddelde maar niet het BMI van de laatst ingevoerde gegevens...
Imports System
Imports System.Linq
Imports System.Collections.Generic
Module Module1
Sub Main()
Dim bmiList As New List(Of Double)
Dim input As String = "y"
Dim kg As String = String.Empty
Dim cm As String = String.Empty
Do Until (Not input.ToLower().Equals("y"))
Console.Write("Weight (kg): ")
kg = Console.ReadLine()
Console.Write("Height (cm): ")
cm = Console.ReadLine()
While (Not IsNumeric(kg) Or Not IsNumeric(cm))
Console.WriteLine("GEEN GELDIGE INVOER!" + Environment.NewLine)
Console.Write("Weight (kg): ")
kg = Console.ReadLine()
Console.Write("Height (cm): ")
cm = Console.ReadLine()
End While
bmiList.Add(GetBmi(Convert.ToInt32(cm), Convert.ToInt32(kg)))
Console.WriteLine("Average BMI so far: " & (bmiList.Sum() / bmiList.Count))
Console.WriteLine("Highest BMI so far: " & bmiList.Max())
Console.WriteLine("Lowest BMI so far: " & bmiList.Min())
Console.WriteLine()
Console.Write("Enter <Y> to enter more data: ")
input = Console.ReadLine()
Loop
Console.WriteLine(Environment.NewLine & "Program terminated!")
Console.ReadLine()
End Sub
Public Function GetBmi(ByVal length As Integer, ByVal weight As Integer) As Double
Return weight / Math.Pow(length / 100, 2)
End Function
End Module
Edit:
Owjah, de reden dat je komma 4 tekens verkeerd staat is omdat je de lengte, die in centimeter staat, nog moet omzetten naar meter voor je de formule toepast!
lol, over die komma heb ik verschillende dingen gedaan om dat proberen te oplossen, maar vond dat dan maar niet...
De berekening lijkt me al te kloppen; alleen heb ik zelf iets fout gezet.
De regel BMI ontbrak, plus de bepalingen of dit het gemiddelde is en wat exact de BMI indiceert.
Dit aan de hand van(hier dacht ik aan een Select Case blok)(zie output onderaan regel BMI) :
Underweight : < 18.5
Normal weight : >=18.5 en <25
Overweight : >=25 en <30
Obesity : >=30
Op basis van deze BMI regel worden de gemiddeldes bepaalt.
De output zou exact dus moeten zijn...
Weight <in kg> : 75
Height <in cm> : 165
BMI : 27,5482093663912 <average> <overweight>
Average BMI so far : 27,5482093663912
Highest BMI so far : 27,5482093663912
Lowest BMI so far : 27,5482093663912
Enter more data <type <Y> or <y> and enter to continue> ? : y
Weight <in kg> : 95
Height <in cm> : 168
BMI : 33,6592970521542 <above average> <obesity>
Average BMI so far : 30,6037532092727
Highest BMI so far : 33,6592970521542
Lowest BMI so far : 27,5482093663912
Enter more data <type <Y> or <y> and enter to continue> ? : y