pascal_6.pdf

(88 KB) Pobierz
Obsługa klawiszy rozszerzonych i własne Menu
Turbo Pascal cześć 6
ver. 1.1
Wyobraźmy sobie sytuację, gdy musimy często wykonywać (wpisywać w program) ciąg identycznych
poleceń. Jest to żmudne dla programisty i zniechęca do pisania. Właśnie w takich sytuacjach pomoc niosą
"procedury" i "funkcje", których będziemy się uczyć na dzisiejszej lekcji. Istnieje wielka różnica pomiędzy
tymi poleceniami, dziś przedstawię zasadę działania procedury.
Weźmy poniższą część programu:
Gdybyśmy musieli napisać 6 ramek musielibyśmy się napracować
Jest prostsza metoda poprzez procedury. Zobaczmy poniżej:
Jak widzimy, zadeklarowaliśmy procedurę ramka zastępującą ciąg czynności, co przy dłuższym programie
będzie miało znaczenie. Jest to najprostsza procedura gdyż nie zawiera zmiennych. Niestety, a może to i
dobrze, że ktoś wpadł na pomysł procedur ze zmiennym.
Zadanie 1
Przepisz poniższy program i sprawdź jego działanie, spróbuj przewidzieć wynik dla wybranych liczb.
PROGRAM moja_procedura;
USES Crt;
VAR x : Integer;
Zn : Char; {typ znakowy}
PROCEDURE Wypisz(y : Integer; s : String); { Procedura z parametrami }
BEGIN
WriteLn(s, y:3);
END;
PROCEDURE Oblicz(VAR z : Integer); { Zmiana wartości parametru }
BEGIN
z:=z*z;
END;
BEGIN
ClrScr;
Write('Podaj liczbe : ');
ReadLn(x);
Kurs opracował mgr Jarosław Teodorczuk
veljarek@poczta.gazeta.pl
1
322273472.001.png 322273472.002.png
Wypisz(x, 'Twoja liczba : ');
Oblicz(x);
Wypisz(x, 'Jej kwadrat : ');
Readln;
END.
Zadanie 2
Przekształć poniższy program, aby występowała w nim procedura.
Program test;
Uses CRT;
Begin
gotoXY(10,8);
Write('to jest linijka 1');
gotoXY(42,2);
Write('to jest linijka 2');
GotoXY(22,15);
Write('to jest linijka 3');
Readln;
End.
……………………………………………………………………………………………………………………...
……………………………………………………………………………………………………………………...
……………………………………………………………………………………………………………………...
……………………………………………………………………………………………………………………...
……………………………………………………………………………………………………………………...
……………………………………………………………………………………………………………………...
Wskazówka: Pamiętaj że w procedurze musimy zadeklarować zmienne
Skoro dotarliśmy do tego punktu znaczy że dobrze wam idzie praca. Muszę tu wspomnieć o bardzo istotnej
własności procedur, spójrzcie na poniższy przykład i odpowiedzmy sobie jakie wyniki dadzą linijki {1} i {2}:
Program
Wyniki
{1} - ………………………………………..
{2} - ………………………………………..
Pewnie zauważyliście już problemy. Wszystko wynika z tego, że zmienne w procedurze są zmiennymi
lokalnymi i nie są przekazywane dalej (patrz definicja zmiennej lokalnej)
Zmienne Lokalne są to zmienne tworzone w momencie rozpoczęcia wykonywania procedury i znikające po jej
zakończeniu. Przechowywane są one w tzw. Stosie , który jest podczas działania programu wykorzystywany
jako miejsce przechowywania zmiennych tymczasowych.
Zmienna globalna w odróżnieniu od lokalnej nie znika po zamknięciu procedury, nawet więcej bo informacja o
niej występuje zarówno w procedurze jak i po za nią.
Jest jednak metoda by przekazać zmienną po za procedurę, nazywamy ją " Przekazywaniem przez zmienną",
polega na tym aby w procedurze wpisać przed zadeklarowanymi zmiennymi słowo var.
Zadanie 3
Przekształć powyższy przykład aby działał poprawnie.
Zadanie 4 na ocenę
Napisz program z procedurami prostokat i trojkat liczącymi odpowiednio pole prostokąta(mając dane boki) i
trójkąta (mając daną podstawę i wysokość)
Kurs opracował mgr Jarosław Teodorczuk
veljarek@poczta.gazeta.pl
2
322273472.003.png 322273472.004.png
Zgłoś jeśli naruszono regulamin