KURS PASCALA
Od autora
Chciałbym wszystkim przypomnieć, że język Turbo Pascal (okrojony Borland Pascal 7.0) jest bardzo popularnym językiem programowania, przeznaczonym dla szrokiego kręgu odbiorców, przede wszystkim dla nieprofesjonalistów. Język Turbo Pascal, wbrew pozorom, nie jest wcale taki trudny do opanowania, można się go stosunkowo szybko nauczyć. Najczęściej jest on preferowany w szkołach średnich (uczą się go nawet studenci), stosowany jako "przedsmak" do języków jeszcze bardziej skomplikowanych tj. C/C++ czy Assebler.
Kurs ten został napisany w dużej mierze na podstawie książki Andrzeja Marciniaka pt. "Turbo Pascal 7.0 z elementami programowania", z książki zaczerpnięte zostały poszczególne definicje elementów języka.
LEKCJA 1
Słowa kluczowe i dyrektywy języka
W wersji 7.0 języka Turbo Pascal słowem kluczowym nazywamy każdy z 49. następujacych wyrazów języka angielskiego:
and
file
nil
shr
array
for
not
string
asm
function
object
then
begin
goto
of
to
case
if
or
type
const
implementation
packed
unit
constructor
in
procedure
until
destructor
inherited
program
uses
div
inline
record
var
do
interface
repeat
while
downto
label
set
with
else
mod
shl
xor
end
Słowa kluczowe są integralną częścią języka TP i są zastrzeżone, tzn. nie mogą być zdefiniowane przez programistę.
Oprócz słów kluczowych w wersji 7.0 Pascal-a występują dyrektywy języka. Dyrektywą jest każdy z 10. następujących wyrazów:
absolute
far
near
public
assembler
forward
private
virtual
external
interrupt
W odróżnieniu od słów kluczowych, dyrektywy języka nie są zastrzeżone - podane wyrazy mogą więc być identyfikatorami zdefinowanymi przez programistę, co jednak nie jest zalecane. Penym wyjątkiem są dyrektywy private i public, które w obiektach (ale tylko w nich) są słowami zastrzeżonymi.
LEKCJA 2
Jak wygląda program w Pascalu ?
Podstawowych pojęć jakimi się operuje programując w TP jest wprawdzie niewiele i nie są one trudne do zrozumienia, ale niewiedząc "z czym je jeść" nie mamy co zabierać się do programowania - wszystkie te pojęcia składają się na szkielet programu. Oto lista tych pojęć:
Struktura programuDeklaracja modułówEtykietyStałeTypy danychZmienneProcedury i funkcje
Program napisany w TP 7.0 składa się z nagłówka programu (PROGRAM), deklaracji modułów, bloku i znaku . (kropka). W nagłówku programu podaje się zwykle jego nazwę. Za pomocą deklaracji modułów określa się moduły standardowe i moduły użytkownika. Blok składa się z opisu danych i części wykonawczej, a kropka kończy tekst programu. Dopuszcza się możliwość opuszczenia nagłówka (jest on pomijany przez kompilator), deklaracji modułów i opisu danych, a wiersz programu nie może zawierać więcej niż 127 znaków. Oto szkielet programu paskalowego:
PROGRAM Nazwa_Programu; {Nagłóewk programu}USES {Deklaracja modułów}{Początek części opisowej}LABELCONSTTYPEVARPROCEDUREFUNCTION{Koniec części opisowej}BEGIN{Część wykonawcza programu}END.
Deklaracja modułów (USES) jest klauzurą pozwalającą nam zdefiniować dowolną ilość modłów w naszym programie, np. USES CRT,DOS;Powyższa deklaracja definiuje dla naszego programu dwa standardowe moduły DOS i CRT.
Etykiety (LABEL) deklarujemy zaraz po deklaracji modułów klauzurą USES, powodują one skok do określonej części programu - wywołujemy je słowem kluczowym GOTO, np.
LABEL skok_1,skok_2;
...
BEGIN
GOTO skok_1;
...{Jakieś funkcje czy procedury.}
skok_1: Writeln('Skok do etykiety skok_1');
skok_2: Writeln('Skok do etykiety skok_2');
END.
Powyższy przykład obrazuje skok do etykiety skok_1. Podczas tej operacji omijane są wszelkie procedury i funkcje znajdujące się w wykropkowanych miejscach.
Stałe (CONST) deklarujemy po deklaracji etykiet (LABEL), gdy zadeklarujemy jakąś stałą to w dalszej części programu nie możemy przypisać jej już innej wartości niż wartość początkowa. Zmiennym nie musimy przypisywać konkretnego typu danych, lecz w niektórych, bardziej złnożoych programach jest to wskazane, np.
CONST MaxWysokosc = 100;
MaxPredkosc = 10;
lub
CONST MaxWysokosc : Typ = Wartosc;
MaxPredkosc : Typ = Wartosc;
W drugim przykładzie Typ oznacza dowolny typ danych, wtedy wartość stałej przypisujemy zgodnie z typem.
Typy (TYPE) deklarujemy po deklaracji stałych (CONST). Każdą zmienną w programie należy zadeklarować tzn. określić jej nazwę oraz wartości, które może ona przyjmować. Zbiór wartości zmiennej nazywa się typem zmiennej. Typy dzielimy na standardowe (predefiniowane, nie wymagające opisu) i niestandardowe (wprowadzane ręcznie przez programistę). O typach będzie jeszcze mowa w następnych lekcjach, więc podam tu tylko przykłady, np.
TYPE Dzien = (pon, wt, sr, czw, pt, sob, nie);
Numer = Integer;
Zmienne (VAR) deklarujemy po deklaracji typów (TYPE). Jak już wspomniałem, wszystkie zmienne używane w programie powinny być zadeklarowane. Deklaracje zmiennych składają się ze słowa kluczowego VAR, po którym następuje wykaz deklaracji. Każdą zadeklarowaną zmienną (wartość zmiennej) możemy w głebi programu dowolnie definiować (przypisywać jej inne wartości), np.
VAR Wynik = Byte;
Wynik:=0; {Wartość początkowa}
Wynik:=10; {Wartość przypisana później}
Procedurę (PROCEDURE) lub funkcję (FUNCTION) deklarujemy po deklaracji zmiennych (VAR). Są to wyodrębnione części programu, stanowiące pewną całość, posiadające jednoznaczną nazwę i ustalony sposób wymiany informacji z pozostałymi częściami programu. Procedury i funkcje są stosowane do wykonania czynności, które mogą być wykorzystane w różnych programach lub do wykonania czynności wielokrotnie powtarzanych przez dany program. Różnica pomiędzy procedurą a funkcją polega na sposobie przekazywania wartości. Zadaniem procedury jest wykonanie pewnej sekwencji czynności, polegających zwykle na obliczaniu jedej lub wielu wartości. Natomiast zadaniem funkcji jest obliczenie jedej wartości (typu prostego lub wskaźnikowego). Odmienne są też sposoby wywołania procedur i funkcji, np.
Definicja procedury:
PROCEDURE Nazwa_Procedury(lista_parametrów);
...Część_opisowa
...Ciąg_instrukcji
END;
W definicji procedury listę parametrów możemy pominąć.
Definicja funkcji:
FUNCTION Nazwa_Funkcji(lista_parametrów): Typ_wyniku;
W obu przypadkach lista parametrów zawiera deklarację parametrów, przy czym poszczególne deklaracje oddziela się średnikami. W przypadku funkcji w ciągu instrukcji musi wystąpić co najmniej jedna instrukcja przypisania w postaci:
Nazwa_Funkcji:=Wyrażenie
powodująca przypisanie wartości pod nazwę funkcji, przy czym co najmniej jedna z tych instrukcji musi być wykonana po wywołaniu funkcji. Typ wyniku funkcji jest określony za pomocą identyfikatora typu.
LEKCJA 3
Typy danych i ich krótki opis
Co to jest mniej więcej "typ" pisałem w poprzednim dziale, a w niniejszym opiszę dość dokładnie poszczególne typy wraz ze sposobami ich definicji w programie.
Podział typów danych:
Typy proste
Typy porządkowe
Typ wyliczeniowy Typy całkowite Typy logiczne Typ znakowy Typy okrojone
Typy rzeczywiste
Typy łańcuchowe Typy strukturalne
Typy tablicowe Typ rekordowy Typ zbiorowy ...
damdamok