java apua! painoindeksi laskuri

noobkoodaaja

Mureakuha.com
Uutiset Koodikirjasto Wiki Keskustelut FAQ Info
Merkitse seuratuksi
Keskustelut - Java - Java apua! painoindeksilaskuri

isok4rhu 14:05 26.3.11 muokkaa Lainaa
terve!

tarttisin apua yksinkertaisen painoindeksilaskurin tekemiseen. tekisin sen itse kokonaan, mutta muisti/taidot ei riitä näinkään yksinkertaisen tehtävän tekemiseen. rästitehtävä siis ja tästä on kiinni minun valmistuminen :D

eli siis appletin perusrakenne olisi tämä:

Paino
textfield johon annetaan paino
Pituus
textfield johon annetaan pituus
Laske
Button joka laskee annetuista arvoista indeksin

laskutoimituksen jälkeen alhaalle tulostuisi
"painoindeksisi on (laskettu arvo)"
ja loppuun tyly teksti joka kertoo että esim "olet normaalipainoinen" tai "olet ylipainoinen"

tässä teksti jonka olen saanut tehtyä, mutta se ei toimi. enkä ihmettele :D
apua tarvitaan ja runsaasti, koska olen oikeasti aivan täysin hukassa näiden kanssa.
jos joku saisi tästä tekstistä väsättyä oikeasti toimivan laskurin, antaisin täyden rispektin ja kiitokset henkilölle, joka auttoi minua viimeisessä tehtävässä joka on minun ja valmistumisen tiellä!

painoindeksi lasketaan kaavalla massa / pituus /pituus. Pituus ilmoitetaan metreinä eli siis vaikka 80/1.85/1.85

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class painoindeksi extends Applet implements ActionListener {

TextField tx, ty; // Määritellään oliot ja muuttujat
String pn, pt;
Label tz;
Button laske;
double x, y, z;

public void init () { // Appletin alustus
add(tx = new TextField());// Olioiden luonti
add(ty = new TextField());
add(tz = new Label(""));
add(pn = new String("Paino"));
add(pt = new String("Pituus"));
add(laske = new Button("Laske"));
x = 0; y = 0; z = 0; // Muuttujien alustus
laske.addActionListener(this); // Kuuntelija painikkeelle laske
}

public void paint(Graphics g) { // Piirtoalusta

pn.g.drawString(20, 15);
pt.g.drawString(20, 35);
tx.reshape(20, 25, 100, 20); // Olioiden paikka ja koko
ty.reshape(20, 65, 100, 20);
tz.reshape(20, 125, 100, 20);
laske.reshape(20, 95, 40, 30);

}

public void actionPerformed(ActionEvent e) { // Tapahtumankäsittelijä
if (e.getActionCommand().equals("Laske")){ // Jos painiketta laske painettu:
x=double.valueOf(tx.getText()); // Tekstien muunnos ja sijoitus
y=double.valueOf(ty.getText()); // muuttujiin x ja y
z=x/y; // Summa
tz.setText(String.valueOf(z)); // Summan muunnos ja sijoitus nimiöön tz
repaint(); // Piirtoalustan päivitys
}
}
}

9

