BMI ausrechnen

Status
Nicht offen für weitere Antworten.

kannkeinjava

Aktives Mitglied
Java:
class Bmi
{
	public static void main (String args[])
	{
		System.out.println("Wir berechnen den Bmi aus");
		double Gewicht;
		double Dgewicht;
		double Gr;
		double BMI;
		System.out.println("Bitte geben sie Gewicht ein");
		Gewicht=IO1.eindouble();/*Einlesne einer Zahl*/
		System.out.println("Bitte geben sie Größe ein");
		Gr=IO1.eindouble();
		System.out.println("Ihre ");
		Dgewicht=Gewicht*Gewicht;
			System.out.println("Ihr BMI Wert lautet:"+BMI);
			BMI=Gr/Dgewicht;
		
	}
}

Könntet ihr mir da helfen

Also mein Problem ist ich weiß nciht warum er für BMI eine Zahl nicht ausgibt???
 
Zuletzt bearbeitet von einem Moderator:

kaper28

Bekanntes Mitglied
Java:
// Body Mass-GUI-Programm 
import java.awt.*;
import java.awt.event.*;


public class BodyMassGUI extends Frame
{
  Label     l_groesse, l_gewicht;
  TextField t_groesse, t_gewicht;
  Button    b_abschicken;
  TextArea  t_ausgabe;
  
//um den fenster zu schließen
	class MeinWindowLauscher extends WindowAdapter
	  {
		// Schließen das F	enster mit  x button 
	    public void windowClosing(WindowEvent e)
	    {
	       System.exit(0);
	    }
	  }

  class Lauscher implements ActionListener
  {
    public void actionPerformed(ActionEvent e)
    {
      String titel;
      String tmp;
      double groesse, gewicht, index;

      titel = e.getActionCommand();

      if (titel.equals("Body-Mass-Index berechnen"))
      {
         tmp = t_groesse.getText();
         groesse = Double.parseDouble(tmp);
         tmp = t_gewicht.getText();
         gewicht = Double.parseDouble(tmp);
        
         index = gewicht/(groesse/100*groesse/100);

         t_ausgabe.setText(
          "Sie haben einen Body-Mass-Index von:\n\n");

         t_ausgabe.append(String.valueOf(index));

         if(index < 20)
           t_ausgabe.append(
                  "\n\n\nSie sind untergewichtig!");
           else if (index >= 25)
              t_ausgabe.append(
                   "\n\n\nSie sind übergewichtig!");
           else 
              t_ausgabe.append(
                    "\n\n\nSie haben Normalgewicht!");
         System.out.println(titel);
      
      }
    }
  }



  BodyMassGUI(String titel)
  {
    super(titel);

    l_groesse = new Label(
      "  Geben Sie Ihre Körpergrösse in cm an :");
    t_groesse = new TextField(5);

    l_gewicht = new Label(
      "  Geben Sie Ihr Gewicht in kg an           :");
    t_gewicht = new TextField(5);

    b_abschicken = 
      new Button("Body-Mass-Index berechnen");

    t_ausgabe = new TextArea(10, 40);

    setLayout(new FlowLayout(FlowLayout.LEFT));

    add(l_groesse);
    add(t_groesse);
    add(l_gewicht);
    add(t_gewicht);
    add(b_abschicken);
    add(t_ausgabe);

    b_abschicken.addActionListener(new Lauscher());
    addWindowListener(new MeinWindowLauscher());
  }

  public static void main(String[] args)
  {
    BodyMassGUI fenster = 
               new BodyMassGUI("Body-Mass-Index");

    fenster.pack();
    fenster.setSize(400, 320);
    fenster.setVisible(true);   
   
  }
}

Hier eine andere Version von BMI Rechner , prenzip ist aber gleich
 

Painii

Bekanntes Mitglied
Java:
switch(index){
 case 16:
 case 17:
  System.out.println("Wert 16 oder 17");
  break; 
 case 18:
 case 19:
  System.out.println("Wert 18 oder 19");
  break; 
}
das switch geht dann an die Stelle wo index==der Zahl ist, und läuft von da ab den code ab bis zum ersten break das es findet (wenn also index==16 ist fällt es einfach weiter bis zur 17 wo dann das break steht).

Die Zahlen in den code zu packen macht hier Sinn weil sich die BMI-werte ja normal nicht ändern, normalerweise halt variablen.
 

ARadauer

