• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obliczenie bmi java

Object Storage Arubacloud
0 głosów
1,302 wizyt
pytanie zadane 26 marca 2021 w Java przez Paluch22 Nowicjusz (230 p.)

Cześć, dopiero zaczynam progrmowanie z java i mam problem. Chciałem stworzyć program liczący bmi. W ogóle nie w Public void podziel, nie dzieli mi z reszta. Program wyświetla

Wzrost=180
Waga=89
89.0
Wychudzenie

Wklejam niżej kod z góry dziękuje za pomoc


import java.util.Scanner;

public class Kaukulator {
	float wzrost;
	float waga;
	
	

public Kaukulator(){
	wzrost=0;
	waga=0;
}

public Kaukulator(float wzrost, float waga) {
	this.wzrost = wzrost;
	this.waga = waga;

}
public void podaj_dane() {
	System.out.println("Wzrost=");
	Scanner in = new Scanner(System.in);
	wzrost= in.nextInt();
	System.out.println("Waga=");
	waga= in.nextInt();
}

public void podziel() {
	float cel;
	cel = waga % wzrost;
	System.out.println(cel);
	if(cel<16) {
		System.out.println("Wyglodzenie");
	}
	else if(cel>16 || cel<= 17)
	{
		System.out.println("Wychudzenie");
	}
	else if(cel>17 || cel<= 19)
	{ 
		System.out.println("Niedowaga");
	}
	else if(cel>19 || cel<= 25)
	{ 
		System.out.println("Wartosc Prawidlowa");
	}
	else if(cel>25 || cel<= 30)
	{ 
		System.out.println("Nadwaga");
	}
	else if(cel>30 || cel<= 35)
	{ 
		System.out.println("I stopien otylosci");
	}
	else if(cel>35 || cel<= 40)
	{ 
		System.out.println("II stopien otylosci");
	}
	else if (cel>40)
	{ 
		System.out.println("Otylosc skrajna");
	}
	
}


}


public class WynikKaukulator {

	public static void main(String[] args) {
		Kaukulator kaukulator = new Kaukulator();
		kaukulator.podaj_dane();
		kaukulator.podziel();
	}
	

}

 

2 odpowiedzi

0 głosów
odpowiedź 26 marca 2021 przez Wiciorny Ekspert (273,830 p.)
wybrane 26 marca 2021 przez Paluch22
 
Najlepsza
cel = waga % wzrost;

to nie jest dzielenie, tylko to jest operacja modulo- czyli reszta z dzielenia, zwraca Ci wartość która jest resztą z tego dzielenia stąd cel = 89 % 189 -> reszta z dzielenia to 89... 

Jeśli używasz cm- jako wzrost, a nie metrów - to obliczanie bmi jest takie 
 

double cel = (100*100*waga)/(wzrost*wzrost);

lepiej trzymać to jako double. 

Wzrost= 180
Waga= 89
27.469135284423828
Wychudzenie

Dodatkowo masz operator || alternatywy stąd wypiszę błędne informacje np 
 

 else if(cel>16 || cel<= 17)
        {
            System.out.println("Wychudzenie");
        }

 tutaj w warunku masz że jesli CEL JEST większy niż 16 lub mniejszy badź równy ... to wychudzenie,  zauważ żę ta alternatywa jest zawsze prawdziwa :) dla celu > 16 ... bo wystarczy że jeden warunek bedzie prawdziwy żeby if się wykonał, zamień ten warunek na "i" skoro oba mają zajść jednocześnie powinno być 
 

else if(cel>16  && cel<= 17) // tylko gdy dwa warunki spełnione

analogicznie przeanalizuj reszte 

+1 głos
odpowiedź 26 marca 2021 przez Paluch22 Nowicjusz (230 p.)
Dzięki wielkie teraz działa

Podobne pytania

+1 głos
1 odpowiedź 607 wizyt
pytanie zadane 28 grudnia 2020 w C# przez Tukan Nowicjusz (190 p.)
+1 głos
2 odpowiedzi 2,421 wizyt
pytanie zadane 25 września 2021 w JavaScript przez void6 Użytkownik (790 p.)
0 głosów
2 odpowiedzi 427 wizyt
pytanie zadane 29 października 2018 w C i C++ przez Shimeo7 Obywatel (1,910 p.)

92,761 zapytań

141,685 odpowiedzi

320,483 komentarzy

62,105 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...