Programowanie w języku Delphi » Składnia języka

Operatory języka

Operatory są specjalnymi znakami, elementami języka programowania, służącymi do manipulowania danymi i sterowania pracą programu. Poniżej przedstawiam rodzaje operatorów, wraz z krótkim opisem. Szerszy opis obliczeń dokonywanych na danych liczbowych można znaleźć w dziale operacje liczbowe - obliczenia.

Operatory przypisania


Przypisanie danych jest jedną z najważniejszych i zarazem najczęściej wykonywanych czynności podczas programowania zarówno w Delphi, jak i większości istniejących języków programowania. Jak sama nazwa wskazuje, operator przypisania powoduje przypisanie nowych danych do zmiennej:

Zmienna := 20;

Budowa jest jak widać bardzo prosta. Po lewej stronie należy wpisać nazwę zmiennej do której zostanie przypisana wartość, a po prawej musi znaleźć się przypisywana wartość.

W języku C odpowiednikiem operatora przypisania z Delphi jest sam znak równości (=), tak więc przypisanie jest w C jeszcze krótsze:

zmienna = 10;


Operatory porównania


Czynność porównywania jest stosowana w codziennym życiu człowieka. Jesteśmy w stanie na przykład określić, który człowiek z dwojga jest wyższy, a na podstawie liczby koni mechanicznych silników jesteśmy w stanie ocenić, który z nich ma większą moc.
Podobnie w matematyce obowiązują takie znaki porównania jak > (znak większości) i < (znak mniejszości). Identyczne symbole są wykorzystywane w językach programowania.

OperatorJęzyk Delphi
Równości=
Nierówności<>
Większości>
Mniejszości<
Większe lub równe>=
Mniejsze lub równe<=


Operatory logiczne


Operatory logiczne często są nazywane operatorami boolowskimi (ang. Boolean operators). Wynika to z tego, że realizują one operacje właściwe dla algebry Boole'a.

Faktycznym zastosowaniem tych operatorów jest testowanie kilku warunków. Weźmy jakiś przykład z życia codziennego:
Jeżeli będę miał 18 lat i 20 tysięcy zł, kupię sobie samochód.
W tym zdaniu operatorem jest spójnik i. Do spełnienia kryterium (kupna samochodu) niezbędne jest zatem spełnienie łącznie dwóch warunków (posiadania 20 tysięcy złotych oraz ukończenia 18 lat). Jeżeli któryś z tych warunków nie będzie prawdziwy - kryterium, czyli kupno samochodu, nie zostanie spełnione.

Podobny przykład można przenieść na platformę programową. Na przykład jeżeli zmienna X posiada wartość 20, a zmienna Y wartość 10, to zrób to i tamto.

OperatorJęzyk Delphi
Logiczne iand
Logiczne lubor
Zaprzeczenienot
Logiczne alboxor


Operatory arytmetyczne


Nauka jaką jest matematyka, dawno temu wykształciła pewne symbole umowne opisujące niektóre trywialne działania, jak np. dodawanie czy odejmowanie. Oczywiście komputer jako maszyna działająca przede wszystkim właśnie na liczbach umożliwia wykonywanie tych czynności w bardzo prosty sposób przy wykorzystaniu symboli identycznych jak w matematyce.

OperatorJęzyk Delphi
Dodawanie+
Odejmowanie-
Mnożenie*
Dzielenie rzeczywiste/
Dzielnie całkowitediv
Reszta z dzielenia całkowitegomod


Można tu zauważyć pewną różnicę w porównaniu z tym, czego uczyliśmy się w szkole podstawowej. W szkole bowiem jako znaku mnożenia używaliśmy kropki, natomiast komputerowym symbolem mnożenia jest gwiazdka (*). To samo tyczy się dzielenia (w szkole znak :), podczas gdy w Delphi symbol /.

Ciekawą operacją dostępną w Delphi jest dzielenie całkowite. Otóż stosując operator div w miejsce standardowego / podzielimy liczby, lecz reszta z ewentualnego dzielenia zostanie pominięta.

To samo tyczy się operatora Mod - jeżeli chcemy uzyskać jedynie resztę z dzielenia, możemy użyć mod w miejsce /.

W Delphi oczywiście można dodawać, dzielić i wykonywać wszystkie pozostałe działania arytmetyczne, korzystając ze zmiennych. Przykładowo: pobieramy dane od użytkownika i dodajemy dwie wartości. Dodawanie wartości zmiennych wygląda identycznie jak w przypadku zwyczajnych liczb:

X + Y; // dodanie wartości zmiennej X do zmiennej Y


