• Nie Znaleziono Wyników

W6 – Tablice statyczne

N/A
N/A
Protected

Academic year: 2021

Share "W6 – Tablice statyczne"

Copied!
12
0
0

Pełen tekst

(1)

Podstawy

programowania I

Wykład nr 6 Tablice statyczne

autor: dr inż. Michał Łabowski

▪ michal.labowski@wat.edu.pl

▪ www.mlabowski.wel.wat.edu.pl

wersja 1.0

(2)

definicja Tablice:

• złożony typ danych (tablica jest tworzona na bazie innego typu)

• zbiór elementów tego samego typu, zajmujący ciągły obszar pamięci (elementy zapisywane są w pamięci jeden po drugim)

• deklaracja tablicy składa się z 3 elementów:

typ nazwa_tablicy[liczba_elem];

przykład – tablica 1000 elementów typu float o nazwie pomiary:

float pomiary[1000];

Numeracja elementów tablicy rozpoczyna się od zera!

Definiując w programie zmienne: float pomiary[5], float obwod_2, float obwod_1 ich reprezentacja w pamięci komputera może wyglądać w sposób następujący:

obwod_1

pomiary[0] pomiary[1] pomiary[2] pomiary[3] pomiary[4]

obwod_2

(3)

definicja

3

W przypadku tablic statycznych rozmiar tablicy musi być liczbą całkowitą, dodatnią i znaną w momencie kompilacji (co oznacza, że nie można go określić dopiero w trakcie działania programu, rozmiar zadajemy z góry).

Przykłady definicji tablic:

char litery[10];  tablica 10 elementów typu char o nazwie litery int liczby[5];  tablica 5 elementów typu int o nazwie liczby

Numeracja elementów tablicy:

• zaczyna się od zera

• tablica N-elementowa ma elementy o indeksach od 0 do N – 1,

• próba wpisania czegoś do nieistniejącego elementu o indeksie N nie wygeneruje błędu, spowoduje zniszczenie w pamięci czegoś, co znajdowało się w pamięci bezpośrednio za tablicą

tab[0] tab[1] tab[2] tab[3] inna_zmienna

element tab[4] nie istnieje, zatem wpisanie czegoś do tab[4] nadpiszę wartość zmiennej inna_zmienna

float tab[4];

0 1 2 3 indeksy

Element pierwszy

Element drugi

Element

trzeci Element

czwarty

(4)

inicjalizacja tablic Inicjalizacja zmiennej to nadanie jej początkowych wartości w momencie jej definiowania (tworzenia).

Tablica zdefiniowana jako zmienna globalna inicjowana jest zerami, tablica lokalna zawiera przypadkowe wartości.

Nr linii Opis

6 tablica 4 elementów typu int, o nazwie wyniki, w nawiasach klamrowych podane są wartości kolejnych elementów tablicy, zatem wyniki[0] = 2, wyniki[1] = 5 itd.

7 tablica 10 elementów typu int, w nawiasach klamrowych jest za mało

liczb, zatem żądane wartości początkowe zostaną nadane dwóm

pierwszym elementom tablicy, reszta zainicjowana zostanie zerami.

(5)

dostęp do elementów tablicy

5

Uzyskiwanie wartości przechowywanej w i-tym elemencie tablicy – w nawias kwadratowy wpisujemy numer elementu. Przypisanie tej wartości do zmiennej:

zmienna = tab[i];

Oczywiście wcześniej należy zdefiniować tę zmienną i tablicę, zmienna i elementy tablicy powinny być tego samego typu.

Przypisanie wartości do i-tego elementu tablicy – w nawias kwadratowy wpisujemy numer elementu:

tab[i] = wartosc;

Zadanie. Napisz program, który utworzy statyczną tablicę o nazwie tab, 11

elementów typu int, za pomocą pętli for przypisze każdemu i-temu elementowi

wartość 10 * i, za pomocą kolejnej pętli for wyświetli wartość każdego i-tego

elementu tablicy (treść komunikatu: Element nr … ma wartość …). Numer elementu

wyświetl w polu o szerokości 2 znaków, zaś jego wartość w polu o szerokości 3

znaków.

(6)

dostęp do elementów tablicy

Nr linii Opis

3 dyrektywa preprocesora powodująca zastąpienie w kodzie tekstu

ROZMIAR przez wartość 11 – zyskujemy elastyczność zmiany tej wartości

(7)

dostęp do elementów tablicy

7

Nr linii Opis

