Podstawy PASCALa – Kompendium

Uruchamianie Turbo Pascal 7.0

Login

sNrSaliNrKomputera, np.: s0195

Hasło

stud

Polecenie (DOS)

nturbo lub ntp70

 

Klawiatura

 

Kombinacja klawiszy

Funkcja

Edytor

strzałki

Poruszanie kursorem

HOME

Początek linii

END

Koniec linii

CTRL + Page Up

Początek tekstu

CTRL + Page Down

Koniec tekstu

BACKSPACE 

Skasowanie znaku przed kursorem

DELETE

Skasowanie znaku za kursorem

SHIFT + strzałki

Zaznaczanie bloku

CTRL + INSERT

Skopiowanie zaznaczonego bloku do schowka

SHIFT + DELETE

Skasowanie zaznaczonego bloku

SHIFT + INSERT

Wklejenie zawartości schowka w miejscu stania kursora

F1

Pomoc – spis treści

CTRL + F1

Pomoc kontekstowa

F2

Zapisanie programu źródłowego na dysku

F3

Otwarcie pliku z dysku w nowym oknie

F10

Przejście do menu głównego

ALT + F

Rozwinięcie menu File

ALT + X

Wyjście z programu

Praca z wieloma oknami

F5

Powiększenie okna na cały ekran

ALT + zero

Lista otwartych okien

ALT + numer okna

Przełączanie między otwartymi oknami

ALT + F3

Zamykanie okna

Kompilator

CTRL + F9

Kompilacja i uruchomienie programu

ALT + F9

Sama kompilacja

Run-time

CTRL + BREAK

Przerwanie wykonywania programu

ENTER

Potwierdzenie wprowadzenia danych

Debugger

CTRL + F2

Reset programu

F8

Wykonanie pojedynczej linii

F7

Rozwinięcie procedury lub funkcji

 


Struktura programu w Pascalu

Element

Rozpoczyna

Kończy

Uwagi

Nagłówek

PROGRAM

;

Zawiera nazwę programu

Używane moduły

USES

;

Opcjonalny

Deklaracje etykiet

LABEL

;

Opcjonalny

Definicje stałych

CONST

 

Opcjonalny

Definicje typów

TYPE

 

Opcjonalny

Deklaracje zmiennych

VAR

 

Opcjonalny

Lista instrukcji

BEGIN

END.

 

Komentarz

{ lub (*

} lub *)

Opcjonalny

 

Rodzaje nagłówków

Nagłówek

Zaczyna

Kończy się

PROGRAM

Program

END.

UNIT

Moduł

END.

PROCEDURE

Procedurę

END;

FUNCTION

Funkcję

END;

 

Deklaracje stałych

Typ

Znacznik

Przykład

Całkowity dziesiętny

brak

x = 5;

Całkowity szesnastkowy

$

x = $FF;

Rzeczywisty

kropka dziesiętna

x = 5.1;

Znakowy

apostrof

x = ‘c’;

Znakowy – kody ASCII

#

x = #32;

Łańcuchowy

apostrof

x = ‘abcd’;

Łańcuchowy – kody ASCII

#

x = #13#10;

Zbiór

nawiasy kwadratowe

x = [1, 2, 3];

 

Typy całkowite

Nazwa

Min. wartość

Max. wartość

Zużycie pamięci

SHORTINT

-128

127

1 bajt

BYTE

0

255

1 bajt

INTEGER

-32768

32767

2 bajty

WORD

0

65535

2 bajty

LONGINT

-2147483648

2147483647

4 bajty

min..max  -okrojony

min

max

1-4 bajty

(a, b, c)  -wyliczeniowy

a

c

1 bajt

 


Typy rzeczywiste

Nazwa

Min. wartość

Max. wartość

Cyfry znaczące

Zużycie pamięci

SINGLE

1.5 x 10^–45

3.4 x 10^38

7-8

4 bajty

REAL

2.9 x 10^–39

1.7 x 10^38

11-12

6 bajtów

DOUBLE

5.0 x 10^–324

1.7 x 10^308  

15-16

8 bajtów

EXTENDED

3.6 x 10^–4951

1.1 x 10^4932

19-20

10 bajtów

COMP

–2^63+1

2^63 –1

całkowity

8 bajtów

 

Typy znakowe

Nazwa

Min. długość

Max. długość

Zużycie pamięci

CHAR

1

1

1 bajt

STRING

0

255

256 bajtów

STRING[długość]

0

długość

długość+1

 


Typy złożone

Opis

