Powtórzenie informacji o tablicach

Tablica jednowymiarowa

Tablica jednowymiarowa jest uporządkowanym zbiorem elementów tego samego typu. Elementy tablicy są numerowane (indeksowane). Pierwszy element ma numer 0.

Przykład tablicy jednowymiarowej, przechowującej 10 liczb całkowitych z przedziału 1, 10:

Linia 1. otwórz nawias kwadratowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 zamknij nawias kwadratowy.

Więcej na temat tablic jednowymiarowych znajdziesz w e‑materiale: Tablice jednowymiaroweP2NVb1Ot0Tablice jednowymiarowe.

Tablica wielowymiarowa

Tablica wielowymiarowa to tablica tablic, czyli tablica, której elementami są inne tablice. To, w jakim stopniu te tablice są „zagnieżdżone”, ma wpływ na wymiar danej tablicy. I tak np. tablica dwuwymiarowa to tablica, której elementami są tablice jednowymiarowe, tablica trójwymiarowa to tablica, której elementami są tablice dwuwymiarowe itd.

Oto ułożenie elementów w tablicy dwuwymiarowej dane o rozmiarze 4 na 10:

Linia 1. 0 1 2 3 4 5 6 7 8 9. Linia 2. 0 otwórz nawias kwadratowy otwórz nawias kwadratowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 zamknij nawias kwadratowy przecinek. Linia 3. 1 otwórz nawias kwadratowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 zamknij nawias kwadratowy przecinek. Linia 4. 2 otwórz nawias kwadratowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 zamknij nawias kwadratowy przecinek. Linia 5. 3 otwórz nawias kwadratowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 zamknij nawias kwadratowy zamknij nawias kwadratowy.

W każdej komórce głównej tablicy jednowymiarowej (4-elementowej) znajduje się kolejna tablica jednowymiarowa (10-elementowa).

Nawigacja po takiej tablicy wygląda następująco:

  1. Podajemy numer wiersza, czyli decydujemy, którą zagnieżdżoną tablicę chcemy wybrać.

  2. Następnie podajemy numer kolumny, czyli wybieramy konkretną komórkę (przechowywaną wartość) wybranej tablicy zagnieżdżonej.

Podając dane[3][2], wybieramy elementy znajdujące się w wierszu o indeksie trzy oraz kolumnie o indeksie dwa. W przypadku przedstawionej tablicy będzie to wartość 3.

Tworzenie tablic w języku Java

Tablica jednowymiarowa

Krótkie przypomnienie, jak tworzymy tablice w języku Java:

Linia 1. public class Main. Linia 2. otwórz nawias klamrowy. Linia 3. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły. Linia 4. otwórz nawias klamrowy. Linia 5. prawy ukośnik asterysk Oto schemat tworzenia tablicy jednowymiarowej. Linia 6. przechowującej 10 liczb całkowitych asterysk prawy ukośnik. Linia 8. int otwórz nawias kwadratowy zamknij nawias kwadratowy tablicaJednowymiarowa znak równości new int otwórz nawias kwadratowy 10 zamknij nawias kwadratowy średnik. Linia 9. zamknij nawias klamrowy. Linia 10. zamknij nawias klamrowy.

Tablica dwuwymiarowa

Jak już wspomnieliśmy, tablica dwuwymiarowa to technicznie tablica jednowymiarowa przechowująca inne tablice jednowymiarowe. Stwórzmy zatem tablicę dwuwymiarową, w której znajduje się sześć tablic przechowujących po pięć elementów.

Sposób I:

Linia 1. public class Main. Linia 2. otwórz nawias klamrowy. Linia 3. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły. Linia 4. otwórz nawias klamrowy. Linia 5. int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy tablicaDwuwymiarowa znak równości new int otwórz nawias kwadratowy 6 zamknij nawias kwadratowy otwórz nawias kwadratowy 5 zamknij nawias kwadratowy średnik. Linia 6. zamknij nawias klamrowy. Linia 7. zamknij nawias klamrowy.

Sposób II:

Linia 1. public class Main. Linia 2. otwórz nawias klamrowy. Linia 3. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły. Linia 4. otwórz nawias klamrowy. Linia 5. int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy tablicaDwuwymiarowa znak równości new int otwórz nawias kwadratowy 6 zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy średnik prawy ukośnik prawy ukośnik tutaj deklarujemy przecinek że tablica główna ma przechowywać 6 tablic podrzędnych. Linia 7. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny znak równości tablicaDwuwymiarowa kropka length minus 1 średnik i plus plus zamknij nawias okrągły. Linia 8. otwórz nawias klamrowy. Linia 9. tablicaDwuwymiarowa otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości new int otwórz nawias kwadratowy 5 zamknij nawias kwadratowy średnik prawy ukośnik prawy ukośnik tutaj deklarujemy przecinek że każda tablica podrzędna ma docelowo przechowywać 5 elementów. Linia 10. zamknij nawias klamrowy. Linia 11. zamknij nawias klamrowy. Linia 12. zamknij nawias klamrowy.

Oba zaprezentowane sposoby są poprawne. W dalszej części materiału będziemy korzystać ze sposobu I.

W takim przypadku tablica prezentuje się następująco (w języku Java jej wartości są domyślnie ustawiane na 0):

Linia 1. 0 1 2 3 4. Linia 2. 0 otwórz nawias kwadratowy otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek. Linia 3. 1 otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek. Linia 4. 2 otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek. Linia 5. 3 otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek. Linia 6. 4 otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek. Linia 7. 5 otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy zamknij nawias kwadratowy.

