/* * Lausekielinen ohjelmointi II. * * Täytetään yksiulotteinen taulukko satunnaisilla luvuilla ja tulostetaan * taulukon alkiot. * * Jorma Laurikkala (jorma.laurikkala@tuni.fi). * * Viimeksi muutettu 9.11.2020. * */ // Otetaan käyttöön java.util-pakkauksen luokkia. import java.util.Scanner; import java.util.Random; public class TaulukkoDemo1D { public static void main(String[] args) { // Satunnaisten lukujen rajat vakioina. final int ALARAJA = 0; final int YLÄRAJA = 99; // Tervehditään käyttäjää ja kerrotaan ohjelmasta. System.out.println("Moi! Demoan 1D-taulukkoa."); // Luetaan taulukon koko käyttäjältä Scanner-luokan avulla. Scanner lukija = new Scanner(System.in); System.out.println("Anna alkioiden lukumäärä:"); int koko = lukija.nextInt(); // Esitellään viite, luodaan olio, jossa on käyttäjän määrittelemä // määrä alkioita ja liitetään viite olioon. int[] satunnaisluvut = new int[koko]; // Olio satunnaisten arvojen luomiseen. Random arpoja = new Random(); // Täytetään taulukko satunnaisilla luvuilla. for (int i = 0; i < koko; i++) { // Tuotetaan satunnainen kokonaisluku Random-luokan metodia käyttäen // Metodi palauttaa satunnaisen kokonaisluvun väliltä [0, parametriarvo[. // Ala- ja ylärajan sisältäviä vakioita hyödynnetään siten, että satunnainen // luku saadaan välille [ALARAJA, YLÄRAJA]. Ensin arvotaan luku väliltä // [0, YLÄRAJA - ALARAJA] ja sitten tehdään siirros lisäämällä tulokseen // ALARAJA. Satunnaisluku sijoitetaan taulukon alkioon, jonka indeksiarvo // on i. satunnaisluvut[i] = arpoja.nextInt(YLÄRAJA - ALARAJA + 1) + ALARAJA; } // Tulostetaan luvut yhdelle riville. for (int j = 0; j < satunnaisluvut.length; j++) { // Ei vaihdeta riviä. System.out.print(satunnaisluvut[j]); // Tulostetaan erotin tarvittaessa. if (j < satunnaisluvut.length - 1) { System.out.print(", "); } } // Vaihdetaan lopuksi riviä. System.out.println(); } }