11 początek pętli for, licznik pętli (iterator) zmienia się od 0 do ROZMIAR-1 (dla i równego ROZMIAR warunek i < ROZMIAR nie jest spełniony, zatem ostatnia poprawna wartość i to 99), po każdym obiegi zmienna i jest inkrementowana, co pozwala przejść do kolejnego elementu tablicy

13 przypisanie i-temu elementowi tablicy wartości 10 * i

16 pętla for wykorzystana do wyświetlenia wartości elementów tablicy

18-19 Wypisanie wartości elementu tab[i]

(8)

tablice dwuwymiarowe Tablica dwuwymiarowa to tablica jednowymiarowa, której elementami są tablice jednoelementowe. Przykładowa tablica o 4 wierszach i 3 kolumnach (jest to tablica 4-elementowa, której elementy są tablicami 3-elementowymi) – int tab[4][3]:

tab[0][0] tab[0][1] tab[0][2]

tab[1][0] tab[1][1] tab[1][2]

tab[2][0] tab[2][1] tab[2][2]

tab[3][0] tab[3][1] tab[3][2]

• składnia: typ nazwa_tablicy[liczba_wierszy][liczba_kolumn]

• inicjalizacja tablicy dwuwymiarowej:

wiersz nr 0 wiersz nr 1

wiersz nr 2 wiersz nr 3

kolumna nr 0 kolumna nr 1 kolumna nr 2

(9)

tablice dwuwymiarowe

9

Dostęp do elementu w i-tym wierszu oraz j-tej kolumnie tablicy dwuwymiarowej:

• zapis:

tab[i][j] = wartość; np. tab[0][4] = 5;

interpretacja: przypisanie wartości 5 elementowi w zerowym wierszu i czwartej kolumnie tablicy.

• odczyt:

zmienna = tab[i][j]; np. int wyn = tab[0][4];

interpretacja: odczyt wartości przechowywanej w elemencie tablicy znajdującym się w zerowym wierszu i czwartej kolumnie i przypisanie tej wartości zmiennej wyn.

Zadanie 2. Utwórz tablicę 3x4 elementów typu int i przypisz kolejnym jej

elementom wartości będące wynikiem iloczynu numeru aktualnego wiersza i

aktualnej kolumny. Wyświetl rezultaty w formie:

(10)

tablice dwuwymiarowe

Nr linii Opis

7 definicja tablicy o nazwie tab, elementów typu int, posiadającej 4 wiersze i 3 kolumny.

9-17 Pętla for odpowiedzialna za przetwarzanie wierszy

(11)

tablice dwuwymiarowe

11

Nr linii Opis

11-15 pętla for odpowiedzialna za przetwarzanie kolumn dla danego wiersza.

Pęta ta wykonuje się dla każdego wiersza (i) od początku do końca (tzn.

przetwarza kolumny o numerach od j = 0, do j = 2).

14 Wyświetlanie wartości elementu zakończonej znakiem tabulacji poziomej.

16 Po zakończeniu przetwarzania wszystkich kolumn dla danego wiersza,

przejdź do nowej linii

(12)

Literatura:

[1] Grębosz J., Opus Magnum C++, Helion, Gliwice, 2018

[2] Prata S., Język C++ Szkoła programowania, Helion, Gliwice, 2013

[3] Prata S., Język C Szkoła programowania, Helion, Gliwice, 2012

Cytaty

Powiązane dokumenty

Uruchom program, sprawdź efekt podania wartości, która nie występuje w tablicy, wartości występującej w tablicy oraz efekt niepoprawnego podania liczby.. catch z

[r]

Porównać efektywność oby dwóch wariantów (czas działania, rozmiar kodu, czas napisania programu).. Wnioski dołączyć

Napisz program, który utworzy statyczną tablicę o nazwie tab, 11 elementów typu int, za pomocą pętli for przypisze każdemu i-temu elementowi wartość 10 * i, za pomocą

► możemy w nawiasach klamrowych podać kolejne wartości, oddzielając je od siebie przecinkami (liczba elementów w tablicy równa jest iloczynowi zadeklarowanych przez

szkoicy z.ak|adu wychowawczcgo d|a ch|opców tworzą z'uklgty krt1g klęsk i fusct,nacji 1lotlltlścią Zespolcni w dziclc upokazania kolegi |n|odziońcy zdają się

Pokaż przebieg algorytmów wyszukiwania sekwencyjnego (indeks), binarnego z powtórzeniami (kolejne przedziały) oraz bez powtórzeń (kolejne przedziały) przy

• Ponieważ tab może być przekonwertowane do wskaźnika wskazującego na pierwszy element, więc wyrażenie *tab jest niczym innym jak nazwą pierwszego elementu tablicy. A