Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Apua vasta-alkaneelle

Saukko [15.02.2006 09:13:21]

#

Teen koulussa java tehtävää enkä osaa. Voisiko joku auttaa vähän. Ohjelman pitäisi tulostaa näin:

Ohjelma laskee yhteen haluamasi ajanjakson aikanatehdyt työtunnit sekä keskimääräisen työpäivän pituuden.
Kuinka monta päivää:5
Anna 1. päivän työtunnit:7.4
Anna 2. päivän työtunnit:4.8
Anna 3. päivän työtunnit:7.5
Anna 4. päivän työtunnit:8.6
Anna 5. päivän työtunnit:6.7
Tehdyt työtunnit yhteensä: 35.0
Keskimääräinen työpäivän pituus: 7.0Syötetyt tunnit: 7.4 4.8 7.5 8.6 6.7

Tässä olisi koodi ohjelmaan josta en osaa edetä enää.

import java.io.*;
 public class Tunnit
  {
    public static void main(String[] args)

    {
int luku1=1,luku2, luku3=-1, paiv = 1, luku5;
double luku4;

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

   try
    {
      System.out.println("Ohjelma laskee yhteen haluamasi ajanjakson aikana");
      System.out.println("tehdyt työtunnit sekä keskimääräisen työpäivän pituuden.");

       System.out.print("Kuinka monta päivää:");
       luku5 = Integer.parseInt(in.readLine());

        do {

            System.out.print("Anna " + paiv +"." + " päivän työtunnit:");
            luku2 = Integer.parseInt(in.readLine());

            luku1=luku1+luku2;

            luku3++;

            } while(luku2 > 0);




        }
         catch(Exception e)
         {
           System.out.print("");
     }
   }

tsuriga [15.02.2006 09:53:00]

#

1) Nimeä muuttujat paremmin, ei noiden käyttötarkoituksesta ota selvää. Eli luku1-luku5 pois, tilalle jotain selkeämpää, kuten luku5 -> paivien_lkm ja luku3 -> tyotunteja_yht.

2) Tuosta puuttuu nyt looppi, jota toistettaisiin annetun päivien lukumäärän verran. Käytä siihen esimerkiksi for-lauseketta. Korvaa do siis forilla.

3) Koska syötetyt työtunnit tulee muistaa myöhemmin, tässä olisi kätevintä käyttää int-taulukkoa. Parseroi siis käyttäjän syöte suoraan taulukkoon:

tyotunnit[ i ] = Integer.parseInt(in.readLine()); // missä i on for-lausekkeen looppimuuttuja

4) Forin jälkeen tulostat nuo, mitä ei ole vielä tulostettu. Taitaa joutua taas käyttämään uutta foria, kun tulostetaan annetut työtunnit.

-Kannattaisi tulostaa virheen sattuessa tietoa virheestä, auttaa debuggauksessa. Tai valmiin tuotteen yhteydessä jokin tieto käyttäjälle, mitä oikein tapahtui. Eli vaikkapa System.err.println(e.toString());

-Pistä väli viimeiseksi noissa kun kysytään käyttäjältä arvoa, näyttää selkeämmältä käyttäjälle ;)

Javalasta löytyy ohjeita.

Vastaus

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

Tietoa sivustosta