Top Contributor
Java:
switch(index){
 case 16:
 case 17:
  System.out.println("Wert 16 oder 17");
  break; 
 case 18:
 case 19:
  System.out.println("Wert 18 oder 19");
  break; 
}
das switch geht dann an die Stelle wo index==der Zahl ist, und läuft von da ab den code ab bis zum ersten break das es findet (wenn also index==16 ist fällt es einfach weiter bis zur 17 wo dann das break steht).

Die Zahlen in den code zu packen macht hier Sinn weil sich die BMI-werte ja normal nicht ändern, normalerweise halt variablen.


funktioniert das auch beim 18,5? index ist ein double wert...
 

ARadauer

Top Contributor
wenn kleiner 16
balbal
sonst wenn kleiner 17
balblab
sonst wenn kleiner 20
usw...

Java:
double index = 17.5;
	if(index < 16){
		System.out.println("mager");
	}else if(index < 18){
		System.out.println("bast scho");
	}else if(index <  22){
		System.out.println("fett");
	}else{
		System.out.println("gscheid fett");
	}
 
B

bygones

Gast
wer braucht schon nen double BMI...

wer glaubt ueberhaupt dem BMI ?
 

Wolfgang Lenhard

Bekanntes Mitglied
Java:
switch(index){
 case 16:
 case 17:
  System.out.println("Wert 16 oder 17");
  break; 
 case 18:
 case 19:
  System.out.println("Wert 18 oder 19");
  break; 
}
das switch geht dann an die Stelle wo index==der Zahl ist, und läuft von da ab den code ab bis zum ersten break das es findet (wenn also index==16 ist fällt es einfach weiter bis zur 17 wo dann das break steht).

Die Zahlen in den code zu packen macht hier Sinn weil sich die BMI-werte ja normal nicht ändern, normalerweise halt variablen.

Doch, tun sie. Die Bewertung, was unter und übergewichtig ist hängt vom Lebensalter ab. BMI 20 ist etwas völlig unterschiedliches, je nachdem ob man ein Kind oder einen 60jährigen vor sich hat, und ob das Geschlecht männlich oder weiblich ist. 16 bis 17 im jungen Erwachsenenalter ist beispielsweise bereits ein Kriterium zur Diagnose einer Annorexia Nervosa, unter 16 bedeutet "Ab in die Klinik". Weitere Infos gibts beispielsweise unter Body mass index - Wikipedia, the free encyclopedia und http://whqlibdoc.who.int/trs/WHO_TRS_854.pdf. Und ob der BMI so sinnvoll ist, oder eher andere Maße wie z. b. der Körperfettanteil sei ohnehin dahin gestellt.
 
Zuletzt bearbeitet:
B

bygones

Gast
Doch, tun sie. Die Bewertung, was unter und übergewichtig ist hängt vom Lebensalter ab. BMI 20 ist etwas völlig unterschiedliches, je nachdem ob man ein Kind oder einen 60jährigen vor sich hat. 16 bis 17 im jungen Erwachsenenalter ist beispielsweise bereits ein Kriterium zur Diagnose einer Annorexia Nervosa, unter 16 bedeutet "Ab in die Klinik". Weitere Infos gibts beispielsweise unter Body mass index - Wikipedia, the free encyclopedia und http://whqlibdoc.who.int/trs/WHO_TRS_854.pdf.
BMI ist im Grunde ein unsinniges und meist absolut nix aussagendes Mass was die Realitaet nicht unbedingt wiederspiegeln kann - mehr net

bygones
 

Landei

Top Contributor
Für dreidimensionale Wesen (und unter der Annahme, dass die mittlere Dichte verschiedener Menschen ungefähr gleich ist) muss man natürlich auch die dritte Dimension in die Berechnung mit einbeziehen:
Ponderal-Index ? Wikipedia
 

Shulyn

Bekanntes Mitglied
Für dreidimensionale Wesen (und unter der Annahme, dass die mittlere Dichte verschiedener Menschen ungefähr gleich ist) muss man natürlich auch die dritte Dimension in die Berechnung mit einbeziehen:
Ponderal-Index ? Wikipedia

Hmm
h = 1,7m
m = 55kg

BMI = 19,03 (Normal from 18.5 to 22.9)
PM = 11,19 (Werte zwischen 11 und 14 entsprechen dabei Normalgewichtigkeit.)

Hah doch noch Normalgewicht *puh*

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

Java:
package dein.packet;

import java.util.Scanner;

public class BMI {

        public static void main (String args[])
        {
            double kilogramm;
            double meter;
            double bodymassindex;
            String zuteilung = "";
            Scanner eingabe = new Scanner(System.in);
            System.out.println("-------B-M-I-------");
            System.out.println("-b-e-r-e-c-h-n-u-g-");
            System.out.println("/n");
            System.out.println("/n");
            System.out.println("/n");
            System.out.println("Bitte geben Sie ihr Gewicht in KG ein :");
            kilogramm = eingabe.nextDouble();
            
            System.out.println("/n");
            System.out.println("Bitte geben Sie ihre Größe in M ein :");
            
            meter = eingabe.nextDouble();
            
            System.out.println("/n");
            
            bodymassindex = meter/Math.pow(kilogramm, 2);
            
            System.out.println("Ihr Body Mass Index ist :" +bodymassindex +"/n");
            
            if (bodymassindex < 16) {
                zuteilung = "Starkes Untergewicht";
            }
            else if (bodymassindex < 17) {
                zuteilung = "Mäßiges Untergewicht";
            }
            else if (bodymassindex < 18.5) {
                zuteilung = "Leichtes Untergewicht";
            }
            else if (bodymassindex < 25) {
                zuteilung = "Normalgewicht";
            }
            else if (bodymassindex < 30) {
                zuteilung = "Präadipositas";
            }
            else if (bodymassindex < 35) {
                zuteilung = "Adipositas Grad I";
            }
            else if (bodymassindex < 40) {
                zuteilung = "Adipositas Grad II";
            }
            else if (bodymassindex > 40) {
                zuteilung = "Adipositas Grad III";
            }
            System.out.println("Dies entspricht '" + zuteilung + "'");
        }
    }

// Ich denke es ist eine Schulaufgabe oder ähnliches, darum nur "einfacher" code
 
Zuletzt bearbeitet:

Landei

Top Contributor
Deine Formel ist falsch herum, und Zeilenende ist "\n" und nicht "/n".

Aber weil Freitag ist...
Java:
import java.util.Scanner;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;

public class BMI {
  
  private static Map<Double, String> BMIs = new TreeMap<Double, String>();
  
  static {
    BMIs.put(16.0, "Starkes Untergewicht");
    BMIs.put(17.0, "Mäßiges Untergewicht");
    BMIs.put(18.5, "Leichtes Untergewicht");
    BMIs.put(25.0, "Normalgewicht");
    BMIs.put(30.0, "Präadipositas");
    BMIs.put(35.0, "Adipositas Grad I");
    BMIs.put(40.0, "Adipositas Grad II");
    BMIs.put(Double.MAX_VALUE, "Adipositas Grad III");
  }
  

  public static void main(String args[]) {
    Scanner eingabe = new Scanner(System.in);
    System.out.println("-------B-M-I-------");
    System.out.println("-b-e-r-e-c-h-n-u-g-");
    System.out.println("\n\n\n");
    System.out.println("Bitte geben Sie ihr Gewicht in KG ein :");
    double kilogramm = eingabe.nextDouble();

    System.out.println();
    System.out.println("Bitte geben Sie ihre Größe in M ein :");
    double meter = eingabe.nextDouble();

    System.out.println();
    double bodymassindex = kilogramm / (meter*meter);

    System.out.println("Ihr Body Mass Index ist :" + bodymassindex + "\n");

    String zuteilung = "";
    for(Entry<Double,String> entry : BMIs.entrySet()) {
      if (bodymassindex < entry.getKey()) {
        zuteilung = entry.getValue();
        break;
      }  
    }
    System.out.println("Dies entspricht '" + zuteilung + "'");
  }
}
 
H

Hari

Gast
Java:
public class BmiProjekt
{
 
    int gewicht;
    double groesse;
    double BMI;
    double Differenz;
  
 
    
