Terve,
Pitäisi saada euro-muuttuja joka kierroksen jälkeen kertautumaan markalla eli siis euro/markkakurssi laskuri.
Olen aivan pihalla kuten aloittelijoilla tapana;)
float euro = 5.94573f; int markka = 1; int i; for (i=1; i<6; ++i) System.out.println(i + " mk= " + euro );
% cat eurot.java class eurot { public static void main(String[] argv) { float markkoja_eurossa = 5.94573f; int i; for (i=0; i<7; ++i) { System.out.println (i + " markkaa on " + i/markkoja_eurossa + " euroissa."); } } }
% java eurot 0 markkaa on 0.0 euroissa. 1 markkaa on 0.16818792 euroissa. 2 markkaa on 0.33637583 euroissa. 3 markkaa on 0.50456375 euroissa. 4 markkaa on 0.67275167 euroissa. 5 markkaa on 0.8409396 euroissa. 6 markkaa on 1.0091275 euroissa.
Tein seuraavat muutokset.
Muuttujan euro kuvaavampi nimi on markkoja_eurossa, koska se kertoo, montako markkaa yksi euro on. Sen voi myös kirjoittaa mk/€ (paitsi Java ei ymmärrä tätä merkintää!).
Poistin muuttujan markka. Mitä käyttöä sillä on?
Kasvatin silmukkaan yhdellä, että saadaan edes kerran kokonainen euro.
Kun sen jälkeen on markkamäärä, ja halutaan euroja, pitää tämä markkamäärä jakaa ym. suureella. Silloin markat kumuovat toisensa ja tulos on euroissa. Kynällä ja paperilla kun vähän laskee, niin asian varmaan huomaa.
Suosittelen postaamaan aina minimaalisen oikean ohjelman, jonka voi kopioida itselleen ja suorittaa. Toivottavasti tämä nyt antaa oikeaa ajatusmallia. Mieti lasku ensin kynällä ja paperilla tai laskimen avulla ja ota selvää, minkälaisia arvoja voit odottaa. Sitten näet, onko ohjelmasi oikein, kun se tulostaa niitä arvoja, mitä odotit.
Tulosten järkevä pyöristys jätetään harjoitukseksi :-)
Kiitoksia paljon:)
Joo siis toi Markka muuttuja tuli epähuomiossa eilen ku kattelin illal javaa ja aivot oli lepotilas näköjään;)
Aloittelijana näitä sattuu jatkossakin, mutta mikä toi alussa oleva % cat eurot.java sekä argv(oletuksena args) mahtaa olla tai mitä se toimittaa?
Se tuli komentotulkistani. Se on sama kuin jos MS-DOS:issa kirjoittaisi type <tiedosto>
, eli se vian tulostaa sen tiedoston näkyviin tekstikonsoliin. Sen olisi voinut jättää poiskin tuosta kopiosta, joten anteeksi pieni sotku. Lähdekoodi alkaa riviltä, jossa lukee class eurot.
ok nyt selkisi.
Kas, kiireessä syömään jäi huomaamatta tuo argv-asia. Nimi tuli toisen kielen vaikutuksesta. Sillä ei ole sen kummempaa merkitystä; olisin laittanut parametrin nimeksi args, jos olisin muistanut ohjelmaa tehdessäni asian oikein.
aha eli tota käytetäänkö javassa tuota arg-v parametria ja jos ni missä tilanteessa?
ml1981 kirjoitti:
aha eli tota käytetäänkö javassa tuota arg-v parametria ja jos ni missä tilanteessa?
Siitä löytyy ohjelmaa käynnistettäessä sille annetut komentoriviparametrit.
Komentotulkkia käytettäessä siis.ok eli arg-s javassa oletuksena ni onko arg-v jossain toisessa kielessä oletuksena?
C:ssä ja C++:ssa main ottaa kaksi parametria: int argc ja char *argv[]. Ensimmäisessä kerrotaan, kuinka monta merkkijonoa tuossa toisessa parametrissa on, C:n taulukot kun eivät osaa pitää siitä lukua itse niinkuin Javan taulukot.
ml1981 kirjoitti:
Komentotulkkia käytettäessä siis.ok eli arg-s javassa oletuksena ni onko arg-v jossain toisessa kielessä oletuksena?
Parametrin nimellä ei ole oikeasti mitään väliä eikä se taida mistään oletuksena tulla (ellei sinulla ole jotain IDEä). Voit vaikka kutsua sitä mainin parametria nimellä 'erkki', jos niin haluat. Javassa nyt vain on vakiintunut käytäntö, että usemmiten sitä parametria kutsutaan nimellä 'args', koska tämä kuvaa varsin hyvin mikä parametrin tarkoitus on (ohjelman komentoriviargumentit).
Ja niinkuin kaikki muistavat
http://java.sun.com/docs/codeconv/html/
lukeneena muuttujat pitää nimetä
markkaaEuroissa tyyliin eikä
markkaa_euroissa
:)
lainaus:
Parametrin nimellä ei ole oikeasti mitään väliä eikä se taida mistään oletuksena tulla (ellei sinulla ole jotain IDEä). Voit vaikka kutsua sitä mainin parametria nimellä 'erkki', jos niin haluat. Javassa nyt vain on vakiintunut käytäntö, että usemmiten sitä parametria kutsutaan nimellä 'args', koska tämä kuvaa varsin hyvin mikä parametrin tarkoitus on (ohjelman komentoriviargumentit).
ok aloittelijalle kaikki tiedot tervetulleita;)Käytössäni tällä hetkellä Netbeans 4.1...
Kiitos _Pete_:lle oikaisusta. Vaikka väärät nimet eivät estä oikein tehtyä ohjelmaa toimimasta, on hyvä noudattaa suosituksia ja koodausohjeita. Minulle ne eivät Java-maailmassa ole tuttuja, joten kapinoin vain tietämättömyyttäni.
Ne ovat tärkeitä, koska kuitenkin täytyy lukea muiden ohjelmia ja muiden täytyy lukea sinun ohjelmiasi. Jos kaikki noudattavat sama tapaa, niin aikaa ei kulu turhan ihmettelyyn.
markkaaEurossa
siis
(minun argv:ni tuli Pythonin vaikutuksesta)
Kopeekka kirjoitti:
Kiitos _Pete_:lle oikaisusta. Vaikka väärät nimet eivät estä oikein tehtyä ohjelmaa toimimasta, on hyvä noudattaa suosituksia ja koodausohjeita. Minulle ne eivät Java-maailmassa ole tuttuja, joten kapinoin vain tietämättömyyttäni.
Kyllä kyllä. Hyvä totutella niihin jo aikaisin. Työelämässä niihin aivan taatusti viimeistään törmää. Eräässä firmassa oli sellainen käytäntö että koodia ei hyväksyttyä versionhallintaan ellei se ollut täysin code conventionin mukaisesti muotoiltu :)
"eräässä firmassa"? Noin se pitäisi olla kaikissa firmoissa!
Aihe on jo aika vanha, joten et voi enää vastata siihen.