Wstęp
W tej lekcji poznamy elementy podstawowe języka Pascal. Dowiemy się czym są bloki, symbole, liczby, ciągi znaków itp. Pojęcia te będą nam potrzebne, by móc skutecznie czytać dalsze części kursu i poznawać kolejne konstrukcje języka.
Symbole podstawowe
Podczas pisania aplikacji w Pascalu używa się następujących symboli:
- liter wielkich: ABCDEFGHIJKLMNOPQRSTUVWXYZ
- liter małych: abcdefghijklmnopqrstuvwxyz
- cyfr: 0123456789
- znaku podkreślenia: _
- znaków specjalnych: +-*/=<>[],.():;'@{}$#
- znaków podwójnych: <=>= := .. (* *) (..)
W programach występują również identyfikatory. Służą one do opisu nazwy programu, modułów, typów, stałych, zmiennych, funkcji itp. Identyfikatory określają nazwę danego elementu. Za pomocą tych nazw będziemy mogli się odwoływać do danego elementu. W nazwach można używać liter małych, wielkich, cyfr i znaku podkreślenia. Nie wolno jednak zacząć nazwy identyfikatora cyfrą. Tak mogą wyglądać przykładowe identyfikatory:
- imie, nazwisko, liczba, x, p1, _w2 ... itp.
Przykład nieprawidłowych identyfikatorów:
- 2imie (rozpoczyna się cyfrą),
- zmienna 2 (występuje spacja w nazwie),
- Wielkość (występują niedozwolone znaki "ś" i "ć");
Bloki
Blok zarówno programu głównego, jak i procedur, czy funkcji składa się z dwóch części: deklaracyjnej i instrukcyjnej. Pierwsza występuje opcjonalnie, natomiast druga zawsze powinna się znaleźć. Część instrukcyjna mieści się między słowami kluczowymi BEGIN i END;, przed nią znajduje się część deklaracyjna. W części tej deklarujemy następujące elementy:
- etykiety
- stałe
- typy
- zmienne
- procedury
- funkcje
Wszystkie zadeklarowane elementy są dostępne w obrębie tylko danego bloku. Spójrzmy na przykład:
program P002;
{część deklaracyjna}
var X : Integer;
procedure Pokaz;
begin
Writeln('Komunikat');
end;
{część instrukcyjna}
begin
Pokaz;
end.
W powyższym programie, w części deklaracyjnej znajduje się procedura Pokaz. Procedura ta jest również blokiem, zatem także posiada część deklaracyjną (w naszym przykładzie - pusta) i część instrukcyjną (w naszym przykładzie jedna instrukcja Writeln).
Nazwa programu (P002), zmienna (X), typ danych (Integer), nazwa procedury (Pokaz), instrukcja (Writeln), słowa kluczowe (begin, end, var, program, procedure) - wszystko to identyfikatory. Zatem zgodnie z tym, co było napisane wcześniej - składają się z liter, cyfra, znaku podkreślenia i nie rozpoczynają się cyfrą.
Słowa kluczowe
W Pascalu (jak i w większości innych językach programowania) zostały wyodrębnione pewne identyfikatory o szczególnym znaczeniu. Używa się ich w z góry określony sposób. Nie mogą być zmieniane przez programistę, w przeciwieństwie do procedur, czy funkcji. Ich nazw nie wolno nigdzie w programie użyć jako identyfikatora do jakiegoś własnego elementu. Noszą one nazwę słów kluczowych oraz dyrektyw. Większość edytorów kodu słowa kluczowe wyróżnia innym kolorem. Te słowa to:
| and | file | of | type |
| array | for | o | unit |
| asm | function | packed | uses |
| begin | goto | procedure | var |
| case | if | program | while |
| const | implementation | record | with |
| constructor | in | repeat | xor |
| destructor | inherited | set | |
| div | label | shl | |
| do | mod | shr | |
| downto | nil | string | |
| else | not | then | |
| end | object | to |
Do standardowych dyrektyw należą:
| absolute | foward | public |
| assembler | interrupt | virtual |
| external | near | |
| far | private |
W naszym poprzednim programie słowami kluczowymi były: program, var, procedure, begin oraz end.
Ciągi znaków
W języku Pascal można operować na tzw. ciągach znaków. Ciąg znaków, to po prostu napis, który może być wyświetlony lub przetworzony w jakiś sposób. Wszystkie ciągi znaków zawsze muszą być umieszczone pomiędzy apostrofami.
program P003;
begin
Write('Kurs ');
Write('programowania');
Writeln(' w Pascalu');
end.
Wykonanie powyższego programu spowoduje wyświetlenie napisu "Kurs programowania w Pascalu".
W programie użyliśmy procedur Write i Writeln do wyświetlenia napisów. Napisy te są ciągami znaków, dlatego objęte są apostrofami. Przekazaliśmy je do wspomnianych funkcji jako argumenty, dlatego są w nawiasach.
Przy tej okazji poznajemy nową instrukcję do wyświetlania napisów - Write. Czym się różni Write od Writeln?
Ponieważ nasze programy działają na razie w środowisku konsolowym (tryb tekstowy), w środowisku tym dostępny jest tzw. kursor. Kurs, to migający prostokąt wskazujący miejsce wpisywania tekstu. Zarówno Write jak i Writeln powoduje wyświetlenie napisu właśnie w pozycji tego kursora. Instrukcja Writeln powoduje dodatkowo po wyświetleniu napisu przeniesienie tego kursora do nowej linii. W naszym przykładzie dwa pierwsze zwroty wyświetlamy instrukcją Write, dlatego pojawiają się obok siebie a kursor wędruje na ich koniec. Ostatnie wywołanie Writeln wyświetla tekst na końcu tego ciągu, jednak kursor przenosi do nowej linii, zatem kolejny napis pokazałby się już w nowej linii.
Liczby
Język Pascal daje nam do dyspozycji dwa systemy liczbowe: dziesiętny i szesnastkowy. Każda liczba zapisana w systemie szesnastkowym powinna być poprzedzona znakiem '$'. Wszystkie liczby bez tego znaku są traktowane jako liczby zapisane w systemie dziesiętnym. W systemie dziesiętnym mamy do dyspozycji cyfry od 0 do 9, natomiast w systemie szesnastkowym od 0 do 9 i od A do F. Przy zapisie liczb rzeczywistych można również używać notacji naukowych. Pascal daje nam następujące notacje:
- m - liczba rzeczywista ze znakiem, określająca mantysę liczby
- c - liczba całkowita ze znakiem, określająca cechę liczby
- e - symbole notacji naukowej
Oto przykładowe liczby:
- 35, $F,$14, -3.14159, 3.2E10, 2.7E-10
Spójrzmy na przykład:
program P004;
begin
Writeln('Liczba A=',35);
Writeln('Liczba B=',$FF);
Writeln('Liczba C=',1.2E-10);
end.
W powyższym programie wyświetlamy trzy linie tekstu. Są to oddzielne linie, gdyż użyliśmy instrukcji Writeln. Każdej z wywołań procedury Writeln przekazaliśmy w nawiasach dwa argumenty. Pierwszym jest zawsze napis (ciąg znaków), natomiast drugim liczba. Przy okazji widzimy w jaki sposób zapisane zostały te liczby.
Etykiety
Etykiety służą do oznaczania pewnych miejsc w programie. Za pomocą nich będziemy mogli w każdej chwili "skoczyć" do danego miejsca. Każda etykieta powinna być zakończona znakiem ":" (dwukropek) i powinna być zadeklarowana w części deklaracyjnej. Do tego celu używa się słowa kluczowego LABEL. By skoczyć do danej etykiety używa się polecenia GOTO. Skok jednak jest możliwy tylko w obrębie danego bloku i jest to skok bezwarunkowy np.:
program P005; label Poczatek,Koniec; begin ... Poczatek: ... Koniec: ... goto Poczatek; end;
Stosowanie skoku bezwarunkowego jest niezalecane! Wykorzystuj polecenie GOTO tylko w ostateczności. Lepiej jest użyć np. instrukcji REPEAT lub FOR. Poruszamy ten temat tylko dla porządku.
Zakończenie
Druga lekcja dobiegła końca. Z tej lekcji dowiedzieliśmy się:
- z jakich elementów składa się każdy program napisany w Pascalu,
- co to jest blok programu,
- czym są identyfikatory,
- czym są słowa kluczowe,
- czym są ciągi znaków,
- jak można wprowadzać liczby,
- jak wyświetlać napisy używając procedur Write i Writeln,
- co to są etykiety.
Zachęcam do przejścia do - Lekcji 3 - Opis zmiennych, stałych i typów danych.
