+- Rechnen !

BigBruder

Mitglied
Also, ich habe als Ha auf, ein Programm zum berechnen des Idealgewichtes nach Eingabe des Gewichts, der Körpergröße und des Geschlechts. Für Männer ist die Formel "95% von (Körpergröße -100). Für Frauen 90%. Nun soll man ausrechnen, ob man unter-, ideal- oder Übergewicht hat, mit +- 2% Fehler berücksichtigen. Wie kann ich das mit den +-2% machen? Bis jetzt sieht mein Programm so aus:

Code:
/* 
 /
 /Idealgewicht berechnen
 /Autor: ***
 /Datum: 10.10.2003
 /
*/

import java.io.*;

public class Idealgewicht
{
	public static  void main (String[] args) throws IOException
	{
		BufferedReader in = Text.open(System.in);
		
		Text.prompt("Berechnung ihres Idealgewichts");
		System.out.println();
		
		double Gewicht, Idealgewicht;
    	System.out.println();
    	Text.prompt("Bitte geben Sie Ihr Gewicht ein: ");
    	Gewicht = Text.readDouble(in);
    	
    	double Koerpergroesse;
    	Text.prompt("Bitte geben Sie Ihre Koerpergroesse ein (in cm): ");
    	Koerpergroesse = Text.readDouble(in);
    	
    	char Geschlecht;
    	Text.prompt("Nun müssen sie noch ihr Geschlecht angeben (m oder f): ");
    	Geschlecht = Text.readChar(in);
    	
    	if (Geschlecht == 'm')
    		{
    			Idealgewicht = 0.95 * (Koerpergroesse - 100);
    			    			
    			if (Idealgewicht > Gewicht)
    				{
    					System.out.println();
    					Text.prompt("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
    					Text.prompt("Damit haben sie Untergewicht!");
    					System.out.println();
    					System.out.println();	
    				}
    			else
    				
    					if (Idealgewicht == Gewicht)
    						{
    							System.out.println();
    							Text.prompt("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
    							Text.prompt("Damit haben sie Idealgewicht!");
    							System.out.println();
    							System.out.println();
    						}
    					else
    						{
    							System.out.println();
    							Text.prompt("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
    							Text.prompt("Damit haben sie Uebergewicht!");
    							System.out.println();
    							System.out.println();
    						}
    						
    					
    				
    		}
    	else	
    		{
    			Idealgewicht = 0.90 * (Koerpergroesse - 100);
    			    			
    			if (Idealgewicht > Gewicht)
    				{
    					System.out.println();
    					Text.prompt("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
    					Text.prompt("Damit haben sie Untergewicht!");
    					System.out.println();
    					System.out.println();	
    				}
    			else
    				
    					if (Idealgewicht == Gewicht)
    						{
    							System.out.println();
    							Text.prompt("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
    							Text.prompt("Damit haben sie Idealgewicht!");
    							System.out.println();
    							System.out.println();
    						}
    					else
    						{
    							System.out.println();
    							Text.prompt("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
    							Text.prompt("Damit haben sie Uebergewicht!");
    							System.out.println();
    							System.out.println();
    						}
    		}
	}

}
Wenn ihr irgendwo fehler findet oder "schöhnheitsfehler", teilt sie mir bitte mit. Habe Java erst seit 3 Monaten...:(


Schönen abend noch
 
Zuletzt bearbeitet:
Servus!

vielleicht löst das hier dein Problem ..
Code:
import java.io.*;

public class Idealgewicht {
    public static  void main(String[] args) throws IOException {
        //Als ersatz für den Text.readLine ...
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        
        System.out.println("Berechnung ihres Idealgewichts");
        System.out.println();
        
        double Gewicht = 0.0d;
        double Idealgewicht = 0.0d;
        System.out.println();
        System.out.println("Bitte geben Sie Ihr Gewicht ein: ");
        try{
            Gewicht = Double.parseDouble(in.readLine());
        }catch(NumberFormatException nfe){ nfe.printStackTrace(); }
        
        double Koerpergroesse = 0.0d;
        System.out.println("Bitte geben Sie Ihre Koerpergroesse ein (in cm): ");
        try{
            //Wandelt einen String in einen double um ...
            //Double nennt man auch Wrapperklasse
            Koerpergroesse = Double.parseDouble(in.readLine());
        }catch(NumberFormatException nfe){ nfe.printStackTrace(); }
        char Geschlecht = '?';
        System.out.println("Nun müssen sie noch ihr Geschlecht angeben (m oder f): ");
        //Zeile einlesen, davon erstes Zeichen
        Geschlecht = in.readLine().charAt(0);
        double abweichung = 0.0d;
        double vorz = 0.0d;
        
        
        if (Geschlecht == 'm') {
            Idealgewicht = 0.95 * (Koerpergroesse - 100);
            //Absolut Betrag der Abweichung
            abweichung = Math.abs(Idealgewicht - Gewicht);
            //wenn Ideal < Gewicht dann 1 sonst -1
            vorz = Idealgewicht - Gewicht < 0 ? 1.0d : -1.0d;
            if (abweichung > 0.02 * Idealgewicht && vorz < 0.0d) {
                System.out.println();
                System.out.println("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
                System.out.println("Damit haben sie Untergewicht!");
                System.out.println();
                System.out.println();
            }
            else
                if (abweichung >= 0.0d && abweichung < 0.02 * Idealgewicht) {
                    System.out.println();
                    System.out.println("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
                    System.out.println("Damit haben sie Idealgewicht!");
                    System.out.println();
                    System.out.println();
                }
                else {
                    System.out.println();
                    System.out.println("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
                    System.out.println("Damit haben sie Uebergewicht!");
                    System.out.println();
                    System.out.println();
                }
        }
        else {
            Idealgewicht = 0.90 * (Koerpergroesse - 100);
            abweichung = Math.abs(Idealgewicht - Gewicht);
            vorz = Idealgewicht - Gewicht < 0 ? 1.0d : -1.0d;
            if (abweichung > 0.02 * Idealgewicht && vorz < 0.0d) {
                System.out.println();
                System.out.println("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
                System.out.println("Damit haben sie Untergewicht!");
                System.out.println();
                System.out.println();
            }
            else
                
                if (abweichung >= 0.0d && abweichung < 0.02 * Idealgewicht) {
                    System.out.println();
                    System.out.println("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
                    System.out.println("Damit haben sie Idealgewicht!");
                    System.out.println();
                    System.out.println();
                }
                else {
                    System.out.println();
                    System.out.println("Ihr Idealgewicht ist "+Idealgewicht+"kg!");
                    System.out.println("Damit haben sie Uebergewicht!");
                    System.out.println();
                    System.out.println();
                }
        }
    }
    
}

so sollte jetzt funktionieren ...

Gruß Tom
 
Zuletzt bearbeitet:
Danke erstmal für deine Antwort,
aber irgendwie hat man jetzt immer Übergewicht, egal ob mal über- oder unter dem idealgewicht liegt. Könntest du vielleicht nochmal gucken, woran das liegen könnte?

Danke,
schönen abend noch,
BigBruder

ps: und könntest du vielleicht noch kommentare einfügen, da ich diese ganzen funktionen noch nicht hatte. Würde das nämlich auch gerne verstehen...
 
kann mir vielleicht nochmal wer helfen? bin immer noch nicht weiter....
muss das diese woche abgeben...

schönen abend noch,
BigBruder
 
oh, danke, habe ich nicht gesehen...
mal gucken, was mein lehrer dazu sagt, da wir ja diese ganzen befehle noch gar nicht hatten...

,
schönen abend noch,
BigBruder
 
Zurück