1128

    Vastaukset 9

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • kuhansäädäjotain

      * alustuksessa stringit paino ja pituus pitäisi olla varmaanki labeleina.
      * paint metodin kahdessa ensimäisessä rivissä on vikaa..
      g.drawString("blaa", 20,15);
      * painoindeksin laskukaava on väärin, oikean ollessa BMI = massa / (pituus*pituus)
      * kun haet arvot lootiloista niin muunnos pitäisi tehdä stringistä doubleksi eikä objectista doubleksi Double.parseDouble(tx.getText());
      * syötettäessä painoindeksin arvo labeliin sen kuuluisi mennä muotoa Double.toString(z) ja pyöristys ei olis pahitteeks kanssa

    • noobkoodaaja

      laskukaava on joo väärin, sillä en ole vielä päässyt tähän kohtaa kunnolla väkertämään. nyt pitäisi saada ylipäätään tekstit näkymään ja muutenkin toimimaan alustavasti. ongelmana on myös se, että selain ei suotu päivittämään tätä applettia, eli html johon classin laitoin näyttää ikivanhaa tekstiä jota ei edes koodista löydy enään. mikäköhän siinä on sitten?

      muuten, voisitko laittaa koodin pätkän joka tulostaa labeliin painon ja pituus yms, koska en oikeasti tajua :D kiitos!

    • kuhansäädäjotain

      labelinNimi.setText(Double.toString(pituus));
      // tulostettaessa pitää saada double muutettua stringiksi jotta labeli hyväksyisi.

      Noista tietotyyppimuunnoksista löytyy kyllä nopeesti tietoa kun jaksaa vaan googlen kautta pyörähtää ja kuluttaa sen 10 sekuntia siihen kuin myös tietoa labeleista sun muista.

      Jollet jo käytä Eclipseä niin suosittelisin käyttämään, se kun kertoo missä kohtaa on vikaa ja ilmoittaa mikä siinä kusee. Siinäkin jos kirjoitat labelin nimen ja lyöt pisteen perään niin se näyttää listan mitä kaikkea sillä voi tehdä ja valita niistä sopivan. Kaikkiin on myös selostettu selkeästi mitä kukin metodi tekee.

    • noobkoodaaja

      oon saanut nyt aika paljon teidän avulla hommaa eteenpäin kiitoksia :D mutta en saa laskutoimitusta tekemään mitä haluan, eli siis jos toimitus on paino/pituus/pituus niin miten se pitäisi koodiin laittaa.

      z=y/x/x kun ei tunnu tekevän mitä haluan, ja olen myös kokeillut z=y/(2*x) mutta sekään ei laske sitä oikein, eli miten ihmeessä se pitäisi tähän laittaa :o

      tuohon kun saisi vielä apua niin ohjelma on suurinpiirtein valmis

      • lalalalalala

        Kaava on m/(p*p) tai massa/pituus^2, ei m/p/p, koska p/p = 1.

        (m = massa p =pituus)

        No joo, siis z=y/x/x saattaisi mennä oikein (mikäli Java laskee järjestyksessä y/x ensin ja sitten /x, jos se laskee x/x ensin niin tulos on väärä eli tasan y).

        Ainakin z=y/(2*x) on väärin koska 2*x != x*x.

        Eli laita z = y/(x*x).

        Nyrkkisääntö kaavoissa on että laita sulkuja mieluummin liikaa kuin liian vähän.

        On muuten aika hölmöä tehdä tuommoinen applettina edes harjoituksena, kun selaimessa kerran on Javascript.

        Vasta jos tarvitaan paljon laskentaa (tai muuta) niin sitten applet. Työväline tehtävän mukaan.


    • noobkoodaaja

      tässä on teidän avullannu korjailtu versio, mutta silti ei oikein toimi. näettekö tosta mikä on probleemo? eli siis laskutoimitus ei vieläkään laske oikein :o

      import java.applet.*;
      import java.awt.*;
      import java.awt.event.*;

      public class painoindeksi extends Applet implements ActionListener {

      TextField tx, ty; // Määritellään oliot ja muuttujat
      Label tz, pn, pt;
      Button laske;
      Double x, y, z, o, i;

      public void init () { // Appletin alustus
      add(tx = new TextField());// Olioiden luonti
      add(ty = new TextField());
      add(tz = new Label(""));
      add(pn = new Label("Paino"));
      add(pt = new Label("Pituus"));
      add(laske = new Button("Laske"));
      double x = 0;
      double y = 0;
      double z = 0; // Muuttujien alustus
      laske.addActionListener(this); // Kuuntelija painikkeelle laske
      }

      public void paint(Graphics g) { // Piirtoalusta

      pn.reshape(20, 5, 100, 20);
      pt.reshape(20, 50, 100, 20);
      tx.reshape(20, 20, 100, 20); // Olioiden paikka ja koko
      ty.reshape(20, 65, 100, 20);
      tz.reshape(20, 125, 100, 20);
      laske.reshape(20, 95, 40, 30);

      }

      public void actionPerformed(ActionEvent e) { // Tapahtumankäsittelijä
      if (e.getActionCommand().equals("Laske")){ // Jos painiketta laske painettu:
      x=Double.parseDouble(tx.getText()); // Tekstien muunnos ja sijoitus
      y=Double.parseDouble(ty.getText()); // muuttujiin x ja y
      z=(y/(x*x)); // Summa
      tz.setText(Double.parseDouble(z)); // Summan muunnos ja sijoitus nimiöön tz

      }
      }
      }

    • noobkoodaaja

      "On muuten aika hölmöä tehdä tuommoinen applettina edes harjoituksena, kun selaimessa kerran on Javascript."

      tehtävän anto on nimenomaan että "tee appletti joka laskee painoindeksin" eli teen appletin :D

      • lalalalallalalla

        Ei se sinun vika olekaan vaan maikan kun määrää typeriä tehtäviä.

        Kyllä sen maikan pitäisi nähdä sen verran vaivaa että keksisi sellaisen tehtävän jossa appletin parempi suorituskyky vs. javascript tulisi esiin.

        Ja vielä kun demoaisi kuinka appletti päihittää javascriptin ko. hommassa.


    • vauvakin osaa

      Et ansaitse valmistua, jos et näin sairaan yksinkertaista tehtävää saa itse tehtyä. FAIL!

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nyt se syksy on sitten alkanut

      Esimerkiksi tänään sataa aamusta iltaan, ja nytkin.
      Maailman menoa
      72
      1148
    2. Minä en ole koskaan

      Rakastanut ketään toista yhtä paljon kuin sinua
      Ikävä
      98
      1084
    3. Tiesitkö? Jorma Uotisen EX-rakas on Helena Lindgren - Nämä ovat välit nyt: "Me ollaan..."

      Jorma Uotinen ja Helena Lindgren olivat avoliitossa v. 1982-1999. Pariskunta oli aikansa näyttävä julkkispari, missä i
      Kotimaiset julkkisjuorut
      23
      963
    4. Olet nainen ollut vaikein rasti

      Eniten olet tunteitani myllännyt ja niitä kuluttanut, ja tuottanut. 🤔
      Ikävä
      67
      943
    5. Anteeksi J-mies

      Anteeksi että myötävaikutin siihen että rakastuit minuun, jota et voi koskaan saada. Viimeksi kun näimme ja katselimme t
      Ikävä
      126
      890
    6. Kuhmolainen opettaja tuomittu vainoamisesta

      https://yle.fi/a/74-20248184 ”Kuusikymppinen kuhmolaisnainen piinasi naapureitaan lähes kahdeksan vuoden ajan. Nainen
      Kuhmo
      22
      867
    7. Vähän pitää

      Kiusia ja näyttää
      Ikävä
      129
      828
    8. Riittääkö mahkut

      Kaivattuusi 🤭.
      Ikävä
      58
      795
    9. Kenen viisautta on ollut laittaa tie väärällä murskeella pilalle

      Kenen viisautta on ollut kun Siimeksen/Kylmänpurontie pantu pilalle kun on ajettu liian karkeaa mursketta. Rengasliikke
      Hyrynsalmi
      27
      761
    10. Elämäni biisi -paljastus: Tänä lauantaina 26.9. nämä julkkikset istahtavat sinisille sohville!

      Katsotko Elämäni biisiä? Elämäni biisi on monen suomalaisen suosikki. Vieraslista lauantaina 26.9. tarjoilee vieraita m
      Tv-sarjat
      6
      718
    11. Taidat olla

      Luovuttanut jo minun suhteeni osalta?
      Ikävä
      45
      686
    12. Minä muistan

      Minä muistan sinut nauravana. Sellaisena, joka sai tavallisenkin hetken tuntumaan vähän kevyemmältä, kuin huoneeseen ol
      Ikävä
      46
      681
    13. Koska Martina viettää aikaansa lapsiensa kanssa

      Äiti vaan juoksee miehen perässä Tallinnassa, Lontoossa, Turussa. Kyllä oli kätilö oikeassa, kun sanoi, että ei olisi ka
      Kotimaiset julkkisjuorut
      143
      642
    14. Mitä muuta on olemassa kuin lisääntyminen

      Jos mies ei pääse lisääntymään niin mikä hänen osansa elämässä on? mitä jää jäljelle? Hän on vain muiden palvelija kok
      Sinkut
      130
      636
    15. Mä voisin rakastua noihin tähti silmiin

      Katseesi on niin lumoava nainen💚.
      Ikävä
      19
      627
    16. Ähtäri on taas TV: n ja radion ykkösuutinen

      Uusi podcast on julkaistu ja on nyt kuunneltavissa. Mot on tehnyt hyvää työtä! Mikko Savola ja kepu ei ota mitään vast
      Ähtäri
      48
      620
    17. Jos tullaan toisiamme vastaan, niin

      pitäiskö pysähtyä ja onnitella?
      Ikävä
      48
      604
    18. Siinä kävi mies nyt niin että tämä ämmä muuttaa ulkomaille

      Vuonojen maa kutsuu, joten ei hätää. Et kuule minusta enää. 😂 Lycka till! Ämmä riittää.
      Ikävä
      80
      602
    19. Voisiko vielä välillemme jotain kehittyä

      Vai heihei ja ei nähdä enää.
      Ikävä
      35
      600
    20. Pahkalassa tapahtuu

      Mitäs on tapahtunut yöllä pahkalan kerrostaloilla.oli poliisia ja ambulanssia taas vaihteeksi
      Parkano
      12
      599
    Aihe