– To znowu ja. Zapomniałem coś Ci wyjaśnić. Opowiem Ci o zmiennych i adresowaniu pamięci. Nie będziemy zagłębiać się w ten temat, ale dobrze będzie, jeżeli cokolwiek zapamiętasz.

– Lubię Twoje podejście do lekcji: Jeżeli coś rozumiesz - świetnie. Jeżeli nic nie rozumiesz - w porządku.

– Miłości nie można narzucać. To oczywiste. Na Twojej planecie chyba też tak jest?

– Nie. Mamy inne podejście. Jeżeli chcesz, uczysz się; jeżeli nie chcesz, również się uczysz, tylko niechętnie.

– Co za zacofane podejście do nauczania! Przez to marnuje się dużo energii, czasu i osiąga kiepskie wyniki.

– Rzeczywiście tak jest. Ale nie rozmawiajmy o smutnych sprawach.

– OK. Wyobraź sobie Excela. Wszyscy znają Excela. Arkusz w Excelu składa się z komórek. Każda komórka ma swój unikalny identyfikator (A1, A2,…B1, B2). Jeżeli znasz identyfikator komórki, zawsze możesz zapisać tam jakąś wartość lub odczytać wartość, która jest tam przechowywana. Pamięć komputera jest zorganizowana w podobny sposób.

image-pol-01-25

– Jak dotąd wszystko rozumiem.

– Program i jego dane są podczas działania programu przechowywane w pamięci. Cała pamięć komputera jest podzielona na małe komórki lub bajty. Każda komórka ma przypisany unikalny identyfikator lub numer: 0, 1, 2, 3,… (liczby zaczynają się od 0). Jeśli znasz numer komórki, możesz zapisać w niej dane. Lub pobrać z niej dane. Niektóre komórki przechowują kod programu, tj. zestaw poleceń dla procesora. Inne przechowują dane używane przez program. Numer każdej komórki nazywamy jej adresem.

– Profesor opowiadał mi już o procesorze i komendach, ale bez szczegółów.

– Procesor wie, jak wykonywać komendy załadowane do pamięci. Prawie wszystkie polecenia procesora wyglądają mniej więcej tak: „weź dane z jakiejś komórki, zrób coś z nimi, wyślij wynik do innej komórki”. Łączymy setki prostych komend, aby uzyskać złożone i użyteczne komendy.

– Ale po co mi to wszystko?

– Kiedy w kodzie deklarowana jest zmienna, zostaje do niej przypisany fragment nieużywanej pamięci. Zazwyczaj jest to kilka bajtów. Deklaracja zmiennej wymaga wskazania, jakiego typu informacje będą w niej przechowywane: liczby, tekst czy może inne dane. Dla wygody do każdej zmiennej przypisywana jest unikalna nazwa.

– Czy to znaczy, że zmienna to nazwa, typ, część pamięci oraz wartość?

– To wszystkie te rzeczy połączone w jedno. Spójrz na te przykłady:

Kod Wyjaśnienie
1
String s;
Ta linia tworzy zmienną o nazwie s. Deklarujemy jej typ jako String, ponieważ będzie używana do przechowywania tekstu.
W tej samej funkcji lub klasie nie możemy zadeklarować innej zmiennej o takiej samej nazwie.
2
String s2 = "Jestem Diego";
Ta linia tworzy zmienną typu String o nazwie s2 i natychmiast przypisuje jej wartość "Jestem Diego".
3
int a;
Tutaj tworzymy zmienną o nazwie a. Jej typ danych odpowiada temu, co będzie w niej przechowywane. Typ danych int to skrót od integer, czyli liczby całkowitej.
4
int b = 4;
Tworzymy zmienną o nazwie b. Jej typ danych (int) służy do przechowywania liczb całkowitych. Do zmiennej natychmiast przypisywana jest wartość 4.

– Oto kilka zadań od Diego. Popracuj trochę nad nimi.