Alfabetyczny spis poleceń Pascala Nazwa funkcji i Opis polecenia Abs(x); Zwraca wartość bezwzględną przekazanego jej argumentu. Można ją wywoływać tylko z argumentem będącym liczbą całkowitą lub zmiennoprzecinkową. Addr(x) Zwraca wskaźnik zawierający adres zmiennej, funkcji lub procedury. Append(plik : Text); Otwiera plik określony przez zmienną plikową do dopisywania. Zmiennej musi być wcześniej przypisana nazwa pliku przy pomocy polecenia Assign. Plik musi być tekstowy i musi istnieć, w przeciwnym razie powstanie błąd. Arc (x,y : Integer; kąt_pocz, kąt_kon, promień: Word); Moduł Graph Rysuje odcinek okręgu o środku w punkcie (x, y) i danym promieniu. Rysuje od kąt_pocz do kąt_końcowy, oba podane w stopniach. ArcTan(x : Real); Zwraca arcustangens podanej wartości (w radianach). W języku Pascal nie ma funkcji arcus sinus i arcus cosinus. Wartości tych funkcji można obliczyć korzystając z wzorów: ArcSin(x) = ArcTan (x/sqrt (1-Sqr (x))) ArcCos(x) = ArcTan (sqrt (1-sqr (x)) /x) Assign(plik : String); Procedura przypisuje zmiennej plikowej plik plik o nazwie nazwa. Plik może być zmienną typu Text. Aby móc odwoływać się do jakiegoś pliku, zawsze należy najpierw użyć procedury Assign. Przy dalszych operacjach pliki są identyfikowane przy pomocy zmiennej plikowej, a nie nazwy. Jeśli nazwą będzie '' (łańcuch pusty) to wszystkie operacje będą się odnosiły do standardowego wejścia i standardowego wyjścia. i inne podobne Writeln (Abs(-1)); { = 1 } Writeln (Abs(-1.1)); {= 1.1} var wskaźnik: Pointer; liczba : Integer; wskaźnik := Addr(liczba); Zobacz: Assign, Close, Reset, Rewrite Patrz także: InitGraph, CloseGraph, Circle, Ellipse, SetColor Arc(100, 100, 0, 90, 60); Arc(100, 100, 330,30,80); Patrz także: Sin, Cos Patrz także: file, text, Append, Reset, Rewrite, Close, Seek, FilePos, Truncate, Rename, Eof var plik_1 : file; plik_2 : text; Assign(plik_1,'plik.bin'); Assign(plik_2,'plik.txt');... 1
BlockRead(var plik : file ; var bufor ;ile_czytać : word; var ile_przeczytał : word ); BlockWrite(var plik : file ; var bufor ;ile_zapisać : word; var ile_zapisał : word ); Procedura BlockRead wczytuje z pliku plik do zmiennej bufor nie więcej niż ile_czytać bajtów i umieszcza w zmiennej ile_przeczytał ilość rzeczywiście przeczytanych bajtów (która może być mniejsza od oczekiwanej np. ze względu na rzeczywistą długość pliku) Procedura BlockWrite działa tak samo, tylko zapisuje do pliku. ChDir(nowy_katalog : string ); Procedura zmienia bieżący katalog na podany. Jeśli podany katalog nie istnieje, generuje błąd i nadaje zmiennej IOResult wartość niezerową. Chr (kod : byte):char; Funkcja zwraca znak (wartość typu char) o podanym kodzie ASCII. Przy wielu zastosowaniach równoważny jest zapis: chr(10) = #10 Close(var plik : file); Procedura służąca do zamykania otwartego pliku dowolnego typu. Każdy plik otwarty przy pomocy Append, Reset lub Rewrite powinno się zamknąć przy pomocy close, aby zapewnić poprawne zapisanie buforów i zwolnienie DOSowego uchwytu pliku. Concat(łańcuch1 [,łańcuch2,...]): string; Funkcja łączy otrzymane łańcuchy w jeden, który następnie zwraca. Łączna długość danych łańcuchów nie może przekroczyć 255, czyli maksymalnej długości łańcucha. Jeśli przekroczy, to zwracane jest tylko pierwsze 255 znaków. Podobny efekt można uzyskać stosując operator '+'. Patrz także: file, Assign, Write var skąd,dokąd:file; num_czyt,num_pis:word; bufor:array[1..1024] of Char; Assign(skąd,ParamStr(1)); Reset(skąd); Assign(dokąd,ParamStr(2)); Rewrite(dokąd); Repeat BlockRead(skąd, bufor, 1024, num_czyt); BlockWrite(dokąd, bufor, num_czyt, num_pis); Until (num_czyt=0) Or (num_pisnum_czyt); close(skąd); close(dokąd); Patrz także: MkDir, GetDir, RmDir Patrz także: Ord Write(Chr(7)); Write(#7); Patrz także: file, Append, Reset, Rewrite Patrz także: Copy, Delete, Insert, Length, Pos Writeln (Concat ('abc', 'def', 'ghi') ); Writeln ('abc' + 'def' + 'ghi'); 2
Copy(łańcuch : string; skąd, ile : integer): string; Funkcja zwraca podciąg łańcucha zaczynający się od indeksu skąd i mający ile znaków. Jeśli skąd jest większe niż długość łańcucha, to zwracany jest łańcuch pusty. Jeśli ile podaje więcej znaków, niż ich jest w łańcuchu od indeksu skąd, to zwraca tyle znaków, ile jest. Cos(x : real):real; Sin(x : real):real; Funkcje zwracają wartość sinusa i cosinusa kąta wyrażonego w radianach. Funkcja tangens nie jest zaimplementowana i trzeba ją obliczać ze wzoru: Tan(x)=Sin(x)/Cos(x) Dec(var x ;ile: LongInt ); Procedura zmniejsza parametr x o wartość ile. Jeśli ile nie jest podane, domyślnie przyjmuje się 1. X musi być zmienną typu porządkowego - całkowitą lub wyliczeniową. Delete(var s : string; początek, ile : integer); Procedura usuwa z określonego parametrem s łańcucha ile znaków zaczynając od indeksu początek. Dispose(var p:pointer [,destruktor]); Procedura zwalniająca pamięć zmiennej dynamicznej wskazywanej przez p, zaalokowanej wcześniej przy pomocy procedury New. Jeśli p wskazuje na obiekt, to tuż przed zwolnieniem pamięci wykonany zostanie destruktor tego obiektu. Patrz także: Concat, Delete, Insert, Length, Pos Writeln(Copy('abcde',1,3)); {'abc'} Writeln(Copy('abcde',6,3)); {''} Writeln(Copy('abcde',4,3)); {'de'} Patrz także: Inc, Pred, Succ var x : integer; x:=10; Dec(x,5); { x=5 } Dec(x); { x=4 } Patrz także: Concat, Copy, Insert, Length, Pos var s:string; s:='jakiś długi tekst'; Delete(s,7,6); Writeln(s); {'jakiś tekst'} Patrz także: New, FreeMem, GetMem type str20 string[20]; var p:^str20; New(p); p^ := 'Jakiś tekst'; Dispose(p); 3
Eof(var plik: file ):Boolean Funkcja zwraca wartość logiczną True jeśli osiągnięty został koniec pliku. Eoln(var plik: file): Boolean Zwraca wartość logiczną True jeśli wskaźnik pozycji pliku wskazuje na koniec wiersza. Erase(var plik:file); Procedura kasuje plik na dysku. Nie wolno używać jej na otwartym pliku. Exit; Wywołanie procedury Exit powoduje natychmiastowe opuszczenie bloku programu, w którym to wywołanie nastąpiło. Można jej użyć do opuszczenia pętli, wyjścia z procedury/funkcji lub programu głównego. Exp(x : real) : real; Funkcja zwraca wartość e do potęgi x. FilePos(var plik : file) : LongInt; Funkcja zwraca aktualną pozycję pliku. Plik nie może być tekstowy i musi być otwarty (np. poleceniem Reset). Wartość zwracana jest w jednostkach, z których składa się plik. Patrz także: Assign, Eoln, Read, SeekEof var F: text; Ch:char; Assign(F,'c:\autoexec.bat'); Reset(F); while not Eof(F) do Begin Read(F, Ch); Write(Ch); {pokaż zawartość pliku} End; Patrz także: Assign, Eof, Read, SeekEof Patrz także: Assign, Rename var plik: file; Assign(plik,'prog1.bak'); Erase(plik); Patrz także: Halt Patrz także: Sqr, Sqrt, Ln Patrz także: FileSize, Seek var plik: file of real; r:real; Assign(plik,'liczby.tmp'); Rewrite(plik); r:=1; Write(plik, r, r); {zapisanie dwóch liczb do pliku} Writeln(FilePos(plik)); {2} Close(plik); 4
FileSize(var plik : file) : LongInt; Funkcja zwraca wielkość pliku. Plik nie może być tekstowy i musi być otwarty (np. poleceniem Reset). Wartość zwracana jest w jednostkach, z których składa się plik. FillChar(var zm; ile : word; znak : char); Procedura zapełnia pierwsze ile bajtów zmiennej zm wartością znak. Nie przeprowadza żadnego sprawdzenia zakresu - jeśli ile wykroczy poza wielkość zmiennej, to mogą zostać nadpisane jakieś inne zmienne. Znak może być typu char lub Byte Flush(var plik : text); Procedura opróżnia bufor pliku tekstowego (zapisuje na dysk). Procedury tej używa się, by upewnić się, że wszystkie dane zapisane do pliku przez Write zostały fizycznie umieszczone w pliku. Frac( x : real) : Real; Funkcja zwraca część ułamkową danej liczby. Zwraca wartość typu Real. FreeMem(var wsk : pointer; ile : word); Procedura zwalnia pamięć zaalokowaną przy pomocy GetMem. Parametr ile określający długość zwalnianego bloku musi być równy wielkości podanej w wywołaniu GetMem. Patrz także FilePos Seek var plik: file of real; r: real; Assign(plik,'liczby.tmp'); Rewrite(plik); r:=1; Write(plik, r, r); {zapisanie dwóch liczb do pliku} Writeln(FileSize(plik));{2} Close(plik); Patrz także: Move Var S: string[80]; { zapisz cały łańcuch spacjami } FillChar(S, SizeOf(S),' '); S[0] := #80; { przywróć zmienioną długość łańcucha } Patrz także: text, Append, Reset, Rewrite, Write Patrz także: Int, Round, Trunc Patrz także:, GetMem, Dispose, Release, New, Mark 5
GetDir(napęd : integer; var katalog : string); Wypisuje katalog bieżący podanego napędu do łańcucha katalog. Napęd Wartość par. napęd odpowiadający dysk 0 bieżący 1 A: 2 B: 3 C: 4 D: GetMem(var wsk : pointer; ile : word); Procedura przydziela ze sterty blok pamięci o wielkości określonej parametrem ile i ustawia wskaźnik wsk na ten blok. Przydzieloną w ten sposób pamięć należy później zwolnić przy pomocy procedury FreeMem. Maksymalny blok, który można przydzielić ma długość 65,528 bajtów (64k-8). Jeśli nie można przydzielić żądanego bloku (brak pamięci) to generowany jest błąd. Halt[(kod_błędu : word)]; Wywołanie powoduje natychmiastowe wyjście z programu. Można (opcjonalnie) podać kod błędu, jaki zostanie zwrócony programowi nadrzędnemu (najczęściej jest to shell systemu operacyjnego - command.com). Kod ten można odczytać np. przez polecenie DOSu errorlevel. Hi( x ) : byte ; Funkcja zwracająca starszy bajt parametru. Parametr może być typu integer albo word. Inc(var x ;ile: LongInt ); Procedura zwiększa parametr x o wartość ile. Jeśli ile nie jest podane, domyślnie przyjmuje się 1. X musi być zmienną typu porządkowego - całkowitą lub wyliczeniową. Patrz także: ChDir, MkDir, RmDir Patrz także: FreeMem, MaxAvail, New, Mark, Dispose, Release, GetImage var bufor: pointer; wielkość: integer; wielkość:=1024; if wielkość > MaxAvail then Begin Writeln('Brak pamięci'); Halt; End; GetMem(bufor, wielkość);.. { odwołania do bufora przez bufor^ }. FreeMem(bufor, wielkość); Patrz także: Exit Writeln('To będzie wykonane'); Halt; Writeln('A to nigdy'); Patrz także : Lo, Swap Writeln(Hi($1234)); {18 = $12} Patrz także: Dec, Pred,Succ var x : integer; x:=0; Inc(x,5); { x=5 } Inc(x); { x=6 } 6
Insert(co : string; var dokąd : String; indeks : integer); Procedura wstawiająca łańcuch co do łańcucha dokąd zaczynając od miejsca w dokąd o numerze indeks. Jeśli wynikowy łańcuch miałby ponad 255 znaków, to jest on obcinany (do 255 znaków). Int(x : real) : Real; Funkcja zwraca wartość argumentu x po obcięciu części ułamkowej. Zwracana jest wartość typu Real. Length(łańcuch : string ) : integer; Funkcja zwracająca długość danego łańcucha. Nie jest to ilość pamięci zaalokowanej dla zmiennej, ale rzeczywista długość przechowywanego tekstu. Wywołanie tej funkcji jest równoznaczne z pobraniem liczby łańcuch[0]. Ln(x : real) : Real; Funkcja zwraca wartość logarytmu naturalnego z x. Lo( x ) : byte ; Funkcja zwracająca młodszy bajt parametru. Parametr może być typu integer albo word. MaxAvail : LongInt; Funkcja zwracająca wielkość najdłuższego ciągłego bloku wolnej pamięci, którą można przydzielić przez GetMem MemAvail : LongInt; Funkcja zwracająca ilość wolnej pamięci w bajtach. Jest to suma długości wszystkich wolnych bloków pamięci. Z reguły ze względu na fragmentację pamięci nie można całej tej pamięci przydzielić jednej zmiennej dynamicznej. Move(var skąd, dokąd; ile : word); Procedura kopiuje ile bajtów ze zmiennej skąd do zmiennej dokąd. Nie jest sprawdzane, czy parametr ile nie wykracza poza zakres zmiennych. Patrz także:, Concat, Copy, Delete, Length, Pos var s : string; s:='to jest łańcuch'; Insert(' drugi',s,8); Writeln(s); {'To jest drugi łańcuch'} Patrz także: Frac, Round, Trunc Patrz także: Concat, Copy, Delete, Insert, Pos var s : string[20]; s:='tekst'; Writeln(Length(s)); { 5 } Writeln(Integer( s[0] ));{5} Patrz także: Exp, Sqr, Sqrt Patrz także: Hi, Swap Writeln(Lo($1234)); {52 = $34} Patrz także: GetMem, MemAvail Patrz także: GetMem, MaxAvail Patrz także: FillChar var s:string; r:real; r:=1111.1111; move(r,s,6); {pierwsze 6 bajtów łańcucha zawiera liczbę} 7
New(var wskaźnik : pointer [; konstruktor]); Procedura alokuje dla zmiennej dynamicznej pamięć na stercie i ustawia wskaźnik na odpowiedni adres. Jeśli jest to wskaźnik do obiektu, to można podać nazwę konstruktora który ma być wykonany przy powstaniu obiektu. Odd( x : longint ) : boolean; Zwraca wartość true jeśli dana liczba jest nieparzysta. Ofs(x): word; Zwraca przesunięcie (offset) danej w segmencie. Ord(x) : longint; Zwraca numer elementu x. X musi być wyrażeniem typu porządkowego- całkowitym lub wyliczeniowym. ParamCount: word ; Zwraca ilość parametrów podanych programowi w linii poleceń. 0 oznacza brak parametrów. ParamStr(nr : word ) : string ; Patrz także: Dispose, FreeMem, GetMem type str20 string[20]; var p:^str20; New(p); p^ := 'Jakiś tekst'; Dispose(p); Patrz także: Addr, Seg Patrz także: Chr Writeln(Ord('A')); { 65 } Patrz także: ParamStr Patrz także: ParamCount Zwraca parametr o danym numerze podany w linii kom Parametrem o numerze 0 jest nazwa pliku wykonywanego. Pi : real ; Zwraca wartość liczby pi. Pos(podciąg, łancuch : string) : byte; Podaje pozycje wyszukanego podciągu w danym łańcuchu znaków. Pred(x) Podaje poprzednika liczby podanej jako parametr var i:integer; for i:=1 to ParamCount do writeln(paramstr(i)); stopnie := radiany * 180 / pi; radiany := stopnie * pi / 180; Patrz także: Delete, Copy, Insert, Length var S:string; S:=' 125.5'; while Pos(' ', S)>0 do S[pos(' ',s)]:=0; Patrz także: Inc, Dec, Succ 8
Ptr(segment, przesuniecie : word) : pointer; Funkcja przypisująca zmiennej wartość podanego miejsca w pamięci. Random[(zakres : word )]; Patrz także: Addr Patrz także: Randomize Funkcja służy do losowania wartości z przedziału <0;zakres -1> Randomize; Inicjuje wbudowany generator liczb losowych (sprawia aby liczby były za każdym razem inne). Read(parametr) Odczytuje z aktualnego źródła to co jest podane jako parametr. ReadKey Funkcja odczytuje wciśnięty klawisz. Readln(parametr) To samo co Read, ale przeskakuje do następnej linii. Release(var wskaźnik : pointer); Zwalnia stos do miejsca zaznaczonego wcześniej poleceniem Mark. RemoveDir(S:string); Za pomocą tej instrukcji usuwa się puste podkatalogi. Rename( F;NowaNazwa) Zmienia nazwę pliku. Repeat Until (warunek); Miedzy tymi instrukcjami znajdują się instrukcje, które będą powtarzane dopóki nie zostanie spełniony warunek. Reset(F) Otwiera istniejący plik z nazwą przekazaną do F poleceniem Assign. Rewrite(F) Tworzy i otwiera nowy plik. F jest nazwą przekazaną za pomocą polecenia Assign. RmDir(S:string); Usuwa pusty katalog o ścieżce podanej w S. Round(liczba) Zaokrągla liczbę rzeczywistą podaną w parametrze do liczby całkowitej. Patrz także: Random Patrz także: Readkey, Readln, Write, Writeln : A:=ReadKey; Patrz także: Read, Write, Writeln Zobacz także: Dispose, FreeMem, GetMem, Mark, New Patrz także: RmDir Patrz także: Erase Patrz także: Append, Assign, Close, Rewrite Patrz także: Append, Assign, Reset Patrz także: ChDir, GetDir, MkDir, RemoveDir Patrz także: Int, Trunc 9
RunError [(kod:byte)] Instrukcja zatrzymuje wykonywanie się programu generując błąd podany w parametrze. Seek (F;N:Longint); Ustawia pozycję w pliku na N. SeekEof : boolean; Funkcja zwraca wartość TRUE jeśli jest koniec pliku. SeekEoln : boolean; Funkcja przyjmuje wartość TRUE jeśli jest koniec linii w pliku. Seg(x):word; Zwraca segment obiektu zawartego w X, gdzie X jest funkcją lub procedurą. SetColor(parametr); Instrukcja ustawia kolor pisania i rysowania w trybie graficznym. Parametrem jest nazwa lub liczba danego koloru. Kolory i licz wartości: Kolor Wartość Czarny 0 Niebieski 1 Zielony 2 Cyjan 3 Czerwony 4 Magenta 5 Brązowy 6 Jasnoszary 7 Ciemnoszary 8 Jasnoniebieski 9 Jasnozielony 10 Jasny cyjan 11 Jasnoczerwony 12 Jasna magenta 13 Żółty 14 SetTextBuf(F:Text;Bufor) Ustawia bufor wejścia/wyjścia dla pliku tekstowego SizeOf(parametr) Funkcja zwraca ilość bajtów jaką zajmuje obiekt podany jako parametr. Patrz także: Exit, Halt Patrz także: FilePos Patrz także: Eof, SeekEoln Patrz także: Eof, SeekEof Patrz także: Addr, Ofs Patrz także: Reset, Rewrite, Append Patrz także: virtual 10
Str(X;S:string); Instrukcja zamienia liczbę X na łańcuch znaków. Sqr(liczba) Funkcja podnosi liczbę do kwadratu. Sqrt(liczba : real) : real Funkcja pierwiastkuje liczbę. Succ(parametr) Funkcja podaje następnika parametru Swap(liczba) Funkcja zamienia "wysokie" i "niskie" bity w liczbie. Liczba jest typu Integer lub Word Trunc( liczba:real) : longint; Funkcja skraca liczbę rzeczywistą do liczby całkowitej. Truncate(F) Skraca plik począwszy od aktualnej pozycji. UpCase(Ch : char) : char; Konwertuje znak do wielkiej litery. Val(S:string;V:integer;error:integer); Funkcja przekształca ciąg znaków na liczbę. Var Po tym słowie kluczowym następuje deklaracja zmiennych użytych w programie. Write( [F;] X); Instrukcja zapisuje wartość parametru X na aktualne urządzenie wyjścia. Jeżeli podana jest specyfikacja pliku to zapisz tą wartość do pliku. Writeln Instrukcja działa analogicznie do Write lecz na końcu przechodzi do następnej linii. Patrz także: Sqrt Patrz także: Sqr Patrz także: Pred, Inc, Dec Patrz także: Lo, Hi : Swap($abcd)=$cdab Patrz także: Int, Round Patrz także: Reset, Rewrite, Seek : UpCase('a')='A'; UpCase('B')='B'; Patrz także: Str : val('123',i,error); val('abc',i,error); Patrz także: Read, Readln, Writeln Patrz także: Read, Readln, Write {i=123} {error<>0} 11