Numerotaulukko + lajittelu. Taulukon määrittely ja käyttö

package v6_eta;

import java.util.Scanner;

// Taulukon määrittely ja käyttö

/**
* @author ark
* @version 0.13
* @task 1c-120306
*
* Huom. tehtävissä oletetaan käytettävän metodeita!
*
* Tehtävä 1 a) Toteuta luokka Numerotaulukko, joka pyytää käyttäjältä 10
* desimaalilukua ja tulostaa luvut päinvastaisessa järjestyksessä. Luokan
* attribuuttina on taulukko, johon pyydetyt luvut tallennetaan. Lukujen
* pyytäminen tapahtuu metodissa pyydaLuvut ja tulostaminen metodissa
* tulostaLuvut.
*
* b) Lisää edelliseen luokkaan metodi lajittele, joka lajittelee taulukon
* alkiot laskevaan järjestykseen (suurimmasta pienimpään). Metodi
* noudattaa kuplalajittelua. Taulukon lajittelu tehdään lukujen
* pyytämisen jälkeen ennen lukujen tulostamista.
*
* c) Lisää luokkaan Numerotaulukko metodi etsi, joka etsii tietyn
* desimaaliluvun taulukosta ja palauttaa totuusarvon luvun löytymisestä.
* Etsittävä luku pyydetään käyttäjältä. Ohjelma ilmoittaa löytyikö luku
* vai ei.
*/

public class Numerotaulukko_1c {

private Scanner input = new Scanner(System.in);

private void run() {
boolean loytyyko;
int taulukonKoko = 3; // pienempi taulukko testausta varten))
double[] desimaalitTaulukko = pyydaLuvut(taulukonKoko);

loytyyko = etsi(desimaalitTaulukko);
tulostaHaunTulos(loytyyko);

tulostaLuvut(desimaalitTaulukko);

}

private void tulostaHaunTulos(boolean loytyyko) {
if (loytyyko == true)
System.out.println("Syöttämäsi luku löytyy taulukosta!");
else
System.out.println("Lukua ei löytynyt!");

}

private boolean etsi(double[] desimaalitTaulukko) {
boolean onko = false;
double haettavaLuku;
System.out.print("Syötä etsittävä luku: ");
haettavaLuku = input.nextDouble();

if (desimaalitTaulukko != null) {
for (int i = 0; i < desimaalitTaulukko.length; i++) {
if (desimaalitTaulukko[i] == haettavaLuku)
onko = true;
}
}

return onko;
}

// tulostaa talennetut luvut päinvastaisessa järjestyksessä:
private void tulostaLuvut(double[] taulu) {
for (int i = taulu.length - 1; i >= 0; i--) {
System.out.print(taulu[i] + "\t");
}
}

// pyytää 10 desimaaleja ja tallentaa ne taulukkoon
private double[] pyydaLuvut(int koko) {
double[] taulu = new double[koko];
for (int i = 0; i < koko; i++) {
System.out.print("Anna " + (i + 1) + ". desimaaliluku: ");
taulu[i] = input.nextDouble();
}
return taulu;
}

public static void main(String[] args) {
Numerotaulukko_1c olio = new Numerotaulukko_1c();
olio.run();
}
}
Advertisements

Comments are closed.

%d bloggers like this: