piątek, 11 listopada 2016

tablice w c++

Tym razem niestety nie będzie wideo tutoriala tylko tekstowy poradnik.

Jest to spowodowane brakiem czasu. Mam nadzieję że będzie równie użyteczny.

Temat musimy zacząć od tego co to właściwie jest tablica, i od kilku pytań:

Czy została wymyślona po to aby maltretować przyszłych informatyków? Nie, wręcz przeciwnie, czyli po to aby im życie ułatwić.

Czy w c++ można stworzyć wiele zmiennych jednego typu? Oczywiście że można. Można użyć literek a,b,c … aż do z. A co jeżeli potrzebujemy ich nie kilka a kilka naście? No to aa,ab,ac,…. itd. No dobra, a jak się w tych zmiennych połapiemy? Po wprowadzeniu  40 takich zmiennych nikt nie będzie wiedział która do czego służyła. 

Ok przejdę do sedna sprawy. A co zrobimy jeżeli tych zmiennych potrzebujemy kilka set tysięcy???????

No i zaczyna się ‘mały’ problem. Ale bez obaw tu pomogą nam tablice.
Tablice służą do przechowywania wielu zmiennych tego samego typu pod tą samą nazwą (prawie tą samą nazwą).

Acha i to co jest podkreślone to nie jest jakaś regułka z encyklopedii czy z jakiegoś opisu języka c++, ani nawet z jakiegoś mądrego podręcznika. Nie traktujcie mnie jako wyrocznie. Ale tak to tłumaczyłem swoim uczniom i dzięki tej regułce lepiej rozumieli ten temat.

Ok ale dosyć gatki szmatki przejdźmy do meritum sprawy.
Aby zadeklarować tablicę należy podać typ przechowywanych zmiennych, nazwę tablicy i ilość elementów. Przykład:
            int tab[5]
łatwo się domyśleć że tablica nazywa się ‘tab’ i przechowuje 5 elementów typu int.

Możemy też zrobić tak:
1) int tab[5] = {11,12,13,14,15};
Albo tak:
2) int tab[5];
    int tab[0]=11;
    int tab[1]=12;
    int tab[2]=13;
    int tab[3]=14;
    int tab[4]=15;

zarówno przykład pierwszy jak i drugi zadziałają z takim samym efektem, ale są to sposoby raczej mało efektywne przy tych naszych kilku set tysiącach elementów.

// UWAGA!!! Tutaj należy zwrócić uwagę na pewną bardzo nurtującą sprawę:
// Dlaczego pierwszy element jest pod adresem ‘0’ a nie pod adresem ‘1’.
// Albo:
// Dlaczego ostatni element jest pod adresem o jeden mniejszym niż liczba elementów.
// Odpowiedź jest chyba kluczowa do lepszego zrozumienia tablic.
// Adres to nie numer kolejnego elementu, tylko przesunięcie od pierwszego elementu.


Lepiej będzie do tego celu wykorzystać pętlę for, i to jest nasz sposób 3(ten najważniejszy):
3)   int tab[5];
            for (int i=0;i<5;i++)
            {
             tab[i]=11+i;
            }
Aby tablicę wyświetlić po prostu kopiujemy naszą pętlę for ale zamiast zmieniać wartości poszczególnych elementów w tablicy po prostu je wyświetlamy. Czyli robimy tak:
            for (int i=0;i<5;i++)
            {
             cout <<tab[i]<<endl;
            }

Jeżeli są jakieś pytania proszę pisać w komentarzach. Postaram się odpowiedzieć i ewentualnie poprawić lub dodać cos do lekcji. :)
Poniżej całkowity kod tworzący tablicę i wyświetlający ją:

#include <iostream>

using namespace std;

int main()
{
            int tab[5];
            for (int i=0;i<5;i++)
            {
             tab[i]=11+i;
            }

            for (int i=0;i<5;i++)
            {
             cout<<tab[i];
            }

    return 0;
}