Tehtävä 3 (Juhani Toivonen 19.10.2011) Pisteytin ratkaisut seuraavasti: Syötteen lukeminen, 2 pistettä jos oikein, 1 piste jos virheitä (esim. luettu Stringejä vahingossa int-taulukkoon) mutta ajatus selviää. Järjestäminen, 5 pistettä jos on esitetty järjestysalgoritmi joka toimii kokonaan. Pudotellut yksittäisiä pisteitä jos reunaehdot menneet väärin, alkioiden vaihtaminen keskenään mennyt väärin tai jos algoritmi olettaa jo jotain taulukon järjestykseltä. Jos aakkosjärjestys on mennyt väärään suuntaan en ole rokottanut. Taulukon tulostus, 1 piste, oli järjestyksessä tai ei kunhan tehty. Kokonaisuus 2 pistettä, ts. näkeekö koodista että kirjoittaja on ymmärtänyt missä järjestyksessä eri vaihteet kannattaa tehdä ja onko osannut asetella koodissa oikeaan kohtaan. Myöskin apumetodien ynnä muiden järkevyyttä olen arvioinut näissä. Yhdessä muodostavat sen kymmenen pistettä. ======================================================= import java.util.Scanner; public class NimiJarjestaja { public static Scanner keyboard = new Scanner(System.in); public static void main(String[] args) { System.out.println("Nimienjärjestysohjelma."); // Selvitetään montako nimeä tulossa System.out.print("Anna syötettävien nimien lukumäärä: "); int nimienLkm = keyboard.nextInt(); keyboard.nextLine(); // Haetaan rivinvaihto pois puskurista // Luodaan sopiva taulukko ja luetaan sinne nimet String[] nimet = new String[nimienLkm]; lueNimetTaulukkoon(nimet); // Järjestetään erilseen kirjoitetulla metodilla vaihtoJarjesta(nimet); // Tulostetaan nyt järjestyksessä oleva taulukko System.out.println("Nimet aakkosjärjestyksessä:"); for (int i = 0; i < nimet.length; i++) { System.out.println(nimet[i]); } } private static void vaihtoJarjesta(String[] nimet) { for (int i = 0; i < nimet.length - 1; i++) { for (int j = i + 1; j < nimet.length; j++) { // Huom! Reunaehto, viimeinenkin täytyy tarkistaa! if (nimet[i].compareTo(nimet[j]) > 0) { // compareTo(String x) palauttaa järjestystä String apu = nimet[i]; // kuvaavan kokonaisluvun nimet[i] = nimet[j]; nimet[j] = apu; } } } } private static void lueNimetTaulukkoon(String[] nimet) { for (int i = 0; i < nimet.length; i++) { System.out.print("Anna " + (i + 1) + ". nimi: "); String name = keyboard.nextLine(); nimet[i] = name; } } }