/* * Lausekielinen ohjelmointi II. * * Täytetään kaksiulotteinen 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 TaulukkoDemo2D { 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 2D-taulukkoa."); // Luetaan taulukon koko käyttäjältä Scanner-luokan avulla. Scanner lukija = new Scanner(System.in); System.out.println("Anna rivien lukumäärä:"); int rivejä = lukija.nextInt(); System.out.println("Anna sarakkeiden lukumäärä:"); int sarakkeita = 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[rivejä][sarakkeita]; // Olio satunnaisten arvojen luomiseen. Random arpoja = new Random(); // Täytetään taulukko satunnaisilla luvuilla. for (int riviInd = 0; riviInd < rivejä; riviInd++) { for (int sarakeInd = 0; sarakeInd < sarakkeita; sarakeInd++) { // Tuotetaan satunnainen kokonaisluku Random-luokan metodia käyttäen // ja sijoitetaan se taulukon alkioon. satunnaisluvut[riviInd][sarakeInd] = arpoja.nextInt(YLÄRAJA - ALARAJA + 1) + ALARAJA; } } // Tulostetaan luvut riveittäin length-attribuuttia hyödyntäen. for (int riviInd = 0; riviInd < satunnaisluvut.length; riviInd++) { for (int sarakeInd = 0; sarakeInd < satunnaisluvut[riviInd].length; sarakeInd++) { // Ei vaihdeta riviä. System.out.print(satunnaisluvut[riviInd][sarakeInd]); // Tulostetaan erotin tarvittaessa. if (sarakeInd < satunnaisluvut[riviInd].length - 1) { System.out.print(", "); } } // Vaihdetaan riviä. System.out.println(); } } }