Składnia

Zbiór

SET OF typ_całkowity;

Tablica jednowymiarowa

ARRAY [wymiar] OF typ;

Tablica wielowymiarowa

ARRAY [w1,w2] OF typ;

Rekord

RECORD lista_pól; END;

Plik tekstowy

TEXT;

Plik elementowy

FILE OF typ;

 

 

 

Inne typy

Opis

Składnia

Logiczny

BOOLEAN

Wskaźnik bez typu

POINTER

Wskaźnik z typem

^typ


Instrukcje Pascala

Nazwa

Składnia

Instrukcje proste

Wywołanie procedury

nazwa_procedury(parametry);

Przypisanie

zmienna := wyrażenie;

Instrukcje złożone

Blok

BEGIN lista_instrukcji; END;

Instrukcja wiążąca

WITH rekord DO instrukcja;

Wybór prosty

IF warunek THEN instrukcja;

Wybór pełny

IF warunek THEN instrukcja ELSE instrukcja2;

Wybór wielokrotny

CASE wyrażenie OF wartości: instrukcja; ELSE instruk2; END;

Pętla N-krotna

FOR zmienna_całkowita := wart1 TO wart2 DO instrukcja;

Pętla 0..? –krotna

WHILE warunek DO instrukcja;

Pętla 1..? –krotna

REPEAT lista_instrukcji; UNTIL warunek_końca;

Instrukcje sterowania

 

Wyjście z bloku

BREAK

Powrót z procedury

EXIT

Przerwanie programu

HALT

Skok do etykiety

GOTO etykieta;     odradzane

 


 Podstawowe procedury Turbo Pascala

Nazwa

Rola

Parametry

Procedury wejścia-wyjścia

WRITE

Pisze na ekranie

Lista wartości do wypisania

WRITELN

Pisze na ekranie i zmienia linię

Lista wartości do wypisania

READLN

Wczytuje wartość z klawiatury

Zmienna typu prostego

Procedury in- i dekrementacji

INC

Zwiększa zmienną o 1

Zmienna całkowita

DEC

Zmniejsza zmienną o 1

Zmienna całkowita

Inne procedury

RANDOMIZE

Inicjalizuje generator liczb losowych

-

VAL

Zamienia tekst na liczbę

Tekst, zmienna docelowa, zmienna zwracająca kod błędu

STR

Zamienia liczbę na tekst wg formatu

Wartość, zmienna docelowa

 

Standardowe funkcje Turbo Pascala

Nazwa funkcji

Zwracana wartość

Typ parametru

Typ wyniku

Funkcje dla liczb całkowitych

LOW

Najmniejszy element typu

Całkowity

Całkowity

HIGH

Największy element typu

Całkowity

Całkowity

PRED

Element poprzedzający

Całkowity

Całkowity

SUCC

Element następujący

Całkowity

Całkowity

RANDOM

Wartość losowa z podanego zakresu

Całkowity

Całkowity

Funkcje konwersji typów

ROUND

Zaokrąglenie

Rzeczywisty

Całkowity

TRUNC

Część całkowita

Rzeczywisty

Całkowity

CHR

Znak ASCII

Całkowity

Znakowy

ORD

Kod ASCII

Znakowy

Całkowity

Funkcje matematyczne

ABS

Wartość bezwzględna

Rzeczywisty

Rzeczywisty

ARCTAN

Arcus tangens

Rzeczywisty

Rzeczywisty

COS

Cosinus

Rzeczywisty

Rzeczywisty

EXP

Potęga liczby e

Rzeczywisty

Rzeczywisty

FRAC

Część ułamkowa

Rzeczywisty

Rzeczywisty

INT

Część całkowita

Rzeczywisty

Rzeczywisty

LN

Logarytm naturalny

Rzeczywisty

Rzeczywisty

SIN

Sinus

Rzeczywisty

Rzeczywisty

SQR

Kwadrat

Rzeczywisty

Rzeczywisty

SQRT

Pierwiastek kwadratowy

Rzeczywisty

Rzeczywisty

Funkcje znakowe

UPCASE

Duża litera

Znakowy

Znakowy

LENGTH

Długość ciągu znaków

Łańcuchowy

Całkowity

 

Operatory w Turbo Pascalu

Operator

Znaczenie

Przykład

Priorytet wykonania

Operatory arytmetyczne

-

Zmiana znaku

a := -a;

1

*

Mnożenie

a := a*b;

2

/

Dzielenie bez reszty

r := a/b;

2

DIV

