Twitter: @grzegg
Kategoria: java,

Java – metody (08)

Ósma prezentacja do kursu „Wstęp do programowania”.
Treść: Metody – metody, parametry, zwracane wartości

Ta strona jest częścią starego kursu Javy. Nowy kurs, pt. “Programowanie w Javie z elementami bioinformatyki dla poczatkujących”, jest znacznie rozszerzony i dostosowany fo Javy 8. Jego forma jest także znacznie bardziej przystępna dla korzystających wyłącznie z treści on-line. Dostępne materiały znajdziesz tutaj.


Aktualizacja (2012-04-25): Poprawiłem prezentację i kod klasy Statystyka, tak aby uwzględniały dane typu double.


Prosta metoda

Tworzenie i użycie metody łączącej dwa łańcuchy znaków.


public class Slowa {

	public static void main(String[] args) {
		String imie = "Adam";
		String nazwisko = "Słodowy";
		String imieOrazNazwisko = podajImieOrazNazwisko(imie, nazwisko);
		System.out.println(imieOrazNazwisko);

	}

	private static String podajImieOrazNazwisko(String slowo1, String slowo2) {
		String polaczone = slowo1+" "+slowo2;
		return polaczone;
	}
}

Zadanie

Program pobierający dane i wykonujące niektóre obliczenia dla podanych danych.


import java.util.Scanner;


public class Statystyka {


	public static void main(String[] args) {
		String opcja ="";
		double[] liczby = null;
		Scanner skaner = new Scanner(System.in);

		while (!opcja.equalsIgnoreCase("k")) {
			wyswietlMenu();
			opcja = skaner.nextLine();
			if (liczby==null && !opcja.equalsIgnoreCase("k")) liczby=wprowadzNoweDane();
			else if (opcja.equalsIgnoreCase("d")) liczby=wprowadzNoweDane();
			else if (opcja.equalsIgnoreCase("m")) podajNajmniejszaLiczbe(liczby);
			else if (opcja.equalsIgnoreCase("n")) podajNajwiekszaLiczbe(liczby);
			else if (opcja.equalsIgnoreCase("s")) System.out.println("Średnia arytmetyczna liczb to: "+podajSredniaArytmetyczna(liczby));
			else if (opcja.equalsIgnoreCase("r")) System.out.println("Suma liczb to: "+podajSumeLiczb(liczby));
			else if (opcja.equalsIgnoreCase("w")) System.out.println("Wariancja dla podanych liczb to: "+podajWariancje(liczby));
			else if (opcja.equalsIgnoreCase("a")) podajWszystko(liczby);
			else if (opcja.equalsIgnoreCase("k")) System.out.println("Koniec!");
			else System.out.println("Nie rozumiem, spróbuj ponownie");

		}

	}



	private static void wyswietlMenu() {
		System.out.println("Co chcesz zrobić?n" +
				"d - wprowadź nowe dane n" +
				"n - podaj największą liczbę n" +
				"m - podaj najmniejszą liczbę n" +
				"s - podaj średnią arytmetyczną n" +
				"r - podaj sumę liczb n" +
				"w - podaj wariancję n" +
				"a - podaj wszystkie powyższe n" +
				"k - koniec programu");
	}

	private static double[] wprowadzNoweDane() {
		Scanner skaner = new Scanner(System.in);
		System.out.println("Podaj ile liczb chcesz wpisać ");
		String liczbaLiczb = skaner.nextLine();
		int dlTabeli = Integer.parseInt(liczbaLiczb);
		double[] liczby = new double[dlTabeli];
		for (int i=0; i<liczby.length; i++) {		
			System.out.println("Podaj "+ (i+1) +" liczbę z "+dlTabeli);
			String liczba = skaner.nextLine();
			liczby[i] = Double.parseDouble(liczba);
		}
		return liczby;
	}
	private static void podajNajwiekszaLiczbe(double[] liczby) {
		double max = liczby[0];
		for (double l : liczby) {
			if (l > max) {
				max = l;
			}
		}
		System.out.println("Największa liczba to: "+max);		
	}


	private static void podajNajmniejszaLiczbe(double[] liczby) {
		double min = liczby[0];
		for (double l : liczby) {
			if (l < min) {
				min = l;
			}
		}
		System.out.println("Najmniejsza liczba to: "+min);
	}

	private static double podajSredniaArytmetyczna(double[] liczby) {
		double srednia = podajSumeLiczb(liczby)/liczby.length;
		return srednia;
	}
	private static double podajSumeLiczb(double[] liczby) {
		double sum = 0;
		for (double l : liczby) {
			sum=sum+l;
		}
		return sum;
	}



	private static void podajWszystko(double[] liczby) {
		podajNajmniejszaLiczbe(liczby);
		podajNajwiekszaLiczbe(liczby);
		System.out.println("Średnia arytmetyczna liczb to: "+podajSredniaArytmetyczna(liczby));
		System.out.println("Suma liczb to: "+podajSumeLiczb(liczby));
		System.out.println("Wariancja dla podanych liczb to: "+podajWariancje(liczby));

	}

	private static double podajWariancje(double[] liczby) {
		double wariancja;
		double srednia = podajSredniaArytmetyczna(liczby);
		double sum=0.0;
		for (double l : liczby) {
			sum=sum+(l-srednia)*(l-srednia);
		}
		wariancja = sum/(liczby.length-1);
		return wariancja;

	}

}


Leave a Reply