BMI-Rechner

Worum geht es?

Was ist ein BMI? Das können Sie hier nachlesen:

Den abgebildeten BMI-Rechner finden Sie bei Runners World:
bmi-runnersworld.PNG

Den abgebildeten Rechner können wir am Ende des Schuljahres selbstständig programmieren. Um solch eine schöne Lösung präsentieren zu können, müssen wir uns die in der folgenden Auflistung genannten Voraussetzungen in der gegebenen Reihenfolge erarbeiten (soweit dieses nicht bereits erledigt ist).
  • Ein Computer mit Editor (Eingabeprogramm) und Browser (Firefox. Internet Explorer, ...)
  • Kenntnis von ...
    1. HTML-Grundstruktur (Wo steht der Javascript-Quelltext?)
    2. Einbindung/Verknüpfung von Javascript-Quelltext und HTML (script tags, button im body)
    3. EVA-Prinzip
    4. einfache Eingabemöglichkeiten (prompt)
    5. einfache Ausgabemöglichkeiten (alert)
    6. Variablen (Definition, Typen, Zuweisung von Werten)
    7. Verwendung einfacher Formeln in Javascript-Programmen
    8. Verzweigungen (if/else)
    9. Bedingungen
    10. Struktogramme
    11. Wiederholungsanweisungen (Schleifen)
    12. Formulare

Schrittweises Vorgehen

Zur Lösung der gestellten Aufgabe müssen wir schrittweise vorgehen, denn hier wird viel verlangt. Wir programmieren daher jeweils entsprechend unserer neu erarbeiteten Kenntisse eine "Teilaufgabe". Wir fangen mit der "Berechnung des Normalgewichts" an, welche mit den Voraussetzungen 1-7 auskommt.
Die Folgeaufgaben setzen hierauf auf und haben einen höheren Schwierigkeitsgrad.
  • Zeichnen Sie vor der Programmierung jeweils ein Struktogramm und notieren Sie ggf. Pseudocode.
  • Halten Sie gängige Programmier-Richtlinien ein und programmieren Sie anwenderfreundlich!
  • Testen Sie Ihren Quelltext häufig!
Wenn Sie mit der Bearbeitung der Gesamtaufgabe fertig sind, sollten die Lösungen zu den gestellten Teilaufgaben in der folgenden Ordnerstruktur in Ihrem Homeverzeichnis zu finden sein:
BMI-Teilloesungen.PNG

1) Berechnung des Normalgewichts

Schreiben Sie ein Programm, welches nach der Abfrage der Körpergröße in cm das Normalgewicht berechnet und ausgibt!
Es soll anschließend folgende Ausgabe erscheinen: "Möchten Sie noch eine Berechnung durchführen j/n? ".

Normalgewicht = Körpergröße -100 cm

Hilfe: Wie geht es los? Was muß ich tun?
  • Wir benötigen (für diese einfache Einstiegslösung nur) eine Eingabe (Körpergröße mittels prompt()), eine Verarbeitung (Berechnung des Normalgewichts mit der genannten Formel) sowie eine Ausgabe (z.B. alert) für das Ergebnis!
  • Alle drei Schritte kann man in einer Funktion (z.B. function normal() ) zusammenfassen, welche Sie zwischen den Tags <script ...> und </script> plazieren.
  • Die Funktion kann man aufrufen über einen Button. Man kann auch im <body>-Tag einen Eventhandler ergänzen, welcher die Funktion aufruft (z.B. onload="normal()").
  • Den Ausgabetext können Sie in einer Variable ausgabe erst einmal zusammensetzen, bevor sie ihn ausgeben, z. B. ausgabe = "Körpergröße: " + groesse (falls "groesse" Ihre Variable zur Speicherung der eingegebenen Körpergröße ist).
  • "Möchten Sie noch eine Berechnung durchführen?" deutet an, dass der gesamte Vorgang solange wiederholt werden muss, bis der Nutzer an dieser Stelle mit nein antwortet. Das bedeutet also, dass Sie für diese einfache Lösung auch eine Wiederholungsanweisung (Schleife) programmieren müssen.
Wichtiger Hinweis: Wenn Sie bereits in der Lage sind, Formulare mit Eingabefeldern und Buttons zu erstellen, so sollten Sie auf die Verwendung der Wiederholungsschleife und der Funktionen prompt, confirm, alert verzichten und statt dessen ein schönes Formular verwenden!

2) Berechnung des Idealgewichts

Erweitern Sie das Programm um die Berechnung des Idealgewichts! Das Idealgewicht ist abhängig vom Geschlecht.
Sie müssen zusätzlich zur Körpergröße jetzt also auch noch das Geschlecht abfragen!