Dzielenie z resztą

i := a div b;

2

MOD

Reszta z dzielenia

i := a mod b;

2

+

Dodawanie

a := a+b;

3

-

Odejmowanie

a := a-b;

3

Operatory porównania

=

Równe

IF a = b THEN ...

4

<>

Nierówne

IF a <> b THEN ...

4

<

Mniejsze

IF a < b THEN ...

4

<=

Mniejsze równe

IF a <= b THEN ...

4

>

Większe

IF a > b THEN ...

4

>=

Większe równe

IF a >= b THEN ...

4

IN

Należy do

IF a IN zbior THEN ...

4

Operatory logiczne i bitowe

NOT

Negacja

IF NOT (a<4) THEN ...

1

AND

Iloczyn logiczny

IF (a<4) AND (a>1) THEN ...

2

OR

Suma logiczna

IF (a>=4) OR (a<=1) ...

3

XOR

Różnica symetryczna

a := b XOR $7F;

3

SHL

Przesunięcie w lewo

a := b shl 3;

2

SHR

Przesunięcie w prawo

a := b shr 3;

2

Inne operatory

.

Wskazanie

a := rekord.pole;

1

&

Referencja

adres := &a;

1

^

Wyłuskanie

b := adres^;

1

typ( )

Wymuszenie typu

b := byte(i);

1

Podstawowe operacje na plikach

Nazwa

Rola

Parametr1

Parametr2

Etap

ASSIGN

Przyporządkowuje zmiennej rzeczywisty plik na dysku

Zmienna typu plik

Ścieżka dostępu do pliku

1

RESET

Otwiera istniejący plik do czytania i zapisu

Zmienna typu plik

Rozmiar elementu (opcja)

2

REWRITE

Otwiera nowy plik do zapisu

Zmienna typu plik

Rozmiar elementu (opcja)

2

APPEND

Otwiera istniejący plik do dopisywania

Zmienna typu TEXT

-

2

READ

Wczytuje zmienną z pliku

Zmienna typu plik

Zmienna typu element pliku

3

WRITE

Zapisuje wartość do pliku

Zmienna typu plik

Wartość

3

EOF

Sprawdza osiągnięcie końca pliku

Zmienna typu plik

-

3

CLOSE

Zamyka plik

Zmienna typu plik

-

4

 

 

Niektóre zaawansowane operacje na plikach

Nazwa (parametry) : typ funkcji

Działanie

BlockRead (var Plik: File; var Bufor; Ile: Integer)

Czyta blok danych

BlockWrite (var Plik: File; var Bufor; Ile: Integer)

Zapisuje blok danych

FilePos (var Plik): Longint

Zwraca pozycję w pliku

FileSize (var Plik): Integer

Zwraca rozmiar pliku

IOResult: Integer

Sprawdza czy wystąpił błąd we/wy

MkDir (Nazwa: string)

Tworzy folder

Rename (var Plik; NowaNazwa:string);

Zmienia nazwę pliku

RmDir (Nazwa: string)

Usuwa pusty folder

Seek (var Plik; POZ: Longint)

Ustawia pozycję w pliku na POZ

Truncate (var PlikNietekstowy)

Kończy plik na aktualnej pozycji

 

Wybrane procedury i funkcje modułu CRT

Nazwa (parametry) : typ funkcji

Działanie

CLRSCR

Czyści ekran

DELAY (MS : WORD)

Wstrzymuje program na MS milisekund

GOTOXY (X, Y : BYTE)

Przenosi kursor na pozycję X, Y

KEYPRESSED : BOOLEAN

Sprawdza, czy wciśnięto klawisz

NOSOUND

Wyłącza dźwięk

READKEY : CHAR

Zwraca wciśnięty klawisz

SOUND (HZ : WORD)

Włącza dźwięk o częstotliwości HZ

TEXTBACKGROUND (COLOR : BYTE)

Ustawia kolor tła na COLOR

TEXTCOLOR (COLOR : BYTE)

Ustawia kolor znaków na COLOR

UPCASE (LETTER : CHAR) : CHAR

Zamienia literę na dużą literę

WHEREX : BYTE

Zwraca pozycję poziomą kursora

WHEREY : BYTE

Zwraca pozycję pionową kursora

 

Wybrane procedury modułu DOS

Nazwa (parametry)

Działanie

GETDATE (VAR R, M, D, DTYG : WORD)

Zwraca aktualną datę

GETTIME (VAR G, M, S , SETNA :WORD)

Zwraca aktualny czas