login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gemiddelde BMI berekenen, en herhalende uitvoer(Console application) (Opgelost)

Offline Jimbo - 08/10/2011 22:19
Avatar van JimboLid Hallo,

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?

Hetgene ik momenteel heb is:
  1. Module Module1
  2.  
  3. Sub Main()
  4. Console.WriteLine("Weigth <in kg> :")
  5. Dim gewicht As Integer = Console.ReadLine
  6.  
  7. Console.WriteLine("Height <in cm> : ")
  8. Dim lengte As Integer = Console.ReadLine
  9.  
  10. Dim bmiresult As Double
  11. bmiresult = gewicht / (lengte * lengte)
  12.  
  13. Console.WriteLine("BMI : " & bmiresult)
  14.  
  15. End Sub
  16.  
  17. End Module


Hier loopt mijn komma verkeerd en ik zie niet direct in hoe dat komt...

3 antwoorden

Gesponsorde links
Offline Abbas - 08/10/2011 22:53 (laatste wijziging 08/10/2011 22:55)
Avatar van Abbas Gouden medaille

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... 

  1. Imports System
  2. Imports System.Linq
  3. Imports System.Collections.Generic
  4.  
  5. Module Module1
  6.  
  7. Sub Main()
  8.  
  9. Dim bmiList As New List(Of Double)
  10. Dim input As String = "y"
  11. Dim kg As String = String.Empty
  12. Dim cm As String = String.Empty
  13.  
  14. Do Until (Not input.ToLower().Equals("y"))
  15.  
  16. Console.Write("Weight (kg): ")
  17. kg = Console.ReadLine()
  18. Console.Write("Height (cm): ")
  19. cm = Console.ReadLine()
  20.  
  21. While (Not IsNumeric(kg) Or Not IsNumeric(cm))
  22. Console.WriteLine("GEEN GELDIGE INVOER!" + Environment.NewLine)
  23. Console.Write("Weight (kg): ")
  24. kg = Console.ReadLine()
  25. Console.Write("Height (cm): ")
  26. cm = Console.ReadLine()
  27. End While
  28.  
  29. bmiList.Add(GetBmi(Convert.ToInt32(cm), Convert.ToInt32(kg)))
  30.  
  31. Console.WriteLine("Average BMI so far: " & (bmiList.Sum() / bmiList.Count))
  32. Console.WriteLine("Highest BMI so far: " & bmiList.Max())
  33. Console.WriteLine("Lowest BMI so far: " & bmiList.Min())
  34. Console.WriteLine()
  35. Console.Write("Enter <Y> to enter more data: ")
  36. input = Console.ReadLine()
  37.  
  38. Loop
  39.  
  40. Console.WriteLine(Environment.NewLine & "Program terminated!")
  41. Console.ReadLine()
  42.  
  43. End Sub
  44.  
  45. Public Function GetBmi(ByVal length As Integer, ByVal weight As Integer) As Double
  46.  
  47. Return weight / Math.Pow(length / 100, 2)
  48.  
  49. End Function
  50.  
  51. 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! 
Offline Jimbo - 09/10/2011 11:34
Avatar van Jimbo Lid 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
Offline Abbas - 09/10/2011 12:37
Avatar van Abbas Gouden medaille

Crew .NET
Herschreven code: http://www.plaatscode.be/141320/  
Bedankt door: Jimbo
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.174s