3. ZMIENNE
3.1 Typy zmiennych
Zmienne - miejsca w pamięci, przeznaczone do przechowania danych, których wartości mogą ulegać zmianie.
Zmienna ma nazwę, typ i adres.
Nazwa zmiennej, nadawana przez programistę służy do odwołań (komunikowania się) z odpowiednią daną. Jest nadawana przez programistę.
Typ zmiennej, określany przez programistę, wyznacza rozmiar pamięci zajmowany przez zmienną, sposób zerojedynkowego kodowania danej przechowywanej w obszarze zmiennej w tym obszarze oraz rodzaje operacji, jakie można wykonać na zmiennej.
Adres zmiennej, to numer początkowego bajtu danej zmiennej w pamięci. Adres jest przydzielany zmiennej automatycznie podczas kompilacji programu.
Standardowe typy proste Pascala
L.p. |
Nazwa typu |
Zakres wartości zmiennych |
Rozmiar zmiennej w bajtach |
Rodzaj przechowywanych danych |
1 |
Shortint |
-128 . . 127 |
1 |
Liczby całkowite |
2 |
Integer |
-32768 .. 32767 |
2 |
Liczby całkowite |
3 |
Longint |
-2 31 .. 2 31 - 1 |
4 |
Liczby całkowite |
4 |
Word |
0 .. 65535 |
2 |
Liczby całkowite dodatnie |
5 |
Byte |
0 .. 255 |
1 |
Liczby całkowite dodatnie |
6 |
Real |
Dodatnie lub ujemne wartości z zakresu: 2.9E-39 do 1.7E38 *) |
6 |
Liczby rzeczywiste |
7 |
Char |
#0 .. #255 **) |
1 |
Znaki ASCII |
8 |
Boolean |
false, true |
1 |
Wartości logiczne |
*) Zapis 2.9E-39 oznacza 2,9 ∙ 10 -39 .
**) Zapis #0 oznacza znak ASCII o numerze porządkowym 0
3.2. Niektóre formaty zmiennych
Formaty zmiennych typu Byte i Word
Przykład: Wartośc dziesiętna 189 zapisana jako zmienna
typu Byte i typu Word
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
215 |
214 |
213 |
212 |
211 |
210 |
29 |
28 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
Formaty zmiennych typu Shortint, Integer
Przykład: Liczba -109, zapamiętana w kodzie U2 jako zmienna typu Shortint i Integer
-27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
|
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
-215 |
214 |
213 |
212 |
211 |
210 |
29 |
28 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
Format zmiennej liczbowej rzeczywistej Real
Sposób pamiętania liczby rzeczywistych typu Real odpowiada notacji zmiennoprzecinkowej, w której wartość liczby L jest określona przez trzy wielkości: znak Z, mantysę M, wykładnik W.
Dla W= -129 L=0;
Dla W ≠ -129 L = (-1) Z × 2 W × (1+ M )
Znak jest kodowany na najstarszej pozycji jako 0 lub 1.
Mantysa jest naturalnym ułamkiem binarnym, tj. ciąg pozycji dwójkowych o wagach 2-1, 2-2, 2-3 itd.
Wykładnik jest zapisany w binarnym kodzie symetrycznym jako liczba z zakresu -129 do +126.
Z |
M |
W |
||||
1 |
0101000 |
00000000 |
00000000 |
00000000 |
00000000 |
10100000 |
1 bit |
|
|
39 bitów |
|
|
8 bitów |
Kod symetryczny stosowany do zapisu wykładnika W
00000000 00000001 00000010 ----- 10000000 10000001 10000010 ---- 11111101 11111110 11111111 |
-129 -128 -127 ---- -1 0 +1 ---- +124 +125 +126 |
3.3. Tworzenie zmiennych w wyniku ich deklarowania
Zmienne są tworzone w wydzielonym obszarze pamięci operacyjnej, tzw. obszarze zmiennych statycznych, którego rozmiar wynosi 64 kilobajty.
Powstanie zmiennej jest wynikiem jej zadeklarowania w tekście programu źródłowego po słowie kluczowym var (skrót od ang. variable).
Deklaracja zmiennej polega na podaniu jej nazwy i typu, np.:
var X,Y,Masa:Integer;
B:Byte;
Wynik:Real;
Zmienna istnieje od uruchomienia programu wykonawczego do końca jego pracy.
3.4. Deklarowanie zmiennej z inicjowaniem jej wartości początkowej
Przykład:
const Liczba:Real=3.18;
{Deklarujemy typ! Liczba jest zmienną!}
3.5. Deklarowanie stałych
Przykład:
const P='Witaj';
Liczba_pi=3.14159;
M=1273566;
{Nie deklarujemy typu! P, Liczba_pi, M są to stałe. Ich wartości nie mogą podlegać zmianom w czasie działania programu!}
12