Ó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;
}
}
@grzegg
Leave a Reply
You must be logged in to post a comment.