Szósta prezentacja do kursu „Wstęp do programowania„.
Treść: Tablice cz. I – tablice jednowymiarowe, tworzenie, wypełnianie wartościami, pobieranie 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.
Tworzenie tablic z imionami
Różne sposoby (mniej i bardziej efektywne) tworzenia, wypełniania i odwoływania się do wartości w tablicach przechowujących elementy typu String.
public class Tablica {
public static void main(String[] args) {
// Deklarowanie i inicjowanie tablicy o 10 polach przechowującej elementy typu String
String[] studenci = new String[10];
// "ręczne" wypełnianie tablicy imionami - mało efektywne
studenci[0] = "Marcin";
studenci[1] = "Maria";
studenci[2] = "Anna";
studenci[3] = "Małgorzata";
studenci[4] = "Andrzej";
studenci[5] = "Agnieszka";
studenci[6] = "Paulina";
studenci[7] = "Jagoda";
studenci[8] = "Izabela";
studenci[9] = "Robert";
//Deklaracja i od razu wypełnienie wartościami drugiej tablicy
String[] studenci2 = {"Marcin", "Maria", "Anna", "Małgorzata", "Andrzej", "Agnieszka", "Paulina", "Jagoda", "Izabela", "Robert"};
//wypisanie imion z tablicy - mało efektywne
System.out.println("Studenci: "+studenci[0]+", "+studenci[1]+
", "+studenci[2]+", "+studenci[3]+", "+studenci[4]+", "+studenci[5]+
", "+studenci[6]+", "+studenci[7]+", "+studenci[8]+", "+studenci[9]);
// Wypisanie imion z tablicy - bardziej efektywne
System.out.print("Studenci: ");
for (String imie : studenci2) {
System.out.print(imie+", ");
}
}
}
Tablice przechowujące różnego rodzaju elementy
Tworzenie tablic przechowujących elementy różnego typu i sprawdzanie jakie mają wartości domyślne.
public class TworzenieTablic {
public static void main(String[] args) {
//Tworzymy tablicę dla elementów typu String i sprawdzamy wartość domyślną
String[] imiona = new String[10];
System.out.println("imiona[2] = "+imiona[2]);
//Tworzymy tablicę dla elementów typu int i sprawdzamy wartość domyślną
int[] liczbyInt = new int[10];
System.out.println("liczbyInt[2] = "+liczbyInt[2]);
//Tworzymy tablicę dla elementów typu double i sprawdzamy wartość domyślną
double[] liczbyDouble = new double[10];
System.out.println("liczbyDouble[2] = "+liczbyDouble[2]);
//Tworzymy tablicę dla elementów typu boolean i sprawdzamy wartość domyślną
boolean[] wartosciBoolean = new boolean[10];
System.out.println("wartosciBoolean[2] = "+wartosciBoolean[2]);
}
}
Dłuższe tablice z liczbami
Wypełnianie w pętli tablicy elementami typu int oraz różne sposoby odwoływania się do zawartości tabeli.
public class WypelnianieTablic {
public static void main(String[] args) {
int[] tablica = new int[100];
// Uzyskanie długości tablicy
System.out.println("Tablica ma "+tablica.length+" komórek");
// Wypełnianie tablicy liczbami od 0 do 99
for (int i=0; i<tablica.length; i++) {
tablica[i]=i;
}
// Sprawdzamy zawartość wybranej komórki
System.out.println("tablica[10] to "+tablica[10]);
// Wypisanie wartości wszystkich komórek
for (int i=0; i<tablica.length; i++) {
System.out.print(tablica[i]+", ");
}
System.out.println();
// Wypisanie zawartości tabeli po 10 liczb w rzędzie, zawsze dwucyfrowych (np. 08)
for (int i=0; i<tablica.length; i++) {
// jeśli liczba jednocyfrowa, dodajemy 0 przed liczbą
if (i<10) System.out.print("0"+tablica[i]+", ");
else System.out.print(tablica[i]+", ");
// jeśli większe niż 0 i pełna dziesiątka
// (czyli dzielenie przez 10 zwraca 0) wstawiamy nową linię
if (i>0 &amp;amp;amp;amp;&amp;amp;amp;amp; (i+1)%10==0) System.out.println();
}
// Użycie pętli foreach do wypisania wartości tablicy
for (int l : tablica) {
System.out.print(l+" ");
}
}
}
Rozwiązanie zadania
Treść zadania:
- Utwórz tablicę 10-elementową zawierającą dowolne liczby całkowite, nieujemne. Napisz kod który znajduje w tej tablicy największą liczbę.
- Dodatkowo: zmodyfikuj program tak, aby po uruchomieniu użytkownik wprowadzał liczby, które są następnie zapisywane w tabeli, a następnie program wyszukiwał największą z nich.
- Dodatkowo: zmodyfikuj program tak, aby użytkownik na początku podał, ile liczb chce wpisać i tyle liczb powinien program od użytkownika przyjąć.
import java.util.Scanner;
public class Najwieksza {
public static void main(String[] args) {
Scanner skaner = new Scanner(System.in);
System.out.println("Podaj ile liczb chcesz wpisać ");
// Pobranie długości tablicy od użytkownika
String liczbaLiczb = skaner.nextLine();
// Przekształcamy (parsujemy) podaną wartość, która
// jest łańcuchem snaków (String) na liczbę typu int
int dlTabeli = Integer.parseInt(liczbaLiczb);
// Tworzymy tabelę o zadanej długości
int[] liczby = new int[dlTabeli];
// Wędrujemy to tablicy wpisując do komórek kolejne
// liczby podawane przez użytkownika
// i - to numer bierzącej komórki
for (int i=0; i<liczby.length; i++) {
System.out.println("Podaj "+ (i+1) +" liczbę z "+dlTabeli);
String liczba = skaner.nextLine();
// wpisanie wartości do komórki i w tabeli "liczby"
liczby[i] = Integer.parseInt(liczba);
}
int max = -1;
// Wędrujemy ponownie po tablicy, tym razem pobierając
// wartości komórek i przypisując je do zmiennej "l"
for (int l : liczby) {
// Jeśli bierząca wartość komórki jest > niż największa
// z dotychczasowych liczb (przecowywana w zmiennej "max")...
if (l > max) {
//... to wpisz bierzącą wartość komórki do zmiennej max
max = l;
}
}
// Na końcu drukujemy największą liczbę na ekranie
System.out.println("Największa liczba to: "+max);
}
@grzegg
Spoko poradnik :D