Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Javan aloittelua

Sivun loppuun

ml1981 [04.10.2006 11:58:13]

#

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 );

Pekka Karjalainen [04.10.2006 12:10:04]

#

% 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 :-)

ml1981 [04.10.2006 12:20:18]

#

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?

Pekka Karjalainen [04.10.2006 12:24:40]

#

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.

ml1981 [04.10.2006 12:28:14]

#

ok nyt selkisi.

Pekka Karjalainen [04.10.2006 14:19:02]

#

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.

ml1981 [05.10.2006 08:39:30]

#

aha eli tota käytetäänkö javassa tuota arg-v parametria ja jos ni missä tilanteessa?

Blaze [05.10.2006 09:05:26]

#

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.

ml1981 [05.10.2006 09:17:17]

#

Komentotulkkia käytettäessä siis.ok eli arg-s javassa oletuksena ni onko arg-v jossain toisessa kielessä oletuksena?

Blaze [05.10.2006 10:09:42]

#

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.

FooBat [05.10.2006 12:25:43]

#

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).

_Pete_ [05.10.2006 13:23:29]

#

Ja niinkuin kaikki muistavat

http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367

lukeneena muuttujat pitää nimetä

markkaaEuroissa tyyliin eikä

markkaa_euroissa

:)

ml1981 [05.10.2006 20:32:35]

#

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...

Pekka Karjalainen [07.10.2006 09:39:10]

#

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)

_Pete_ [09.10.2006 09:54:20]

#

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 :)

renni [12.10.2006 23:23:37]

#

"eräässä firmassa"? Noin se pitäisi olla kaikissa firmoissa!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta