Twitter: @grzegg
Kategoria: java, Tagi: - .

Java – tablice cz. I (06)

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;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);
	}

1 comment to Java – tablice cz. I (06)

Leave a Reply