W prosty sposób można także przypisać wynik jakiejkolwiek operacji:

Z := X * Y; // do zmiennej Z przypisz wynik mnożenia X i Y


Funkcje zwiększania i zmniejszania


Programowanie w języku C charakteryzuje się mniej czytelną składnią, ale jednocześnie dużą elastycznością oraz szybkością tworzenia kodu. W Turbo Pascalu w celu zwiększenia wartości zmiennej o 1 należało wykonać:

X := X + 1; // zwiększenie zmiennej o 1


W C/C++ istnieją natomiast operatory upraszczające cały proces:

++i; // zwiększ liczbę i o 1
i--; // zmniejsz liczbę i o jeden


W Delphi z kolei wprowadzono funkcje zwiększania (ang. increment) oraz zmniejszania (ang. decrement) wartości:

Inc(X); // zwiększ wartość X o 1
Dec(X); // zmniejsz wartość X o 1


Standardowe wywołanie tych funkcji zwiększa lub zmniejsza daną wartość o 1. Możliwe jest jednak zastosowanie opcjonalnego drugiego parametru, który określa, o ile funkcja ma zwiększyć wartość, np.:

Inc(X, 2); // zwiększ wartość X o 2
Dec(X, 4); // zmniejsz wartość X o 4


Dodatkowo w kompilatorze Free Pascal wprowadzono parę operatorów znanych z C/C++ oraz składniowo podobnych języków:
X += Y; // X := X+Y;
X -= Y; // X := X-Y;
X *= Y; // X := X*Y;
X /= Y; // X := X/Y; (tylko typy zmiennoprzecinkowe!)
X << Y; // X shl Y
X >> Y; // X shr Y


Operatory bitowe


Operatory bitowe oferują nieco bardziej zaawansowane działania na liczbach binarnych.

OperatorJęzyk Delphi
Koniunkcjaand
Zaprzeczenienot
Alternatywaor
Dysjunkcjaxor
Przesunięcie bitowe w lewoshl
Przesunięcie bitowe w prawoshr


Operatory klasowe


Operatory wykorzystywane przy pracy z obiektami oraz rekordami.

OperatorOpis
asKonwertuje przekazany obiekt na inny typ (jeżeli niemożliwe, zwraca nil)
isSprawdza, czy przekazany obiekt jest określonej klasy
.Operator odwołania do elementu klasy (obiektu) lub rekordu
  1. Kafelki
  2. Lista

Shr

Shl

And

Xor

Or

As

Not

Is

Div

Mod

9 komentarzy

jedynyprawdziwy 2010-12-28 17:23

A operator '?' w kodzie delphi co może oznaczać ?

chemik143 2008-02-14 02:54

w turbo pascalu wcale nie trzeba było pisać x:=x+1
pisało sie inc(x);

a nawet zamiast x:=x+2 można było inc(x,2);

Coldpeer 2007-05-26 15:15

A czytać umiesz? Operator różności - <>

procek 2006-08-03 21:32

a co z tym że się np. 1 nie równa 2??
Chodzi mi przekreślone =.

Adam Boduch 2006-02-20 17:47

Hmmm... dobre pytanie. Moze w tekscie "symbole" (utworzyc takowy) albow tekscie "skladnia jezyka" (juz istniejacy)?

Coz... sam Borland stosuje terminologie "symbol" wobec tych znakow. Gdyby traktowac znaki [ oraz ] jako oparator to czemu nie ( oraz ) ?
Osobiscie za operator uznaje symbol jezyka ktory sluzy wykonywaniu jakichs operacji (czyli, np. przypisywanie, porownywanie, mnozenie itp. a takze pobieranie adresu zmiennej, czyli @). Natomiast [ czy ^ czy ( to obowiazkowe elementy skladni wymagane do prawidlowej kompilacji programu (tak jak np. znak srednika na koncu instrukcji lub kropki na koncu programu).

Szczawik 2006-02-20 15:56

Dlaczego @ jest operatorem, ale ^ ani [] już nie są?

Co do $, # oraz ; zgodzę się, że nie są to operatory, ale gdzie je opisać, jak nie tutaj?

Adam Boduch 2006-02-20 13:59

Co do @ to sie zgodze, ale pozostale symbole ktore podales sa wlasnie symbolami - nie sa to operatory.

Szczawik 2006-02-20 12:46

Jak ktoś będzie miał czas (w tym również ja), to niech dopisze o:
;, @, ^, [], $, #, etc - to też operatory języka, a o arytmetycznych jest inny artykuł.

Adam Boduch 2005-12-22 11:31

Należałoby chyba jeszcze poszerzyć ten opis o inne operatory.