Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Tiedoston pienin luku

cartsa88 [11.11.2009 15:50:12]

#

Tehtävänä olisi hakea tiedostosta (tiedoto.txt) ihmisten pituudet ja saada ohjelma tulostamaan niistä pienimmän.
En oikein osaa edetä tehtävässä. Voisiko joku auttaa?

import java.io.*;
    class Main {





  public static void main (String[] args) {
     int[] luvut = new int[args.length];
      for (int i = 0; i < args.length; i++) {
         luvut[i] = Integer.parseInt(args[i]);
      }
      // etsitään pienin
      // oletetaan, että se on ensimmäinen
      int pienin = luvut[0];
      // tutkitaan lopputaulukko toisesta alkiosta eteenpäin
      for (int i = 1; i < luvut.length; i++) {
        // jos löydetty pienempi kuin aiemmat
         if (luvut[i] < pienin) {
            pienin = luvut[i];
         }
      }
      // tulostetaan pienin
      System.out.println("Pienin on " + pienin);



  }
}

Meille ei oikeastaan opeteta mitään, joten en oikein osaa ohjelmoida perusjuttujakaan. Suurin ongelma on se, että en tiedä edes miten saan ohjelman ottamaan pituudet teksti tiedostosta.

Mod. lisäsi kooditagit, jolloin moni outo kohta koodissa selkeni.

Metabolix [11.11.2009 17:13:29]

#

Muutenhan tuo koodi on kunnossa, mutta tiedostosta lukeminen vain puuttuu. Toivottavasti tästä koodista opettelet asioita etkä vain palauta valmiina kurssityönä; olet pulassa tentissä, jos et opettele itse ohjelmoimaan.

import java.io.*;
import java.util.*;

class TiedostonPieninLuku {
	public static void main(String[] args) {
		FileReader tiedosto;
		try {
			tiedosto = new FileReader("tiedosto.txt");
		} catch (FileNotFoundException e) {
			System.out.println("Virhe: " + e.getMessage());
			System.exit(1);
			return;
		}
		Scanner s = new Scanner(tiedosto);

		if (!s.hasNextInt()) {
			System.out.println("Ei ole yhtään lukua!");
			System.exit(1);
			return;
		}

		int pienin = s.nextInt();
		while (s.hasNextInt()) {
			int x = s.nextInt();
			if (x < pienin) {
				pienin = x;
			}
		}
		System.out.println("Pienin luku on " + pienin);
	}
}

Vastaus

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

Tietoa sivustosta