Idealgewicht bei Männern = Normalgewicht * 0,9.
Bei Frauen beträgt der Faktor 0,85.

Hilfe:
  • Vielleicht bauen Sie einen zweiten Button in die HTML-Seite ein für den Aufruf einer weiteren Funktion ideal()?
  • Die Eingabe des Geschlechts erfordert einen weitere Eingabe. Sie kennen bisher nur prompt(). Also müssen Sie sich jetzt überlegen, welche Eingabe der Nutzer machen soll, um anzugeben, ob die Berechnung für einen Mann oder eine Frau durchgeführt werden soll. Es könnten z.B. die beiden Buchstaben "w" und "m" sein, die man hierfür benutzt. Das muss der Benutzer aber vorher gesagt bekommen!
  • Wenn Sie eine Eingabe-Variable, z.B. "var eingabe" benutzen für alle Tastatureingaben, dann ist es wichtig, dass die Umwandlung in eine Zahl (parseInt) statt findet, bevor die Variable eingabe wieder enu beschrieben wird!

3) Body Mass Index

Erweitern Sie das Programm um die Berechnung des Body Mass Index!

Für die Berechnung ist zusätzlich die Eingabe des Gewichts (Masse in kg) notwendig.
Die Berechnung wird durchgeführt mit folgender Formel, d. h. bmi = Masse / (Länge * Länge)

external image 8907d3e46f5bb5ff4f73aefbf0d4e7f6.png


Kategorie
BMI (kg/m²)
Starkes Untergewicht
< 16
Untergewicht
Mäßiges Untergewicht
16 – 17
Leichtes Untergewicht
17 – 18,5
Normalgewicht
18,5 – 25
Normalgewicht
Präadipositas
25 – 30
Übergewicht
Adipositas Grad I
30 – 35
Adipositas
Adipositas Grad II
35 – 40
Adipositas Grad III
≥ 40

Hilfe:
  • Vielleicht bauen Sie einen weiteren Button in die HTML-Seite ein für den Aufruf einer weiteren Funktion bmi()?
  • Passen Sie auf mit der Körpergröße in der Formel! Hier ist die Eingabe in Metern erforderlich. Sie können natürlich auch eine Eingabe in cm verlangen (Nutzerfreundlichkeit) und dann im Programm die eingegebenen Zentimeter in Meter umrechnen!
  • Die Ausgabe der Kategorien erfordert die saubere Programmierung von Verzweigungen.

4) GUI (Graphical User Interface), Eingabemaske, Formular, ...

...

Test

Wenn die Lösungen zu den obigen Aufgaben vorliegen, dann haben Sie viel geschafft! Den Nutzern fällt aber ganz sicher noch eine ganze Menge mehr ein, was sie gerne hätten. D. h. es stellt sich hiermit die Frage: "Erfüllt Ihr Programm auch folgende professionelle Anforderungen"? Hierzu gehören die folgenden Forderungen. Verzweifeln Sie nicht, sondern nehmen Sie sich einen Punkt nach dem nächsten vor. Alles gleichzeitig zu erledigen ist UNMÖGLICH!
  • Werden Links zu erläuternden Seiten im Internet auf der Seite genannt, z. B. http://de.wikipedia.org/wiki/K%C3%B6rpergewicht?
  • Werden alle Fehleingaben durch Abprüfen erkannt und der Nutzer zu einer neuen Eingabe aufgefordert (eine solche Prüfung finden Sie in der Musterlösung im nächsten Kapitel).
  • Bekommt der Nutzer geeignete Hilfestellungen bei Fehlbedienung?
  • Werden die Texte in einem div-Tag direkt auf der Seite ausgegeben und nicht einfach nur als alert
    (document.getElementById("ausgabefeld").innerHTML = "Ihr Normalgewicht ist: " + normalgewicht;)
  • Werden bei der Auswertung des BMI dem Nutzer die Kategorien (Untergewicht, Normalgewicht, Übergewicht, Adipositas) ebenfalls zeitgleich mit dem BMI genannt?
  • Werden die Eingaben mit einem HTML-Formular realisiert, siehe z.B.
    http://de.selfhtml.org/html/formulare/auswahl.htm?

Hilfe!

Wenn Sie gar keine Idee haben, wie Sie anfangen sollen, dann hilft Ihnen vielleicht der folgende Quelltext weiter, welcher wenigstens schon mal das Normalgewicht berechnet: Normalgewicht.html

Anmerkung

Die gängigen Formeln zur Ermittlung von Fettleibigkeit haben so ihre Tücken, siehe ...