Podstawowe wiadomoś ci o języku programowania Pascal.
Na początku lat siedemdziesiątych Niklaus Wirth opublikował pierwszy opis języka Pascal (był on wzorowany na języku Algol 60). Ze względu na zalety, język ten nadaje się dobrze do wprowadzenia elementó w programowania. Przejrzysty i czytelny kod źró dłowy sprawia, ż e edycja treś ci programu, jego analiza czy pó źniejsza modyfikacja jest łatwiejsza niż w wielu innych językach programowania.
Język algorytmiczny - język opisu algorytmó w i komunikacji między uż ytkownikami komputeró w.
Większoś ć ze stosowanych językó w programowania spełnia wymagania językó w algorytmicznych.
Język strukturalny - umoż liwia budowanie programó w podzielonych na bloki, częś ci – procedury bądź
funkcje. Programowanie strukturalne ułatwia projektowanie, testowanie a takż e „utrzymanie” kodu programu.
Program źró dłowy składa się z jednostek leksykalnych oraz separatoró w (spacja, tabulacja, ś rednik, przecinek, kropka, znak zmiany wiersza i komentarz). Treś ć programu źró dłowego wpisuje się do pliku tekstowego (najczęś ciej o rozszerzeniu 'PAS').
Uwaga: W jednym pliku moż e być umieszczony tylko jeden program źró dłowy.
Jednostki leksykalne to:
a) Słowa kluczowe - są to spó jne ciągi liter, któ re tworzą zarezerwowane słowa angielskie o ustalonym znaczeniu.
absolute
downto
in
or
then
and
else
inherited
packed
to
array
end
inline
private
type
asm
external
interface
procedure
unit
assembler
far
interrupt
program
until
begin
file
label
public
uses
case
for
mod
record
var
const
forward
near
repeat
virtual
constructor
function
nil
set
while
destructor
goto
not
shl
with
div
if
object
shr
xor
do
implementation
of
string
b) Identyfikatory - są to spó jne ciągi liter i cyfr rozpoczynające się od litery, nie będące słowem kluczowym.
- nie są rozró ż niane duż e i małe litery.
- znak podkreś lenia _ uznawany jest za literę;
Identyfikatory służ ą do oznaczania: programó w, stałych, typó w, zmiennych, pó l w rekordach, procedur, funkcji, parametró w formalnych.
Uwaga: słowa kluczowe nie mogą być uż ywane jako identyfikatory.
c) Liczby – całkowite, rzeczywiste.
d) Napisy – ciągi znakó w między apostrofami (np. ’ to jest napis ’ ).
e) Literały logiczne - mają postać napisu true lub false.
f) Komentarze - nie wpływają na wykonywanie programu i wykorzystywane są do zwiększenia czytelnoś ci programu i zrozumienia jego treś ci. Są to napisy umieszczone w klamrach (* ... *) lub
{ ... } .
Struktura programu:
1. Nagłó wek programu
2. Deklaracja modułó w
3. Blok definicji i deklaracji
4. Blok podprogramó w
5. Blok głó wny
W każ dym programie muszą wystąpić zawsze dwa bloki 1 i 5. Istotna jest kolejnoś ć umieszczania blokó w w programie (blok 1 zawsze na początku, blok 5 na końcu).
Nagłó wek programu składa się ze słowa kluczowego „PROGRAM”, po któ rym umieszcza się nazwę programu (identyfikator) oraz ewentualnie ujętą w nawiasy okrągłe listę parametró w (kolejne elementy tej listy oddzielamy przecinkami). Lista parametró w moż e być pomijana. Nagłó wek programu zakończony jest ś rednikiem.
PAU - Pascal cz.1
1 / 5
Blok głó wny programu rozpoczyna się od słowa „begin” a zakończeniem bloku (programu) jest słowo
„end.” (obowiązkowo z kropką). Pomiędzy słowami „begin” a „end” wpisuje się instrukcje programu oraz wywołania podprogramó w (procedur, funkcji). Instrukcje umieszczone w programie oddzielane są od siebie ś rednikami.
Program Nazwa_Programu ;
{ nagłó wek programu }
begin
{ początek bloku głó wnego }
Instrukcja_1 ;
Instrukcja_2 ;
. . .
Instrukcja_N
end.
{ koniec bloku głó wnego }
Operatory:
§ arytmetyczne:
+
-
*
/
div
mod
§ relacyjne:
=
<
>
<>
<=
>=
§ logiczne:
and
or
not
Przykłady:
a + 1
NOT ( x = 0 )
suma / ( ( 3 + 2 * licznik ) - 31.567 )
( x = 3 ) OR ( x MOD 5 = 0)
liczb_1 <= liczba_2
( x = 5 ) OR ( y = 4 ) OR ( z = ‘T’)
‘A’ + ‘z’ { źle ‘A’ + 1 }
( x = 1 ) AND ( ( x = y ) OR ( x = z) )
( x = 1 ) AND NOT ( ( x = y ) OR ( x = z) )
Instrukcja przypisania to symbol dwuznakowy „ := ” i służ y do przypisania zmiennej wartoś ci i ma następującą postać :
zmienna := stała lub wyraż enie Przykłady:
x := 1 ;
{ źle 1 := x }
wynik := suma / populacja ;
a := 127 ; a := a + 1;
{ źle a + 1 := x }
a := a + c * 12 ;
{ źle a := x*2 + ‘A’ }
znak := ‘A’ ;
{ źle znak := ‘A’+’z’, jeż eli zmienna znak moż e "przechowywać " tylko jeden znak }
napis := 'Egzamin JPK ' ;
napis := napis + '2004'; { źle napis := napis + 2004 ; }
zmienna_logiczna := true ; { źle zmienna_logiczna := 'false' }
debet := stan_konta < 0 ;
udzielic_kredyt := (K1 and K2) or K3;
Uwaga: Każ da zmienna uż yta w programie musi być w nim zadeklarowana.
Blok deklaracji zmiennych - rozpoczyna się od słowa kluczowego VAR, po któ rym następuje wykaz deklaracji zmiennych.
var
lista_identyfikatorow_1 : nazwa_typu ;
. . .
lista_identyfikatorow_N : nazwa_typu ;
Lista identyfikatoró w to oddzielona przecinkami lista nazw zmiennych, a nazwa typu zawiera okreś lenie typu zmiennej.
Typy danych (wybrane) :
§ zbió r liczb całkowitych:
(rozmiar zajmowanej pamięci)
- Byte
0 ... 255
(1 bajt)
- Word
0 ... 65 535
(2 bajty)
- ShortInt
-128 ... +127
(1 bajt)
- Integer
-32 768 ... +32 767
(2 bajty)
- LongInt
-2 147 483 648 ... +2 147 483 647
(4 bajty)
§ zbió r liczb rzeczywistych:
- Real
2.9e-39 ... 1.7e38
(6 bajtó w)
§ zbió r znakó w
- Char
znak ASCII np. ‘A’, 'z', ‘5’, ‘$’, ‘@’, '+'
(1 bajt)
§ zbió r wartoś ci logicznych:
- Boolean
wartoś ci logiczne: true, false
(1 bajt)
PAU - Pascal cz.1
2 / 5
Przykłady deklaracji zmiennych:
Dobrze:
Źle:
a : byte ;
błędna deklaracja : liczba ;
L1, L2, L3, L4 : word ;
5 : byte ;
suma : integer ; srednia : real ;
2005rok : word ;
liczba_glosow : longint ;
%procent : real ;
Instrukcja WRITE
Składnia: write ( lista_parametró w ) lub writeln ( lista_parametró w ) Interpretacja: Wyś wietlenie informacji na ekranie monitora (np. tekstu, wartoś ci zmiennej, stałej, wyraż enia, funkcji).
Przykłady:
write ( 2004 ) ;
write ( zmienna ) ;
write ( ‘napis’ ) ;
writeln ( ‘suma=‘ , s ) ;
writeln ( ‘napis1‘ , zm1, ... , ‘napisN‘ , zmN ) ;
writeln ( ‘wynik obliczeń = ‘ , suma / ( n + 2 ) ) ;
Instrukcja READ
Składnia: read ( lista_parametró w ) lub readln ( lista_parametró w ) Interpretacja : Wprowadzenie do komputera wartoś ci z klawiatury i podstawienie wczytanej wartoś ci pod wskazaną zmienną (zmienne) - parametr instrukcji.
Przykłady:
Dobrze:
Źle:
read ( x ) ; readln ( suma ) ;
readln ( 255 ) ; read ( ‘A‘ ) ; read ( false ) ; read ( liczba1 , liczba2 ) ;
readln ( ‘napis ‘ , zm ) ;
readln ( zm1 , zm2 , ... zmN ) ;
readln ( zm + 1 ) ;
Przykład programu obliczającego sumę i ś rednią dwó ch liczb, któ rych wartoś ć jest wprowadzana z klawiatury (dwie wersje).
{ przypadek gdy:
(* przypadek gdy wartoś ci liczb mogą
liczba1 >= 0 i liczba2 >=0 }
być ujemne *)
(*** nagłó wek programu ***)
program Srednia_liczb_wersja_2;
program Srednia_liczb_wersja_1;
var
liczba1, liczba2 : integer ; { dane }
(*** deklaracje zmiennych ***)
suma : longint ;
{ wynik }
var
srednia : real ;
{ wynik }
liczba1 : byte ;
{ dane we }
begin
liczba2 : byte ;
{ dane we }
write (‘ wprowadź pierwszą liczbę: ‘) ;
suma : word ;
{ dane wy }
readln ( liczba1 ) ;
write (‘ wprowadź drugą liczbę: ‘) ;
(*** blok głó wny ***)
readln ( liczba2 ) ;
begin
{--- 1. Wprowadzanie danych ---}
suma := liczba1 + liczba2 ;
write (‘ wprowadź pierwszą liczbę: ‘) ;
srednia := suma / 2 ;
read ( liczba1 ) ;
write (‘ wprowadź drugą liczbę: ‘) ;
writeln ( ‘Wyniki : ‘) ;
read ( liczba2 ) ;
writeln ( ‘suma =‘ , suma, ‘ oraz ‘,
‘ś rednia=‘ , srednia )
{--- 2. Obliczenia ---}
end.
suma := liczba1 + liczba2 ;
{--- 3. Wyprowadzenie wynikó w ---}
writeln ( ‘Wyniki: ‘) ;
writeln ( ‘suma=‘ , suma ) ;
writeln ( ‘ś rednia=‘ , suma / 2)
end.
PAU - Pascal cz.1
3 / 5
1. Instrukcje proste: np. przypisania
2. Instrukcje strukturalne:
a) Instrukcja złoż ona
begin ... end
b) Instrukcje warunkowe
if ... then ... else
- ”jeż eli... wtedy... w przeciwnym razie”
if ... then
- ”jeż eli... wtedy”
case ... of
- ”wyboru”
c) Instrukcje iteracyjne
repeat ... until
- ”powtarzaj... aż do”
while ... do
- ”dopó ki... wykonuj”
for ... to ... do
- ”dla... wykonuj”
d) Instrukcja wiąż ąca
with ... do
Instrukcja złoż ona
Ciąg kilku instrukcji moż na zgrupować w jedną instrukcję tzw. złoż oną, jeż eli poprzedzi się je słowem kluczowym "BEGIN" a zakończy słowem "END".
Przykład instrukcji złoż onej:
BEGIN
instrukcja_1 ; instrukcja_2 ; . . .
Begin
instrukcja_N
Write ( ‘wprowadź x i y : ’ ) ; Readln (x,y) ;
END
Writeln (‘ x + y = ‘, x+y )
End
Instrukcja warunkowa
if wyr_log then instrukcja_PRAWDA if wyr_log then instrukcja_PRAWDA ; else instrukcja_FAŁ SZ ;
TAK
NIE
TAK
wyraż enie
wyraż enie
logiczne
logiczne
instrukcja
instrukcja
instrukcja
NIE
PRAWDA
FAŁ SZ
PRAWDA
Przykłady instrukcji warunkowej:
if liczba=7 then write ('siedem');
if (x>=1) and (x<=12) then
if (znak>='A') and (znak<='Z') then writeln ('duż a litera'); if x<=3 then kwartal := 1
else if x<=6 then kwartal := 2
if x mod y = 0
else if x<=9 then kwartal := 3
then write ( x, ' jest podzielne przez ' , y )
else kwartal := 4
else write ( x, ' nie jest podzielne przez ' , y );
else writeln ('Błędny numer miesiąca');
PAU - Pascal cz.1
4 / 5
{ Zastosowanie instrukcji warunkowej if...then...else }
(* Zastosowanie instrukcji warunkowej if...then *) PROGRAM Pole_Kola_1 ;
PROGRAM Zamianka ;
VAR promien : real ;
{ promień koła }
VAR liczba : longint ;
pole : real ;
{ pole koła }
BEGIN
BEGIN
Write ( ’ Wprowadź liczbę : ’ );
Write ( ’ Wprowadź promień koła : ’ );
ReadLn ( liczba );
ReadLn ( promien );
IF ( liczba < 0 ) THEN
pole := 3.14 * promien * promien ;
liczba := - liczba ;
IF ( promien > 0 ) THEN
Writeln ( ’ Wartoś ć bezwzględna liczby = ’ , liczba ) Writeln ( ’ Pole koła= ’ , pole )
END.
ELSE
Writeln ( ’ Brak rozwiązania ! ’ )
END.
{ Zastosowanie instrukcji warunkowej i z łoż onej }
PROGRAM Pole_Kola_2 ;
VAR promien : real ;
{ promień koła }
pole : real ;
{ pole koła }
BEGIN
Write ( ’ Wprowadź promień koła : ’ );
ReadLn ( promien );
IF ( promien > 0 ) THEN
BEGIN
pole := 3.14 * promien * promien ;
Writeln ( ’ Pole koła= ’ , pole )
END
ELSE Writeln ( ’ Brak rozwiązania ! ’ )
END.
PAU - Pascal cz.1
5 / 5