Przykładowe zadanie

Stwórzmy tablicę dwuwymiarową o wymiarach m × n i wypełnijmy ją kolejnymi liczbami naturalnymi. Wartości m oraz n podaje użytkownik.

Na początek utworzymy odpowiedni szkielet tablicy.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Main. Linia 4. otwórz nawias klamrowy. Linia 5. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły. Linia 6. otwórz nawias klamrowy. Linia 7. Scanner scanner znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 8. int m znak równości Integer kropka parseInt otwórz nawias okrągły scanner kropka next otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik. Linia 9. int n znak równości Integer kropka parseInt otwórz nawias okrągły scanner kropka next otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik. Linia 11. int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy tablicaLiczb znak równości new int otwórz nawias kwadratowy m zamknij nawias kwadratowy otwórz nawias kwadratowy n zamknij nawias kwadratowy średnik. Linia 12. zamknij nawias klamrowy. Linia 13. zamknij nawias klamrowy.

Tablica jest już utworzona, więc możemy teraz przypisać do niej wartości liczbowe (używamy do tego zagnieżdżonej pętli for).

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Main. Linia 4. otwórz nawias klamrowy. Linia 5. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły. Linia 6. otwórz nawias klamrowy. Linia 7. Scanner scanner znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 8. int m znak równości Integer kropka parseInt otwórz nawias okrągły scanner kropka next otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik. Linia 9. int n znak równości Integer kropka parseInt otwórz nawias okrągły scanner kropka next otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik. Linia 11. int otwórz nawias kwadratowy zamknij nawias kwadratowy otwórz nawias kwadratowy zamknij nawias kwadratowy tablicaLiczb znak równości new int otwórz nawias kwadratowy m zamknij nawias kwadratowy otwórz nawias kwadratowy n zamknij nawias kwadratowy średnik. Linia 12. int liczba znak równości 0 średnik. Linia 14. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny znak równości tablicaLiczb kropka length minus 1 średnik i plus plus zamknij nawias okrągły. Linia 15. otwórz nawias klamrowy. Linia 16. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny znak równości tablicaLiczb otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka length minus 1 średnik j plus plus zamknij nawias okrągły. Linia 17. otwórz nawias klamrowy. Linia 18. tablicaLiczb otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości liczba średnik. Linia 19. liczba plus plus średnik. Linia 20. zamknij nawias klamrowy. Linia 21. zamknij nawias klamrowy. Linia 22. zamknij nawias klamrowy. Linia 23. zamknij nawias klamrowy.
Ważne!

Zapis liczba++ oznacza skrócony zapis inkrementacjiinkrementacjainkrementacji.

Stworzona tablica dla m = 5 oraz n = 5 prezentuje się następująco:

Linia 1. 0 1 2 3 4. Linia 2. 0 otwórz nawias kwadratowy otwórz nawias kwadratowy 0 przecinek 1 przecinek 2 przecinek 3 przecinek 4 zamknij nawias kwadratowy przecinek. Linia 3. 1 otwórz nawias kwadratowy 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 zamknij nawias kwadratowy przecinek. Linia 4. 2 otwórz nawias kwadratowy 10 przecinek 11 przecinek 12 przecinek 13 przecinek 14 zamknij nawias kwadratowy przecinek. Linia 5. 3 otwórz nawias kwadratowy 15 przecinek 16 przecinek 17 przecinek 18 przecinek 19 zamknij nawias kwadratowy przecinek. Linia 6. 4 otwórz nawias kwadratowy 20 przecinek 21 przecinek 22 przecinek 23 przecinek 24 zamknij nawias kwadratowy zamknij nawias kwadratowy.
Problem 1

Napisz program, który doda do siebie dwie tablice o rozmiarze m × n wypełnione liczbami całkowitymi. Przetestuj jego działanie dla tablicy o 4 kolumnach i 3 wierszach.

Specyfikacja problemu:

Dane:

  • n – liczba kolumn; liczba naturalna

  • m – liczba wierszy; liczba naturalna

  • a – tablica liczb całkowitych o n kolumnach i m wierszach

  • b – tablica liczb całkowitych o n kolumnach i m wierszach

Wynik:

Na standardowym wyjściu wyświetlona jest tablica będąca sumą tablic ab.

Ważne!

W filmie z rozwiązaniem zadania pada pojęcie macierz. W matematyce macierzą nazywamy układ liczb zapisany w postaci prostokątnej tablicy. Dodawanie macierzy wykonuje się dla macierzy o tych samych wymiarach. Polega ono na dodaniu do siebie elementów dwóch macierzy o tych samych indeksach. 

R1XV4mkzkVqUa
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Polecenie 1

Porównaj swoje rozwiązanie z przedstawionym w filmie.

RdW4FUz4mwmLR
Film nawiązujący do treści materiału: Realizacja tablic dwuwymiarowych w języku Java.
R11xn07Yqw6tO

Przycisk do pobrania pliku TXT z kodem źródłowym do utworzenia macierzy wypełnioną danymi.

Plik TXT o rozmiarze 734.00 B w języku polskim
R1YYqXHjasgpj

Przycisk do pobrania pliku TXT z kodem źródłowym do dodania do siebie dwóch macierzy.

Plik TXT o rozmiarze 1.26 KB w języku polskim

Słownik

inkrementacja
inkrementacja

operacja powodująca zwiększenie danej wartości o 1; przeciwieństwem inkrementacji jest dekrementacja, czyli zmniejszenie wartości o 1