Stałe,zmienne i tablice
Stałe(const)
służą do ustawienia jakiejś stałej wartości, z której można w programie skorzystać. Nie mogą zmieniać swojej wartości, więc ich zastosowanie jest dosyć małe, czasami zdarza się jednak, że wygodniej jest z nich skorzystać.
Zmienne(var)
jak sama nazwa wskazuje mogą zmieniać swoją wartość, dlatego sposób ich deklaracji różni się od stałych. Nazwę danej zmiennej przyporządkowujemy do danego typu:
var x,y:integer;
z:string;
Oznacza to, że zmienne "x","y" będą typu integer i ich wartości nie będą wykraczały poza granice tego typu (o tym za chwilę), a "z" będzie stringiem (i też nie będzie wykraczać poza granice określone dla tego typu).
Można wyróżnić 6 rodzajów typów podstawowych:
W tekscie będę posługiwał się zmienną "z" i "x" w domyśle będą one zawsze zmiennymi omawianego typu.
string- łańcuch znaków (mówiąc po polsku, tekst).
: Przypisanie wartości
z:='to jest tekst';
char- znak. Przypisanie wartości:
z:='a'; lub z:=#88;
Drugi sposób spowoduje przypisanie do zmiennej "z" znaku o numerze 88 w kodzie ASCII. To co można przypisać do chara, można także do stringa, w drugą stronę już niekoniecznie
text- plik tekstowy
shortint,byte, integer, word, longint- liczby całkowite, wymienione typy różnią się od siebie zakresem liczb (szczegóły w helpie).
z:=20;
real, extended, double- liczby rzeczywiste
z:=2.1
Specyficznym typem jest boolean. Zmienne tego typu mogą przyjmować dwie wartości: true lub false
Operacje na zmiennych
STRING
Do operowania stringami służą głównie funkcje. Część z nich jest opisana tutaj. Ponadto stringi można dodawać:
z:=x+z;
spowoduje przypisanie zmiennej "z", wartości "x" i dopisanie do niej wartości "z"
z:=z+x;
To dla odmiany spowoduje, że najpierw przypisana zostanie wartość "z" do której dopisana zostanie "x"
Ponadto w stringu, można odwołać się do konkretnego znaku:
z:=x[1];
z przyjmie wartość pierwszego znaku zmiennej "x".
x[1] jest wartością typu char, chociaż x jest stringiem.
CHAR
Operacje na zmiennych tego typu odbywają się za pomocą funkcji:
ord(z) zwraca numer w kodzie ASCII znaku w zmiennej "z"
chr(128) zwraca znak o podanym numerze
UpCase(z) powoduje zamianę małej litery w zmiennej "z" na dużą (w Delphi istnieją także funkcje pozwalające na zamianę w drugą stronę, jak i na zamianę wszystkich znaków w stringu)
LICZBY CAŁKOWITE
Dodawanie:
x:=z+x; {powoduje zwiększenie "x" o "z"}
Odejmowanie
x:=x-z; {zmniejszeni "x" o "z"}
Mnożenie
x:=z*x;
Inne
x:=z div x {"z" dzielone przez "x" i zaokrąglone do najbliższej liczby całkowitej}
x:=z mod x {zwraca część dziesiętną (po przecinku)"z" dzielenia z przez "x", w postaci liczby całkowitej}
x:=z shr x-{ Nie wiem jak to przetłumaczyć. Działa to w ten sposób, że wyraz pierwszy jest dzielony przez dwa tyle razy ile podano w wyrazie drugim}
x:=z shl x { podobnie jak shr tylko, że wyraz pierwszy jest mnożony razy 2 tyle razy ile wskazuje wyraz drugi.}
LICZBY RZECZYWISTE
Liczby rzeczywiste można dodawać, odejmować, mnożyć tak jak liczby całkowite. Ponadto można je dzielić (ale dzielenie całkowite odpada):
x:=z/x;
Dzieli "z" przez "x"
Przenoszenie zmiennych między typami tego samego rodzaju nie stanowi żadnych kłopotów (po prostu wykonujemy operację przypisania), natomiast przenoszenie między różnymi rodzajami wymaga użycia odpowiednich funkcji. Tutaj opisane takie są funkcje obecne w Delphi. Trochę inaczej wygląda to w przypadku stringów i charów: chara można dodać do stringa, a char może przyjąć wartość określonego znaku w stringu.
Dla porządku wspomnę jeszcze o typie okrojonym. Deklaracja takiej zmiennej wygląda tak:
var x:0..2;
Oznacza to, że x może przyjmować wartości od 0 do 2. W praktyce jednak rzadko korzysta się takich typów.
Tablice
Umożliwiają łatwy, szybki i seryjny dostęp do znajdujących się w pamięci danych. Dzięki nim zamiast odwoływać się do zmiennych a,b,c,....z wystarczy, że odwołamy się do elementów zmiennej "z", która jest typu tablicowego. Deklaracja takiej zmiennej wygląda tak:
var x:array[1..10] of integer;
Oznacza to, że zmienna x będzie miała 10 elementów (o indeksach z zakresu podanego w nawiasach kwadratowych), które będą typu integer. Oczywiście to tylko przykład i typy, indeksy i ich ilość może być dowolna.
W kodzie odwołujemy się do elementu tablicy w ten sposób:
x[1]:=10;
Wartość w nawiasie kwadratowym jest numerem elementu w tablicy (i zamiast liczby można tu użyć zmiennej np.: integer)
Często można spotkać się z tablicami wielowymiarowymi:
var x:array [0..2] of array [0..2] of integer;
Jest to przykład tablicy dwuwymiarowej, a do poszczególnych jej elementów należy odwoływać się podając 2 parametry:
x[1,0]:=10;
Możliwe jest także zadeklarowanie tablicy stałych
const x:array [0..2] of byte= (10,23,32);
Deklarujemy normalną tablicę danego typu, tyle że każdemu elementowi musimy przypisać jakąś wartość.
Zastosowanie tablic jest dość szerokie i jest niezbędne tam gdzie chcemy odwoływać się do różnych elementów w pętli.