    void Bmi(double neugroesse, int neugewicht)
{
    gewicht=neugewicht;
    groesse=neugroesse;
    
      BMI =(gewicht/(groesse*groesse))*10000;
      
     
    }
        
    
    public void ausgeben()
    {
   System.out.println("############################################################################################################");
    System.out.println( "Sie wiegen " +gewicht+ "kg");
     System.out.println( " Ihre Größe beträgt. " +groesse+ " cm");
      System.out.println( " ihr Bmi beträgt : " + BMI+ " punkte");
  
    
    if(BMI < 20)
    {   Differenz  = (25*groesse*groesse/1000) - gewicht;                   
        System.out.println("Laut BMI haben Sie Untergewicht, essen sie mehr damit sie nicht noch dünner und schwächer werden!");
        System.out.println("Sie müssen " + Differenz + " BMI punkte zunehmen um ihr Idealgewicht zu erlangen");
        System.out.println("############################################################################################################");
        
    }   
            else
        {
            if (BMI < 26 )
                {   
                    System.out.println("Laut BMI haben Sie Normalgewicht, KLasse behalten sie ihr Gewicht!");
                    System.out.println("############################################################################################################");
                }
                else
                {
                if(BMI < 31)
                {       Differenz  = (25*groesse*groesse/1000) - gewicht* (-1);
                        System.out.println("Laut BMI haben Sie Übergewicht, tuhen sie was für ihre Figur!");
                        System.out.println("Sie müssen " + Differenz + " BMI punkte abnehmen um ihr Idealgewicht zu erlangen");
                        System.out.println("############################################################################################################");
                }
                else
                {
                   if(BMI >= 31)
                   {        Differenz  = (25*groesse*groesse/1000) - gewicht* (-1);
                            System.out.println("Laut BMI haben Sie Starkesübergewicht,sie sollten sich Sorgen machen um ihre Gesundheit!");
                            System.out.println("Sie müssen " + Differenz + " BMI punkte abnehmen um ihr Ideal gewicht zu erhalten");
                            System.out.println("############################################################################################################");
                        }
                            
                        
    }   
         }
              }
                   }
                       }

Könnt ihr mir vielleicht helfen ich verzweifel schon daran
 

ARadauer

Top Contributor
ja?

Wie lautet deine Frage? Wo ist dein Problem? Warum postest du in einen alten Thread?

statt
Java:
void Bmi(double neugroesse, int neugewicht)
machen wir das... Konstruktor muss so heißen wie die Klasse und hat keinen Rückgabe wert...


Java:
 public BmiProjekt(double neugroesse, int neugewicht){

und dann das ganze benutzen

Java:
   public static void main(String[] args) {
      BmiProjekt bmi = new BmiProjekt(180d,100);
      bmi.ausgeben();
   }

funktioniert doch...
 
S

SlaterB

Gast
> Warum postest du in einen alten Thread?

passt doch perfekt in diesem Thread,
es gibt das Risiko solcher Antworten oder gar keiner Antworten da manche weniger in Threads mit vielen Antworten schauen (ich zumindest ;) )
aber ansonsten kann man eine derartige Aufgeräumtheit doch nur begrüßen

die Frage war übrigens im Titel:
> Kann mir einer helfen ich weiss nicht wie ich das mit dem alter hinbekommen soll

nicht grad detailliert, aber zumindest das Thema ungefähr klar (= alles zum Alter noch einbauen ;) )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
Leo_1789 Differenz ausrechnen zwischen denn idealgewicht und denn echten Gewicht Java Basics - Anfänger-Themen 7
D Restguthaben ausrechnen Java Basics - Anfänger-Themen 4
F Potenz ausrechnen Hilfe! Java Basics - Anfänger-Themen 7
D Gebühr ausrechnen [Buchaufgabe] Java Basics - Anfänger-Themen 9
C Rechenaufgabe im JLabel ausrechnen Java Basics - Anfänger-Themen 2
B Variablen im Java-Code selber "ausrechnen" Java Basics - Anfänger-Themen 8
C Konvertierung per Hand ausrechnen Java Basics - Anfänger-Themen 8
C Variablen Array dynamisch halten und ausrechnen Java Basics - Anfänger-Themen 14
N alter mit Date ausrechnen Java Basics - Anfänger-Themen 10
StrikeTom Median ausrechnen Java Basics - Anfänger-Themen 3
D Rest ausrechnen Java Basics - Anfänger-Themen 2
K Datentypen Prozent ausrechnen, Probleme Java Basics - Anfänger-Themen 9
B Taschenrechner - Aufgabenstring umwandeln und ausrechnen Java Basics - Anfänger-Themen 6
C String "ausrechnen" Java Basics - Anfänger-Themen 6
C Mausklicks pro Minute ausrechnen Java Basics - Anfänger-Themen 12
M Gleichungen dynamisch erstellen und ausrechnen? Java Basics - Anfänger-Themen 8
P Farbwertanteile ausrechnen! geht so nich ganz Java Basics - Anfänger-Themen 2
D BreitenGrad ausrechnen Java Basics - Anfänger-Themen 13
G automatisch ausrechnen Java Basics - Anfänger-Themen 3
U tage ausrechnen Java Basics - Anfänger-Themen 4
B Formel in Textfeld ausrechnen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben