background image

 

 

 

 

PASCAL

PASCAL

background image

 

 

 

 

Podstawowe pojęcia

Podstawowe pojęcia

Programowanie strukturalne – 

Programowanie strukturalne – 

rozwiązywanie problemów metodą 

rozwiązywanie problemów metodą 

„top-down” (od szczegółu do ogółu)

„top-down” (od szczegółu do ogółu)

Program strukturalny   

Program strukturalny   

a)konstruowany bez instrukcji skoku 

a)konstruowany bez instrukcji skoku 

b)instrukcje wykonują się 

b)instrukcje wykonują się 

sekwencyjnie 

sekwencyjnie 

background image

 

 

 

 

Język PASCAL

Język PASCAL

Specjalny język do nauki programowania 

Specjalny język do nauki programowania 

strukturalnego

strukturalnego

Pakiet programowy zawierający 

Pakiet programowy zawierający 

interakcyjny system programowania 

interakcyjny system programowania 

zawierający: 

zawierający: 

a)

a)

kompilator języka TURBO PASCAL

kompilator języka TURBO PASCAL

b)

b)

złączony z nim ekranowy edytor tekstu

złączony z nim ekranowy edytor tekstu

c)

c)

program lokalizowania i usuwania 

program lokalizowania i usuwania 

usterek (debugger)

usterek (debugger)

background image

 

 

 

 

Alfabet języka PASCAL

Alfabet języka PASCAL

Alfabet języka:

Alfabet języka:

a)

a)

litery małe i duże alfabetu 

litery małe i duże alfabetu 

angielskiego oraz znak _

angielskiego oraz znak _

b)

b)

cyfry od 0 do 9

cyfry od 0 do 9

c)

c)

znaki specjalne (pozostałe znaki 

znaki specjalne (pozostałe znaki 

dostępne z klawiatury)

dostępne z klawiatury)

d)

d)

znaki sterujące (tablica ASCII)

znaki sterujące (tablica ASCII)

background image

 

 

 

 

Słowa kluczowe języka PASCAL

Słowa kluczowe języka PASCAL

Słowa kluczowe:

Słowa kluczowe:

absolute

absolute

and

and

array

array

begin

begin

case

case

const

const

costructor

costructor

destructor

destructor

div

div

do

do

downto

downto

else

else

end

end

external

external

file

file

for

for

forward

forward

function

function

goto

goto

if

if

implementation

implementation

in

in

inline

inline

interface

interface

interrupt

interrupt

label

label

mod

mod

nil

nil

background image

 

 

 

 

Słowa kluczowe języka PASCAL

Słowa kluczowe języka PASCAL

Słowa kluczowe (c.d.)

Słowa kluczowe (c.d.)

not

not

object

object

of

of

or

or

packed

packed

procedure

procedure

program

program

record

record

repeat

repeat

set

set

shl

shl

shr

shr

string

string

then

then

to

to

type

type

unit

unit

until

until

uses

uses

var

var

virtual

virtual

while

while

with

with

xor

xor

background image

 

 

 

 

Literały

Literały

W języku PASCAL występują następujące stałe:

W języku PASCAL występują następujące stałe:

1.

1.

liczbowe

liczbowe

a)

a)

całkowite -

całkowite -

ciąg cyfr ze znakiem lub bez

ciąg cyfr ze znakiem lub bez

(np. –123)

(np. –123)

b)

b)

rzeczywiste

rzeczywiste

i.

i.

w postaci 

w postaci 

z kropką dziesiętną

z kropką dziesiętną

 (część całkowita 

 (część całkowita 

zawsze musi wystąpić, np. –0.5)  

zawsze musi wystąpić, np. –0.5)  

ii.

ii.

w postaci 

w postaci 

wykładniczej 

wykładniczej 

mEc

mEc

 (

 (

wartosc = m 10

wartosc = m 10

c

c

)

)

gdzie 

gdzie 

m – 

m – 

mantysa (liczba rzeczywista w postaci z 

mantysa (liczba rzeczywista w postaci z 

kropką dziesiętną, zawsze musi wystąpić) oraz 

kropką dziesiętną, zawsze musi wystąpić) oraz 

c

c

 – 

 – 

cecha liczby ( liczba całkowita)(np. 1E-1, 0e2)

cecha liczby ( liczba całkowita)(np. 1E-1, 0e2)

c)

c)

szesnastkowe – poprzedzone znakiem 

szesnastkowe – poprzedzone znakiem 

$

$

 najwyżej 

 najwyżej 

osiem cyfr szesnastkowych

osiem cyfr szesnastkowych

background image

 

 

 

 

Literały

Literały

2.

2.

znakowe – pojedyncze znaki ujęte w apostrofy 

znakowe – pojedyncze znaki ujęte w apostrofy 

(

(

‘‘

‘‘

) lub poprzedzony znakiem 

) lub poprzedzony znakiem 

# kod ASCII 

# kod ASCII 

3.

3.

tekstowe (łańcuchy) – ujęte w apostrofy ciągi 

tekstowe (łańcuchy) – ujęte w apostrofy ciągi 

maksymalnie 255 znaków

maksymalnie 255 znaków

4.

4.

logiczne – dwie wartości 

logiczne – dwie wartości 

TRUE

TRUE

 oraz 

 oraz 

FALSE

FALSE

5.

5.

komentarz – ciągi znaków ujęte w nawiasy 

komentarz – ciągi znaków ujęte w nawiasy 

klamrowe 

klamrowe 

{}

{}

 lub 

 lub 

(* *)

(* *)

 ( są ignorowane przez 

 ( są ignorowane przez 

PASCAL)

PASCAL)

background image

 

 

 

 

Nazwa

Nazwa

W TURBO PASCALU poprawna nazwa 

W TURBO PASCALU poprawna nazwa 

dowolnego obiektu to 

dowolnego obiektu to 

ciąg liter i cyfr 

ciąg liter i cyfr 

zaczynający się od litery zakończony 

zaczynający się od litery zakończony 

spacją

spacją

 (znak _ jest uważany za literę)

 (znak _ jest uważany za literę)

background image

 

 

 

 

Priorytety działań

Priorytety działań

Ustalone są następujące priorytety dla działań 

Ustalone są następujące priorytety dla działań 

(począwszy od największego)

(począwszy od największego)

1.

1.

operacje w nawiasach

operacje w nawiasach

2.

2.

operatory zmiany znaku i logiczne NOT

operatory zmiany znaku i logiczne NOT

3.

3.

*, /, div, mod, AND

*, /, div, mod, AND

4.

4.

+, -, OR

+, -, OR

5.

5.

=,<>,<,>,<=,>=

=,<>,<,>,<=,>=

Jeżeli na danym poziomie występują operatory o 

Jeżeli na danym poziomie występują operatory o 

takim samym priorytecie, to są wykonywane w 

takim samym priorytecie, to są wykonywane w 

kolejności od lewej do prawej

kolejności od lewej do prawej

background image

 

 

 

 

Podstawowe funkcje 

Podstawowe funkcje 

arytmetyczne

arytmetyczne

SQRT(x)

SQRT(x)

x

x

SQR(x)

SQR(x)

x

x

2

2

ABS(x)

ABS(x)

|x|

|x|

LN(X)

LN(X)

ln x

ln x

EXP(X)

EXP(X)

e

e

x

x

SIN(x)

SIN(x)

sin x

sin x

COS(x)

COS(x)

cos x

cos x

background image

 

 

 

 

Klasyfikacja typów danych

Klasyfikacja typów danych

w y lic z e n io w y

o k r o jo n y

c a łk o w ity

lo g ic z n y

z n a k o w y

p o r z ą d k o w y

r z e c z y w is ty

p r o s ty

ła ń c u c h o w y

ta b lic o w y

r e k o r d o w y

z b io r o w y

p lik o w y

s tr u k tu r a ln y

o b ie k to w y

w s k a ź n ik o w y

p r o c e d u r a ln y

ty p y   d a n y c h   w   P A S C A L u

background image

 

 

 

 

Typ wyliczeniowy

Typ wyliczeniowy

Stosuje się dla zbiorów o 

Stosuje się dla zbiorów o 

niewielkiej

niewielkiej

 liczbie 

 liczbie 

elementów

elementów

Definicja: 

Definicja: 

TYPE  

TYPE  

nazwa_typu=(lista_elementów)

nazwa_typu=(lista_elementów)

np. 

np. 

TYPE

TYPE

 pora=(wiosna, lato, jesien, zima);

 pora=(wiosna, lato, jesien, zima);

Ten sam element nie może 

Ten sam element nie może 

występować w 

występować w 

dwóch typach

dwóch typach

 wyliczeniowych

 wyliczeniowych

W obrębie jednego typu elementy 

W obrębie jednego typu elementy 

muszą 

muszą 

być różne

być różne

background image

 

 

 

 

Typ okrojony

Typ okrojony

służy do ograniczania zakresów 

służy do ograniczania zakresów 

wartości dowolnego typu 

wartości dowolnego typu 

porządkowego

porządkowego

definicja:

definicja:

TYPE

TYPE

 nazwa_typu=ogr_dolne..ogr_gorne;

 nazwa_typu=ogr_dolne..ogr_gorne;

np. 

np. 

TYPE

TYPE

 duza=‘A’..’Z’;

 duza=‘A’..’Z’;

ogr_dolne i ogr_gorne może być opisane 

ogr_dolne i ogr_gorne może być opisane 

wyrażeniem, ale nie może zaczynać się od 

wyrażeniem, ale nie może zaczynać się od 

nawiasu

nawiasu

 i wartość wyrażenia musi być 

 i wartość wyrażenia musi być 

typu 

typu 

przeliczeniowego

przeliczeniowego

background image

 

 

 

 

Typy całkowite

Typy całkowite

nazwa

nazwa

zakres

zakres

zajętość 

zajętość 

pamięci

pamięci

SHORTINT

SHORTINT

-128..127

-128..127

1 bajt

1 bajt

BYTE

BYTE

+0..255

+0..255

1 bajt

1 bajt

INTEGER

INTEGER

-32768..32767

-32768..32767

2 bajty

2 bajty

WORD

WORD

+0..65535

+0..65535

2 bajty

2 bajty

LONGINT

LONGINT

-21474833648..2147483647

-21474833648..2147483647

4 bajty

4 bajty

background image

 

 

 

 

Pozostałe typy porządkowe

Pozostałe typy porządkowe

typ logiczny 

typ logiczny 

BOOLEAN

BOOLEAN

, wartości 

, wartości 

TRUE

TRUE

 oraz 

 oraz 

FALSE

FALSE

typ znakowy

typ znakowy

 CHAR 

 CHAR 

elementami są 

elementami są 

znaki ASCII

znaki ASCII

background image

 

 

 

 

Typy rzeczywiste

Typy rzeczywiste

standardowy 

standardowy 

REAL

REAL

 : 

 : 

najmniejsza liczba dodatnia 2.9 e-39

najmniejsza liczba dodatnia 2.9 e-39

największa wartość 1.7 e38

największa wartość 1.7 e38

zajętość pamięci 6 bajtów

zajętość pamięci 6 bajtów

mantysa 11 lub 12 cyfr znaczących

mantysa 11 lub 12 cyfr znaczących

background image

 

 

 

 

Typy rzeczywiste (c.d.)

Typy rzeczywiste (c.d.)

jeśli włączona jest opcja korzystania z 

jeśli włączona jest opcja korzystania z 

koprocesora, lub jego emulacja wtedy 

koprocesora, lub jego emulacja wtedy 

dostępne są dodatkowe typy rzeczywiste

dostępne są dodatkowe typy rzeczywiste

nazwa

nazwa

zajętość 

zajętość 

pamięci

pamięci

najmniejsza 

najmniejsza 

wartość 

wartość 

dodatnia

dodatnia

największa 

największa 

wartość

wartość

mantysa 

mantysa 

(ilość cyfr 

(ilość cyfr 

znaczących)

znaczących)

SINGLE

SINGLE

4 bajty

4 bajty

1.5 e-45

1.5 e-45

3.4 e38

3.4 e38

 

 

7 lub 8

7 lub 8

DOUBLE

DOUBLE

8 bajtów

8 bajtów

5.0 e-324

5.0 e-324

1.7 e308

1.7 e308

15 lub 16

15 lub 16

EXTENDED

EXTENDED

10 bajtów

10 bajtów

3.4 e-4932

3.4 e-4932

1.1 e4932

1.1 e4932

19 lub 20

19 lub 20

background image

 

 

 

 

Typ łańcuchowy

Typ łańcuchowy

służy do reprezentowania tekstów

służy do reprezentowania tekstów

deklaracja  

deklaracja  

TYPE

TYPE

 nazwa=

 nazwa=

STRING

STRING

[

[

rozmiar

rozmiar

];

];

gdzie 

gdzie 

rozmiar

rozmiar

 to liczba typu BYTE

 to liczba typu BYTE

brak wartości 

brak wartości 

rozmiar

rozmiar

 powoduje 

 powoduje 

domyślne przyjęcie 

domyślne przyjęcie 

rozmiar

rozmiar

=255

=255

background image

 

 

 

 

Struktura programu

Struktura programu

PROGRAM nazwa;

PROGRAM nazwa;

część opisowa (deklaracje)

część opisowa (deklaracje)

BEGIN

BEGIN

część wykonawcza (instrukcje)

część wykonawcza (instrukcje)

END.

END.

background image

 

 

 

 

Deklaracje

Deklaracje

USES

USES

 wykaz modułów - deklaracja 

 wykaz modułów - deklaracja 

modułów (bibliotek funkcji i procedur) np. 

modułów (bibliotek funkcji i procedur) np. 

USES CRT;

USES CRT;

CONST

CONST

 – definicje stałych programu, np. 

 – definicje stałych programu, np. 

CONST tekst=‘TURBO’;

CONST tekst=‘TURBO’;

TYPE 

TYPE 

– deklaracja typów użytkownika

– deklaracja typów użytkownika

VAR 

VAR 

– deklaracja zmiennych 

– deklaracja zmiennych 

występujących w programie

występujących w programie

FUNCTION

FUNCTION

PROCEDURE

PROCEDURE

 – deklaracja 

 – deklaracja 

funkcji i procedur

funkcji i procedur

background image

 

 

 

 

Instrukcje

Instrukcje

in s t r u k c ja   p r z y p is a n ia

in s t r u k c ja   p u s t a

w y w o ła n ie   p r o c e d u r y

o p e r a c je   w e / w y

p r o s t e

in s t r u k c ja   z ło ż o n a

p o s t a ć   s k r ó c o n a

p o s t a ć   p e łn a

in s t r u k c ja   w a r u n k o w a

in s t r u k c ja   'd o p ó k i'

in s tr u k c ja   'p o w t a r z a j'

in s tr u k c ja   'fo r '

in s t r u k c je   it e r a c y jn e

s t r u k t u r a ln e

in s tr u k c je

background image

 

 

 

 

Wprowadzanie danych

Wprowadzanie danych

READ

READ

(

(

lista_we

lista_we

); - powoduje wprowadzenie 

); - powoduje wprowadzenie 

znaków z klawiatury i przypisanie danych do 

znaków z klawiatury i przypisanie danych do 

zmiennych wymienionych jako 

zmiennych wymienionych jako 

lista_we

lista_we

READLN

READLN

(

(

lista_we

lista_we

); - dodatkowo przechodzi do 

); - dodatkowo przechodzi do 

następnego wiersza, bez 

następnego wiersza, bez 

lista_we

lista_we

 oczekuje na 

 oczekuje na 

wciśnięcie klawisza <ENTER>

wciśnięcie klawisza <ENTER>

lista_we

lista_we

 to wykaz zmiennych oddzielonych 

 to wykaz zmiennych oddzielonych 

przecinkami, których wartości należy wprowadzić

przecinkami, których wartości należy wprowadzić

background image

 

 

 

 

Wyprowadzanie wyników

Wyprowadzanie wyników

WRITE

WRITE

(

(

lista_wy

lista_wy

); - wyprowadza na ekran 

); - wyprowadza na ekran 

po kolei elementy z 

po kolei elementy z 

lista_wy

lista_wy

WRITELN

WRITELN

(

(

lista_wy

lista_wy

); - dodatkowo przesuwa 

); - dodatkowo przesuwa 

kursor do nowego wiersza

kursor do nowego wiersza

lista_wy 

lista_wy 

może zawierać stałe, zmienne i 

może zawierać stałe, zmienne i 

wyrażenia

wyrażenia

np. WRITE(‘DLA N=’,n,’ wynik =‘,2*n+1);

np. WRITE(‘DLA N=’,n,’ wynik =‘,2*n+1);

background image

 

 

 

 

Wyprowadzanie wyników 

Wyprowadzanie wyników 

(c.d)

(c.d)

wartość rzeczywista jest standardowo 

wartość rzeczywista jest standardowo 

wyprowadzana w postaci wykładniczej

wyprowadzana w postaci wykładniczej

wyświetlenie wartości rzeczywistej w 

wyświetlenie wartości rzeczywistej w 

postaci ‘z kropką dziesiętną’ można 

postaci ‘z kropką dziesiętną’ można 

uzyskać dając format dla wyświetlanej 

uzyskać dając format dla wyświetlanej 

wartości:

wartości:

WRITE

WRITE

(X:n:m) – n to ilość miejsc dla całej 

(X:n:m) – n to ilość miejsc dla całej 

wyświetlanej liczby, m to ilość miejsc po 

wyświetlanej liczby, m to ilość miejsc po 

przecinku  np. 

przecinku  np. 

WRITE

WRITE

(X:12:2)

(X:12:2)

background image

 

 

 

 

Instrukcja podstawienia

Instrukcja podstawienia

pozwala nadać zmiennej wartość

pozwala nadać zmiennej wartość

 

 

postać ogólna

postać ogólna

zmienna

zmienna

:=

:=

wyrażenie;

wyrażenie;

po lewej stronie instrukcji może stać tylko 

po lewej stronie instrukcji może stać tylko 

jedna zmienna

jedna zmienna

wartość wyrażenia musi być zgodna z 

wartość wyrażenia musi być zgodna z 

typem zmiennej

typem zmiennej

wyjątki: zmienna rzeczywista, wartość 

wyjątki: zmienna rzeczywista, wartość 

wyrażenia całkowita oraz zmienna 

wyrażenia całkowita oraz zmienna 

łańcuchowa i wartość wyrażenia znakowa

łańcuchowa i wartość wyrażenia znakowa

background image

 

 

 

 

Instrukcja złożona

Instrukcja złożona

powoduje, że grupa instrukcji jest 

powoduje, że grupa instrukcji jest 

uznawana przez PASCAL za jedną

uznawana przez PASCAL za jedną

postać ogólna

postać ogólna

BEGIN

BEGIN

instrukcja1; instrukcja2;..instrukcja n;

instrukcja1; instrukcja2;..instrukcja n;

END;

END;

background image

 

 

 

 

Instrukcja warunkowa

Instrukcja warunkowa

pozwala podejmować w programie decyzje

pozwala podejmować w programie decyzje

postać skrócona

postać skrócona

IF

IF

 

 

warunek 

warunek 

THEN 

THEN 

instrukcja;

instrukcja;

warunek

warunek

 – wyrażenie typu BOOLEAN

 – wyrażenie typu BOOLEAN

instrukcja – dowolna instrukcja języka 

instrukcja – dowolna instrukcja języka 

PASCAL (tylko jedna!)

PASCAL (tylko jedna!)

Jeżeli 

Jeżeli 

warunek

warunek

 ma wartość TRUE, to wykona 

 ma wartość TRUE, to wykona 

się instrukcja, w przeciwnym razie 

się instrukcja, w przeciwnym razie 

instrukcja zostanie pominięta

instrukcja zostanie pominięta

background image

 

 

 

 

Instrukcja warunkowa

Instrukcja warunkowa

postać pełna 

postać pełna 

IF warunek THEN instr1 ELSE instr2;

IF warunek THEN instr1 ELSE instr2;

Jeżeli 

Jeżeli 

warunek 

warunek 

ma wartość TRUE, to 

ma wartość TRUE, to 

wykona się instr1, w przeciwnym 

wykona się instr1, w przeciwnym 

wypadku wykona się instr2

wypadku wykona się instr2


Document Outline