1 van 1
Programeren met java
Geplaatst: za 01 mei 2010, 21:42
door marjan
Hoi
ik heb een code geschreven voor het berekenen van BMI
maar er moeten 2 contructors inzitten een parameterloze en een waarin de lengte en massa wordt gegeven
en er moet een methode inzitten waar de ingestelde lengte en massa kan worden opgevaagd
hier is mijn code ik weet wat ik fout maar ik krijg geen bmi op mijn scherm
public class BodyMassIndex {
private int lengte ;
private double massa;
private double BMI;
public BodyMassIndex(int lengte,double setMassa,double BMI){
}
public BodyMassIndex(){
}
public int getLengte() {
return this.lengte;
}
public void setLengte(int lengte) {
if (lengte>0) {
this.lengte = lengte;
} else {
this.lengte=0;
}
this.berekenBMI();
}
public double getMassa() {
return this.massa;
}
public void setMassa(double massa) {
if( this.massa>0){
this.massa = massa;
}else{
this.massa=0;
}
this.berekenBMI();
}
public double getBMI() {
return this.BMI ;
}
public void setBMI(double BMI) {
if( this.BMI>0){
this.BMI = BMI;
}else{
this.BMI=0;
}
}
private void berekenBMI(){
if (BMI>0){
// BMI = massa/(lengte*lengte);
BMI=84.5/(157*157);
} else{
this.BMI=0;
}
}
public class BerekenBMI {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BodyMassIndex eenBMI;
eenBMI = new BodyMassIndex();
System.out.println(" de waarde van bmi is" + eenBMI.getBMI());
}
}
groetjes
Re: Programeren met java
Geplaatst: za 01 mei 2010, 21:50
door ZVdP
Zoals het er nu staat is eenBMI.BMI gelijk aan 0, deze werd nergens ingesteld.
(Moet er trouwens in berekenBMI() niet massa/(lengte*lengte) staan, ipv de vaste waarden nu?)
Re: Programeren met java
Geplaatst: za 01 mei 2010, 21:56
door EvilBro
... maar ik krijg geen bmi op mijn scherm
Je code compileert niet. Echter, een '}' zetten en het werkt wel. Als ik dan run zie ik 0.0 als BMI. Dat is precies wat ik verwacht gezien de input.
gebruik voor het posten van code-tags (in de rij met bold/italic en underline de meest rechtse).
Re: Programeren met java
Geplaatst: zo 02 mei 2010, 12:08
door marjan
hoi
ik weet niet meer hoe ik het moet oplossen dit is mijn code
public class BodyMassIndex {
private int lengte ;
private double massa;
private double BMI;
private double berekenBMI;
public BodyMassIndex(int lengte,double setMassa,double BMI){
this.setLengte(157);
this.setMassa(84.5);
}
public BodyMassIndex(){
}
public int getLengte() {
return this.lengte;
}
public void setLengte(int lengte) {
if (lengte>0) {
this.lengte = lengte;
} else {
this.lengte=0;
}
this.setberekenBMI();
}
public double getMassa() {
return this.massa;
}
public void setMassa(double massa) {
if( this.massa>0){
this.massa = massa;
}else{
this.massa=0;
}
this.setberekenBMI();
}
public double getBMI() {
return this.BMI ;
}
public void setBMI(double BMI) {
if( this.BMI>0){
this.BMI = BMI;
}else{
this.BMI=0;
}
}
public void setBerekenBMI(double berekenBMI) {
this.berekenBMI = berekenBMI;
}
private void setberekenBMI() {
this.berekenBMI=massa/(lengte*lengte);
}
public double getBerkenBMI() {
return berekenBMI;
}
}
public class BerekenBMI {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BodyMassIndex eenBMI;
eenBMI = new BodyMassIndex();
System.out.println(" de waarde van bmi is" + eenBMI.getBMI());
}
}
kan iemand mij helpen aub
groetjes
Re: Programeren met java
Geplaatst: zo 02 mei 2010, 12:37
door ZVdP
Waarom heb je de variabele 'berekenBMI' ingevoerd?
Waarom staat er 'double BMI' in de constructor?
Waarom staan er vaste waarden in de constructor zoals 'setLengte(157)'?
Waarom staat er in de set methodes voor 'massa' en 'BMI' steeds 'if (this.xxx>0)' en niet 'if (xxx>0)'?
Waarom is er eigenlijk een 'setBMI' methode?
Re: Programeren met java
Geplaatst: zo 02 mei 2010, 12:52
door EvilBro
Je code compileert nog steeds niet en je hebt wederom geen code-tags (
) gebruikt. Ik geef bij deze aan dat als dit de volgende keer weer zo is, ik geen moeite meer ga stoppen in het antwoorden van je vragen.
Als het probleem is dat je je code niet zo krijgt dat hij compileert, post dan de error-message die je krijgt en stel die specifieke vraag.
Als het probleem is dat je 0.0 als BMI krijgt, kijk dan eens goed naar wat je code doet. Je maakt een object aan via de 'BodyMassIndex()'-constructor. Waarom verwacht je dat er iets anders uitkomt dan 0.0? Je zou ook met een debugger stap voor stap door je programma kunnen lopen.
Als voorbeeld van hoe het er met code-tags uitziet, hier een stukje code dat ik zou maken:
Code: Selecteer alles
public class BodyMassIndex {
private double lengte; // lengte in meters.
private double massa; // massa in kilogrammen.
public BodyMassIndex(double lengte, double massa){
this.lengte = lengte;
this.massa = massa;
}
public double getLengte() {
return this.lengte;
}
public void setLengte(double lengte) {
if (lengte > 0) {
this.lengte = lengte;
} else {
this.lengte = 0;
}
}
public double getMassa() {
return this.massa;
}
public void setMassa(double massa) {
if (this.massa > 0) {
this.massa = massa;
} else {
this.massa = 0;
}
}
public double getBMI() {
return (...); // vervang de puntjes door de formule waarmee je de BMI berekent.
}
public static void main(String[] args) {
BodyMassIndex eenBMI;
eenBMI = new BodyMassIndex(,); // maak deze regel kloppend met de constructor.
System.out.println(" de waarde van bmi is " + eenBMI.getBMI());
}
}
Re: Programeren met java
Geplaatst: ma 03 mei 2010, 20:23
door marjan
bedankt ik het uiteindelijk gevonden ik heb neg een opdracht waar volgens volledig de mist in ga ik op school vroeger te wening wiskunde gehad
kan iemand mij ui de noot helpen?
de opdracht is deze:
Ontwerp een klasse Punt met:
Twee attributen x en y (doubles).
Vier constructors:
1 Een die het punt initialiseert op de oorsprong (0,0).
2 Een die het punt initialiseert op mee te geven parameters xen y (int).
3 E_en die het punt initialiseert op mee te geven parameters xen y (double).
4 E_en die het punt initialiseert op basis van een ander Punt.
Voeg getters en setters toe voor x en y.
Voeg tenslotte een methode move toe waarmee je x en y
over een bepaalde afstand kan verschuiven (twee
parameters: deltaX en deltaY).
Zorg dat alles getest wordt.
Voeg aan de klasse Punt volgende toe:
Een methode distance die de afstand tussen twee punten
te berekent (het tweede punt mee te geven als parameter).
Een methode distanceToOrigin die de afstand tot het
nulpunt berekent (maakt gebruik van de methode
distance).
Zorg dat alles getest wordt.
Dit is mijn code die ik tot nu toe heb ik weet niet of er iets van juist is?
package punt;
public class Punt<DeltaY> {
private double X;
private double Y;
public <oorsprong> Punt(){
this.X=0.0;
this.Y =0.0;
}
public Punt(int X,int Y){
}
public Punt(double X,double Y){
}
public Punt(double Z){
}
public double getX() {
return X;
}
public void setX(double x) {
if(X>0){
this.X = x;
}else {
this.X=0;
}
}
public double getY() {
return Y;
}
public void setY(double y) {
if(X>0){
this.Y = y;
}else {
this.Y=0;
}
}
private void move(DeltaY DeltaX){
}
}
help aub
groetjes
Re: Programeren met java
Geplaatst: ma 03 mei 2010, 20:30
door ZVdP
Gebruik, zoals EvilBro al vermelde, code-tags, dat leest veel vlotter.
En wat is precies het probleem in deze opdracht?
Re: Programeren met java
Geplaatst: di 04 mei 2010, 16:16
door marjan
hoi
ik weet echt niet hoe ik deze twee codes moet schijven
Voeg tenslotte een methode move toe waarmee je x en y
over een bepaalde afstand kan verschuiven (twee
parameters: deltaX en deltaY).
Zorg dat alles getest wordt
Voeg aan de klasse Punt volgende toe:
Een methode distance die de afstand tussen twee punten
te berekent (het tweede punt mee te geven als parameter).
Een methode distanceToOrigin die de afstand tot het
nulpunt berekent (maakt gebruik van de methode
distance).
Zorg dat alles getest wordt.
ik weet ook of mijn vier constuctors in mijn code wel kloppen
bedankt groetjes
Re: Programeren met java
Geplaatst: di 04 mei 2010, 18:24
door ZVdP
3 van de 4 constructors doen nog niets.
En de 4e zou een Punt moeten nemen als parameter, geen double.
Voor de andere vragen:
Stel je hebt een punt (x,y), het verschoven punt is nu (x+deltaX,y+deltaY)
De afstand van een punt (x
1,y
1) tot een ander punt (x
2,y
2)is:
\(d=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}\)
Re: Programeren met java
Geplaatst: wo 05 mei 2010, 16:26
door marjan
hoi hoe schrijf ik die formule dan in een java code
want daar sukkel ik mee sorry hoor mischien een domme vraag
groetjes
Re: Programeren met java
Geplaatst: wo 05 mei 2010, 18:27
door ZVdP
alle wiskundige dingen vindt je onder Math, dus Math.sqrt(...). En kwadraten zijn het eenvoudigste uit te schrijven, dus x² als x*x.