Kann jemand bitte bei dieser Aufgabe helfen: Ich soll folgendes bis 24:00 Uhr programmiert haben. Die Aufgabe ist sehr umfangreich und ich wollte Stück Stück wissen wie man was richtig machen kann:
BMI() wird mit folgender Formel berechnet:
Körpergewicht(in kg) / (Körpergröße (in m))^2
Achten Sie bei der Rechnung auf die Einheiten! Verwenden sie Math.round um das
Ergebnis richtig zu runden. Zudem dürfen Sie hier auch Math.pow verwenden.
Mein Code:
Java:
importjava.util.Scanner;publicclass BMI{publicstaticvoidmain(String args[]){Scanner sc =newScanner(System.in);System.out.print("Input weight in kilogram: ");double weight = sc.nextDouble();System.out.print("\nInput height in meters: ");double height = sc.nextDouble();double BMI = weight /(height * height);System.out.print("\nThe Body Mass Index (BMI) is "+ BMI +" kg/m2");}}
Problem: Ich darf die Scanner Methode nicht verwenden.
Schonmal einen Blick in die Dokumentation geworfen: Math?
Schau dir da einfach mal die Methoden an.
Bei round übergibst du die zu rundende fließkommazahl und bekommst sie als Ganzzahl zurück
Bei pow übergibst du die Basis und den Exponenten und bekommst wieder das Ergebniss zurück.
Schonmal einen Blick in die Dokumentation geworfen: Math?
Schau dir da einfach mal die Methoden an.
Bei round übergibst du die zu rundende fließkommazahl und bekommst sie als Ganzzahl zurück
Bei pow übergibst du die Basis und den Exponenten und bekommst wieder das Ergebniss zurück.
Schonmal einen Blick in die Dokumentation geworfen: Math?
Schau dir da einfach mal die Methoden an.
Bei round übergibst du die zu rundende fließkommazahl und bekommst sie als Ganzzahl zurück
Bei pow übergibst du die Basis und den Exponenten und bekommst wieder das Ergebniss zurück.
Wenn Du das verwenden darfst, kannst Du natürlich auch Parameter der main-Methode parsen. In der Aufgabenbeschreibung oben steht aber nichts davon, dass ein ausführbares Programm gefordert ist. Außerdem wird explizit nur Math.round und Math.pow erwähnt. Daher habe ich einfach mal darauf geschlossen, dass ihr einfach eine Methode basteln sollt. Kann natürlich auch anders sein.
Wenn Du das verwenden darfst, kannst Du natürlich auch Parameter der main-Methode parsen. In der Aufgabenbeschreibung oben steht aber nichts davon, dass ein ausführbares Programm gefordert ist. Außerdem wird explizit nur Math.round und Math.pow erwähnt. Daher habe ich einfach mal darauf geschlossen, dass ihr einfach eine Methode basteln sollt. Kann natürlich auch anders sein.
Ah, ja... die Methode BMI() darf jetzt natürlich keine Parameter mehr haben und muss double zurückgeben. Außerdem musst Du jetzt auf die Einheit achten, denn mit einem int macht es keinen Sinn die Körpergröße in Meter darstellen zu wollen...
publicstaticint calorieDemand (){String str1, str2, str3;int kg, cm, alter, mann, frau;
kg =int.parseint(str1);
cm =int.parseint(str2);
alter =Double.parseint(str3);
frau =655.1+9.6*kg +1.8*cm -4.7*alter;
mann =66.47+13.7*kg +5.0*cm -6.8*alter;System.out.println("Grundumsatz für einen Mann: "+ mann +" kcal");System.out.println("Grundumsatz für eine Frau: "+ frau +" kcal");}// Ansatz war zu parsen was ziemlich in die Hose gegangen ist
Nö, die Antwort von @temi war schon ok. Es ist halt Rumgestochere, wenn man die Hälfte der Informationen nicht kennt. Und @DrPils hat vermutlich einfach das Problem überlesen, das passiert mir auch manchmal
Dann hast Du ja Zugriff auf die Daten aus Human, evtl. über Getter (getWeight() usw.), und musst halt die Methode calorieDemand() in Klasse Adult implementieren.
Wie kann ich diesen Code umwandeln ? Weil bei als Signatur steht BMI(): double
[CODE lang="java" title="Java"]public static long bmi(double weightInKg, double heightInMeters) {
return Math.round(weightInKg / Math.pow(heightInMeters, 2));
}[/CODE]
Ich bin nicht fit ... ich habe gesehen, dass der berechnete BMI als long zurück gegeben wird und überlege gerade krampfhaft, wie stark ich zunehmen müsste, um so einen BMI zu erreichen ....
Aber dann ist mir aufgefallen: Wenn ich versehentlich die ganze Erde verschlucken sollte und dann auf die Waage gehen sollte: dann würde es tatsächlich mit dem Datentyp long Probleme geben ... (Gewicht Erde ca. 5,9 * 10^24 kg)
Bei int als Rückgabe müsste man wirklich auf sein Gewicht aufpassen: bei 1m Größe würde man schon bei etwas über 2*10^9 kg seinen BMI nicht mehr berechnen können ... Aber zu so früher Zeit stellt sich mir die Frage: Ab welchem Gewicht wird es spürbar, dass andere sich zu mir hingezogen fühlen? Aber da die Masse nur linear einfließt, sind da meine Überlegungen, dass eine Person mit 10^9 kg spürbar anziehend wirken könnte, wohl eher nicht gegeben. da fehlt wohl noch ein Faktor von 10^10 oder so, damit das spürbar wird (und dann wäre es noch unter dem 10.000stel der Erdanziehung ...)