1.7 Kurs „Arduino Łopatologicznie” Tablice danych

Aby dopełnić wiedzy o strukturach wykorzystywanych w programowaniu powinieneś poznać Tablice. Pozwalają nam one na przechowywanie w jednym miejscu zmiennych tego samego typu. Można sobie je wyobrazić jako szuflady z przegródkami gdzie umieszczamy posegregowane zmienne.

Ułatwiają one operacje na liczbach, dzięki nim łatwiej będzie przykładowo obliczyć średnią z wartości umieszczonych wewnątrz tablicy lub zmienić je hurtowo. Jeśli wartości te były by zapisane w osobnych zmiennych takie operacje nie były by wygodne do wykonania.

Jak jest zbudowana tablica?

Pamiętaj, że tablica przechowuje dane zawsze tego samego typu, posiada indeksy, których numeracja zaczyna się od zera – indeksy odpowiadają przegródką w naszej szufladzie. Każda przegródka może przechowywać dane. Aby stworzyć tablicę należy napisać jaki typ danych będzie przechowywać kolejno nazwę jaką nadamy tablicy oraz nawiasy kwadratowe: int wiekUzytkownikow []

To właśnie nawiasy kwadratowe informują nas o tym, że zmienna zawiera tablicę.

wygląd tablicy zawierającej liczby typu int

Zerknij na powyższy obrazek, pomaga on nam wyobrazić sobie jak skonstruowana jest tablica 10 elementowa, do której wpisano liczby co 10 z zakresu od 10 do 100.

Aby stworzyć taka tablicę i wpisać do niej powyższe dane należy umieścić w nawiasach klamrowych wartości oddzielone przecinkami:

int wiekUzytkownikow [] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100};

Aby uzyskać dostęp do poszczególnych pozycji wpisanych w tablicę należy posługiwać się indeksem cały czas pamiętając, że pierwszy element ma numer indeksu 0!

Aby wypisać w Serial Monitorze liczbę 10, która ma indeks 0 powinniśmy napisać: Serial.println( wiekUzytkownikow[0] );

Teraz napiszmy pętle, w której wypiszemy wszystkie elementy naszej tablicy.

int wiekUzytkownikow [] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100};

void setup() {
Serial.begin(9600);

for (int i = 0; i < 10; i++){
Serial.println( wiekUzytkownikow[i] );
}

}

void loop() {

}

Aby zmodyfikować wybrane wartości w naszej tablicy przykładowo zmienić wartość 40 na 45, powinniśmy wykonać następujące polecenie:

wiekUzytkownikow[3] = 45;

Rezerwacja pamięci a dziwne wyniki

Musisz wiedzieć, że program przechowuje dane w pamięci, która jest dobrze zorganizowana a nasze tablice to nic innego jak zarezerwowane kolejne komórki pamięci. Jeśli zdefiniujemy tablice posiadającą 10 elementów jak w naszym przypadku zostanie zarezerwowane 10 kolejnych komórek, które zapełniliśmy danymi. Co się stanie jeśli zechcesz uzyskać dostęp do kolejnych komórek pamięci wypisując nieistniejący element tablicy przykładowo wiekUzytkownika[13] ? Nie ma problemu arduino pozwoli Ci uzyskać dostęp do tej części pamięci która znajduje się poza obszarem tablicy, a wynikiem może być dosłownie wszystko. Może to być przykładowo jakaś losowa liczba, która tkwiła w tej komórce jako pozostałość po innej operacji. Może to spowodować nieprawidłowe wyniki działania napisanego programu, dlatego należy zwracać szczególną uwagę podasz operacji na tablicach kiedy zaczynamy swoją przygodę z programowaniem. Program może uszkodzić również napisanie pamięci poza elementem tablicy jak wiekUzytkownika[15] = 0; takim sposobem nadpiszesz jakąś część pamięci wartością 0 przez to program może się dziwnie zachowywać lub zwracać nieprzewidywalne wyniki.

Zadanie domowe Tablice:

  • 1. Wpisz do tablicy int wyliczanka następujące liczby: 3 , 6 , 8, 11, 12
  • 2. Wypisz w Serial Monitorze tablice wyliczanka w odwrotnej kolejności czyli : 12, 11, 8, 6, 3
  • 3. Wypisz w Serial Monitorze sumę wszystkich elementów tablicy.
  • ZADANIE ZAAWANSOWANE:
  • 1.wpisz do tablicy następujące liczby 3, 3, 6, 7,8, 10 ,7 ,12 następnie wypisz tylko unikalne liczby znajdujące się w tablicy

Powodzenia w wykorzystaniu nowej struktury jaką są tablice.

Jeśli jeszcze nie polubiłeś naszego Facebooka zrób to koniecznie!

https://www.facebook.com/elektrowebpl/

Dzięki temu dowiesz się o kolejnym wpisie naszego kursu!

Do zobaczenia

<——– Lekcja 6 Lekcja8 ——–>

Odpowiedz

Twój adres e-mail nie zostanie opublikowany