• Nie Znaleziono Wyników

Podstawy Pascal Struktura programu w Pascal

N/A
N/A
Protected

Academic year: 2021

Share "Podstawy Pascal Struktura programu w Pascal"

Copied!
11
0
0

Pełen tekst

(1)

Podstawy Pascal Struktura programu w Pascal

Program nazwa_programu; {etykieta – pomijana przez kompilator}

Uses {deklaracja użycia modułów}

Modul1,modul2;

Label {deklaracja etykiet}

Etykieta1,etykieta2;

Const {deklaracja stałych

Nazwa_stalej=wartosc;

Type {deklaracja typów}

Nazwa_typu=definicja_typu;

Var {deklaracja zmiennych}

Nazwa_zmiennej:typ_zmiennej;

Procedure nazwa_procedury; {deklaracja procedury}

Begin

... {definicja procedury}

End;

Funcion nazwa_funkcji:typ_wartosi_zwracanej_przez_funkcje; {deklarcja funkcji}

Begin

... {definicja funkcji}

End;

Begin {właściwy program – to kompilator zaczyna wykonanie programu}

... {instrukcje wykonywane przez program}

End.

Deklaracja stałych

Deklaracje stałych umieszcza się przed słowem kluczowym Begin otwierającym instrukcj wykonywane przez program (nie mylid z beginem otwierającym definicje funkcji lub procedury).

Przykład deklaracji zmiennej:

CONST

Stala=2;

Begin

Writeln(stala); {pojawi się na ekranie wartosc stalej}

Stala:=10; {pojawi się błąd}

End.

Stałej przy jej deklaracji zostaje nadana wartośd i tej wartości już później nie da się zmienid. Stała służy w programie jedynie do odczytu wartości, którą przechowuje i każda próba przypisania stałej nowej wartości skooczy się pojawieniem błędu.

Deklaracja zmiennych

Deklaracje stałych umieszcza się przed słowem kluczowym Begin otwierającym instrukcj wykonywane przez program (nie mylid z beginem otwierającym definicje funkcji lub procedury) NP:

Var zmienna1, zminna2 : typ;

Begin

(2)

Działania wykonywane przez program;

End.

Deklaracja wygląda następująco:

VAR Ident1, Ident2, .. , IdentN : TYP;

GDZIE:

VAR – słowo kluczowe, którze jest informacją dla kompilatora, że deklarujemy nowe zmienne;

Ident1, Ident2, .. , IdentN – identyfikatory zmiennych. Można deklarowad wiele zmiennych, jednak identyfikator każdej zmiennej musi byd unikalny (nie można zadeklarowad dwóch zmiennych o tej samej nazwie), identyfikator nie może byd słowem kluczowym i musi zaczynad się literą.

UWAGA: warto nadawad zmiennym identyfikatory, które odzwierciedlają ich przenaczenie. Jeśli deklarujemy zminna do przechowywania nazwiska to warto nadad jej identyfikator o nazwie NAZWISKO, jeśli deklarujemy zmienną, która posłuży nam jako suma np w dodawaniu warto nadad jej identyfikator o nazwie SUMA.

TYP – określa jakiego typu są zmienne zadeklarowane przed znakiem :

WAŻNE!!!! Jeśli mamy potrzebe zadeklarowania kilku zmiennych, ale różnych typów:

VAR //słowa kluczowego wystarczy użyd tylko raz

Zmienna1, zmienna2 : integer; //deklaracja zmiennych typu całkowitego Zmienna3 : real; //deklaracja zmiennych inego typu Zmienna4 : char; //itd...

BEGIN

OPERACJE WYKONYWANE PRZEZ PROGRAM;

END.

(3)

INSTRUKCJA PRYPISANIA

Jeśli chcemy w zmiennej umieścid jakąś zawartośd musimy użyd instrukcji przypisania. Wygląda ona następująco:

IDENTYFIKATOR_ZMIENNEJ := NOWA_WARTOŚC;

Działanie: do zmiennej o zadanym identyfikatorze (np: IDENTYFIKATOR_ZMIENNEJ) zostanie przypisana (czyli umieszczona w środku zmiennej) wartośd. UWAGA!!!! Zmienna najpierw musi byd zadeklarowana.

Var wiek : integer;

Begin

wiek := 4; /w zmiennej WIEK umiszczona zostałą wartośd 4 End.

Instrukcji przypisania można użyd w programie wiele razy (również wiele razy dla tej samej zmiennej) NP:

Var

wiek : integer;

wzrost : real;

Begin

Wiek:= 20; //WIEK OD TERAZ MA ZAWARTOŚD RÓWNĄ 20

Wiek := 25; //Wiek otrzymał nową wartośc. Od teraz w zmiennej wiek jest wartośd 25 Wzrost := 1.8; //do zmiennej wzrost przypisano nową wartośc 1.8.

Wiek := 10; //Zmienna wiek znów otrzymała nową wartośc- tym razem 10 End.

(4)

Funkcje Writeln i Readln

WRITELN – funkcja służąca do wyprowadzania (WYŚWIETLANIA) na ekranie kompuera dowolnych danych. Jest to polecenie, za pomocą którego można na ekranie wyświetlid dowolną daną (tekst, liczbę itp).

PODSTAWOWE METODY UŻYCIA WRITELN:

WRITELN(wiek); //w tym wypadku na ekranie zostanie wyświetlona zawartośd zmiennej (jeśli będzie to zmienna typu całkowitego, do której uprzednio przypisano wartośd 10, wyświetli się na ekranie wartośd 10);

WRITELN(‘wiek); //w tym wypadku na ekranie pojawi się tekst „wiek”, ponieważ użyto apostrofów (‘). To co znaduje się apostrofami nie jest traktowane przez kompilator jako nazwa zmiennej, a jako zwyczajny tekst. Co za tym idzie – nawet jeśli w programie zadeklarujemy zmienna o nazwie WIEK to kompilator nie potraktuje tekstu zawartego w apostrofach jako fragmentu kodu programu. Będzie to zwyczajny tekst, który nie podlega analizie (dzięki czemu w apostrofach można wypisad dowolne rzeczy, równiż słowa kluczowe).

WRITELN(100); //w tym wypadku na ekranie zostanie wyświetlona wartośd 100. Jest to przykład uzycia funkcji writeln gdzie jako argument funkcji (a więc to co ma się pojawid na ekranie) została przekazana wartośd.

Przykładowy kod do analizy:

var //deklaracja zmiennych

wiek: integer;

wzrost: real;

begin

wiek := 20; //przypisanie zmiennej określonej wartości. Możnato wyobrażad //sobie tak jakgdyby zmienna to było pudełeczko z określoną etykietą //(identyfikatorek), która pozwala nam jedną zmienna (pudełęczko) //odrużniad od innej. A przypisanie wartości dla zmiennej to nic inngo //jak włożenie do pudełeczka określonej zawartości. W naszym //wypadku liczby 20

writeln(wiek); //wypisanie na ekran (wyświetlnenie) zawartości zminnej. A więc na //ekranie pojawi się nie nazwa zmiennej ale to co jest w jej wnętrzu //(czyi jej wartośd. Wcześniej wyobrażaliśmy sobie, że do zmiennej – //będącej rodzajem pudełeczka – wkładamy zawartośd (czyli w //naszym wypadku to była liczba 20. Funkcja Writeln zagląda do //środka pudełka i wyświetla na ekranie to co tam znajdzie a więc u //nas będzie to wartośd 20;

writeln(‘wiek’); //tutaj użyliśmy apostrofów co spowoduje, że ‘wiek’ nie zostanie już //potraktowane przez kompilator jak nazwa zmiennej, a więc jak to //nasze pudełeczko do którego trzeba zajrzed. Kompilator potraktuje //to jako normalny tekst – a więc to co jest w apostrofach zostanie //wyświetlone bez zmian. Kompilator nie podstawi wartości 20 za //zmienną wiek, ponieważ skoro wiek znalazło się w apostrofach to //traktowane jest jak coś co poprostu trzeba wyświetlid.

(5)

wiek := 25; //do zmiennej wiek zostanie przypisana nowa wartośd (zawartośd) //Można sobie wyobrazid,że to było w pudełęczku oznaczonym //etykietą WIEK wczesniej (a więc wartośd 20), zostanie wyrzucone i //zastąpione nową wartością – u nas jest to liczba o wartości 25.

Writeln(wiek); //wyświetlona zostanie aktualna wartośd zmiennej wiek. Najpierw do //zmienej wiek włożona została wartośd 20, jednak później wartośd ta //zostałą wyrzucona i włożono do zmiennej wiek nową wartośd – 25.

//Zatem aktualną wartością zmiennej WIEK jest 25 i na ekranie pojawi //się liczba 25.

wzrost := 1.8; //przypisanie dla zmiennej wzrost wartości 1.8 writeln(wzrost); //wyświetlenie zawartości zmiennj wzrost.

end.

Kolejny program do analizy.

var //deklracja dwóch zmiennych typu całkowitego zmienna1, zmienna2 : integer;

begin

zmienna1 := 5; //do pierwszej zmiennej włożona zostaje wartośd 5

//Gdybyśmy teraz wyświetlili zawartośd zmiennej1 to na ekranie //pojawiła by się liczba 5.

zmienna2 := zmienna1; //do zmiennej2 włożona zostaje kopia zawartości zmiennej1. Zatem //w zmiennej1 bez zmian pozostaje 5. Natomiast do środka

//zmiennej2 trafiła kopia zawartości zmiennej1 czyli również 5.

//WAŻNE: co kolwiek stani się teraz z zawartością zmiennej1 //zawartośd zmiennej2 nie ulega zmiane ponieważ w zmiennej2 //znajduje się kopia tego, co w momencie przypisania znajowało się //w zmiennej1.

` writeln(zmienna1); //wyświetli się zawartośd zmiennej1 czyli 5 writeln(zmienna2); //wyświetli się zawartośd zmiennej2 czyli 5

zmienna1 := 6; //zawartośd zmiennej1 zostaje zmieniona. Wcześniej była tam 5 ale //ona zostaje teraz zastoąpiona 6. ZATEM JEŚLI TERAZ WYPISZEMI //WARTOŚD ZMIENNEJ1 WYŚWIETLI SIĘ NOWA WARTOŚD CZYLI 6.

//ZAWARTOŚD ZMIENNEJ2 NIE ZMIENIA SIĘ – CZYLI TAM DALEJ JEST //STARA WARTOŚD 5 BO Z NIĄ NIC NIE ROBILIŚMY

writeln(zmienna1); //zawartośd zmiennej1 została zmieniona (z 5 na 6) i wyświetli się //aktualna wartośd czyli 6.

writeln(zmienna2); //do zmiennej2 została przypisana wartośd 5 zatem wyświetlona //zostanie liczba 5

end.

(6)

Przykład programu gdzie za pomocą funkcji Writeln wyświetlane są dane przekazywane jako wartośd:

Var zmienna1, zmienna2 : integer;

Begin

Zmienna1:=5;

Zmienna2:=4;

Writeln(5+4); //wyświtli się 9 (ponieważ przekazano jako argument wartośd obliczaną jako //wynik działania 5+4;

Writeln(zmienna1+zmienna2); //pojawi się 9 ponieważ jako argument przekazano wynik //działania zmienna1+zmienna2, a więc wartośd tego //działania a w tym wypadku to jest 9

End.

(7)

READLN - funkcja ta służy do pobierania (WPROWADZANIA DO PROGRAMU) danych od użytkownika.

Dodatkowo funkcja czeka aż użytkownik potwierdzi wprowadzenia danych przyciśnienciem klawisza ENTER.

ZATEM PROCEDURA WPROWADZANIA DANYCH WYGLĄ NASTĘPUJĄCO:

1.PROGRAM SIĘ ZATRZYMUJE – CZEKA AŻ UŻYTKOWNIK WPROWADZI DANE;

2.UŻYTKOWNIK WPISUJE NA KLAWIATURZE DANE;

3. UŻYTKOWNIK POTWIERDZA WPROWADZENIE DANYCH – WCISKA ENTER NA KLAWIATURZE;

4.PONIEWAZ WCISNIĘTO KLAWISZ ENTER FUNKCJA WRITELN PRZYPISUJE DANE WPROWADZONE PRZEZ UZYTKOWNIKA DO ZMIENNEJ;

5.DZIAŁANIE PROGRAMU JEST KONTYNUOWANE OD MOMENTU GDZIE ZOSTAŁ ON ZATRZYMANY.

Jak używad funkcji readln:

READLN(zmienna); //do zmiennej zostanie przypisana wartośd jaką użytkownik wpisze na //klawiaturze.

WAŻNE:

1.Nazwa zmiennej musi wcześniej byd zadeklarowana w programie 2.Nazwa zmiennej nie może byd podana w apostrofach

READLN(‘zmienna’) !!!!!!! BŁĄD !!!!!!!!! Tak nie używamy tej funkcji

READLN; //użycie funkcji readln bez nawiasów i tego co nawiasach, a wiec nazwy zmiennej,

// spowoduje, że program na chwile się zatrzyma (ponieważ wcześniej była mowa o tym ,że //użycie funkcji readln powoduje wstrzymanie działania programu w miejscu gdzie readln się //znalazło do momentu aż użytkownik wciśnie ENTER). Po wciśnięciu ENTER przez

//użytkownika program kontynuje działanie.

Używanie funkcji readln bez nawiasów, ma sens jeśli chcemy na chwile zatrzymad program, by użytkownik mógł na chwile obejrzed to co do tychczas zostało przez pogram wyświetlone na ekranie, albo do zatrzymania działania programu przed jego zamkniecięm.

Przykładowe kody do analizy:

Program KOD_1;

Begin

Writeln(‘wypisuje tekst’); //na ekranie pojawi się tekst zawarty w apostrofach a //więc: wypisuje tekst;

Readln; //działanie programu w tym miejscu na chwile jest wstrzymane, by

//użytkownik zdążył przeczytad to co na ekranie zostało wyświetlone. Gdyby //działanie programu nie zostało wstrzymane przez użycie READLN, program //momentalnie by się zamknął i nie zdążylibyśmy zobaczyd wyników jego //działania. Kiedy użytkownik wciśnie enter program zostanie wznowiony.

End.

(8)

Program KOD_2;

Begin

Writeln(‘wypisuje tekst’); //zostanie wyświetlone na ekranie: wypisuje tekst;

End.

UWAGA!!!: w powyższym kodzie programu (KOD_2) robimy dokładnie do co w KOD_1: wyświetlamy na ekranie tekst. Zatem te programy robią to samo, różnią się jednak jednym szczegółem: w

pierwszym programie użyliśmy pustego readln, co spowodowało, że zanim program się wykonał do kooca i uległ zamknięciu, na chwilę się zatrzymał i pozwolił nam zobaczyd to co wykonał (a więc co wyświetlił), po kliknieciu na ENTER program się wznawiał i wykonywał się do kooca oraz zamykał się.

W przykładzie drugim nie użyliśmy na koocu pustego readln, dlatego, chociaż KOD_2 wyświetli na ekranie dokładnie to samo co KOD_1, to zaraz po tym wykona się do kooca i ulegnie zamknięciu – dlatego nie zdążymy nawet przeczytad tego co na ekran zostało wypisane.

Program KOD_3;

Var

Wiek : integer; //deklaracja zmiennej WIEK typu całkowitego Begin

Wiek := 20; //przypisanie zmiennej WIEK wartości 20. A więc od tego momentu w //zmiennej WIEK znajduję się cyfra 20

Writeln(wiek); //wyświetlenie aktualnej wartości zmiennj WIEK – a więd na ekranie //pojawi się: 20

Readln(wiek); //w tymmomencie program zostaje wstrzymany i użytkownik może //wprowadzid z klawiatury dane, które zostaną przypisane zmiennej //WIEK. Jeśli użytkownik na klawiaturze wpisze wartośd 25 i

//zatwierdzi wprowadzanie danych klawiszem ENTER, to do zmiennej //WIEK zostanie włożona nowa wartośd 25. W tym momencie to co //było wcześniej w zmiennej WIEK (W naszym wypadku wartośd 20) //zostanie wykasowane i zastąpione nową wartością podaną na //klawiaturze przez użytkownika. PO KLIKNIECIU ENTER Program //wznawia się i wykonuje dalsze instukcje.

Writeln(wiek); //teraz zostanie wyświetlona wartośd zmiennej WIEK. Ponieważ //wcześniej znalaza się instrukcja pobrania od użytkownika danych //do zminnej WIEK (readln(wiek)), to w zmiennej wiek znajduje się //nowa wartośc wprowadzona przez użytkownika. Gdyby użytkownik //podał na klawiaturze wartośd 25, to zostanie wyświelona na ekranie //wartośd 25.

End.

(9)

PRZYKŁADOWY PROGRAM Z UŻYCIEM WRITELN I READLN:

Program PRZYKŁAD_1;

Var //DEKLARACJE ZMIENNYCH ROZNYCH TYPOW

Wiek : integer; //TYP CALKOWITY NA WIEK

Wzrost : real; //TYM RZECZYWISTY NA wzrost wyrazony w metrach (np: 1,5metra) Plec : char; //TYP ZNAKOWY na płed ‘M’ – mężczyzna lub ‘K’ - kobieta

Begin

Writeln(‘Podaj wiek: ‘); //wyświetli się informacja dla użytkownika by podał swój wiek.

//Gdybyśmy zaraz jako następnej operacji nie użyli funkcji READLN, //do wczytania danych od użytkownika, to byłby to tylko tekst //wyświetlony na ekranie.

Readln(Wiek); //DOPIERO TERAZ od użytkownika pobrania zostanie wartośd.

//Wartośd ta zostanie po naciśnieniu przez użytkownika klawisza //ENTER wczytana do zmiennej WIEK.

Writeln(‘Podaj wzrost: ‘); //znóó wyświetlamy dla użytkonika tekst, zwykłąinformację //zeby wiedział co ma podawad. Jeśli teraz nie użyjemy //READLN(wzrost); to żadne dane od użytkownika nie //będą pobrane

Readln(Wzrost); //pobieramy od użytkownika dane i przypisujemy jedo zminnej WZROST Writeln(‘Podaj płęd /K lub M/ ‘); //informacja dla użytkonika czego od niego chcemy Readln(plec); //wczytujemy dane wprowadzone przez użytkownika do zmiennej PLEC //Przy kazdym uzyciu READLN(Nazwa_Zmiennej); program na chwile się zatrzymuje i czeka aż //użytkownik poda dane i zatwierdzi ich wprowadzenie klawiszem ENTER – wtedy program rusza //dalej.

Writeln(‘Twoj wiek to :’); //wyswietlamy tekst zawarty w apostrofach Writeln(wiek); //wyswietlamy zawartośd zmienej WIEK Writeln(Twoj wzrost to : ‘); //wyswietlamy teskt zawarty w apostrofy Writeln(wzrost); //wyswietlamy zawartosc zmiennej WZROST Writeln(‘Twoja plec to : ‘); //wyswietlamy tekst zawarty w apostrofy Writeln(plec); //wyswietlamy zawartosc zmiennej PLEC End.

UWAGA!!! Jak widad z powyższego przykłądu, wypisywanie danych i informacji na ekran jest dośd nieporęczne.

WSZYSTKIE INFORMACJE I DANE WYŻEJ WYPROWADZANE NA EKRAM MOŻNA WYPROWADZID ZA POMOCĄ JENEGO UŻYCIA FUNKCJI WRITELN.

Wiek := 20;

Wzrost := 1.8;

Plec := ‘M’;

Writeln(‘Twój wiek to : ‘,Wiek,’ Twoj wzrost to : ‘,Wzrost,’Twoja plec to: ‘,Plec);

(10)

WYŚWIETLI SIĘ NA EKRANIE COŚ TAKIEGO:

Twój wiek to: 20 Twoj wzrost to: 1.8 Twoja plec to: M

WYJAŚNIENIE JAK DZIAŁA WYŻEJ POKAZANY SPOSOB WYPISYWANIA DANYCH I INFORMACJI NA EKRAN:

Funkcja WRITELN wyprowadza na ekran tekst lub zawartośd zmiennych. Możliwe jest przekazanie do funkcji WRITELN więcej niż jednego argumentu>

Writeln(‘tekst’) – do funkcji przekazano jeden argument będący tekstem (poniewaz użyto apostrofów).

Writeln(zmienna) – do funcji przekazano jeden argumnt będący zmienna. Zatem funkcja wyświtli na ekranie zawartośd zmiennej o identyfikatorze ZMIENNA.

JEŚLI CHCEMY DO FUNKCJI PRZEKAZAD WIĘCEJ NIŻ JEDEN ARGUMENT, wystarczy kolejne agrumenty oddzielad PRZECINKAMI. DODATKOWO można przekazad naraz jako kolejne argumenty, zmienne różnych typów.

NP:

Var

zmienna_całkowita : integer;

zmienna_rzeczywista : real;

Begin

Zmienna_całkowita := 20;

Zmienna_rzeczywista := 1.8;

Writeln(zmienna_rzeczywista, zmienna_całkowita);

End.

Powyższy przykłąd na ekranie wyświetli zawartośd dwóch zmiennych przekazanych jako argumnty (W KOLEJNOŚCI ZGODNEJ Z KOLEJNOŚCIĄ PRZEKAZYWNAIA ICH)

WYŚWIETLONE ZOSTANIE: 20 1.8

UWAGA!!! Oprócz zmiennych ajo argumenty można przekazywad tekst (oczywiście paiętając, że trzbe go ująd w apostrofy). Wtedy tesk zawarty w apostrofach traktowany jest jako kolejny argument funkcji.

ZATEM:

Writeln(‘tesk1’,’tesk2’);

Wyswietlone zostanie na ekranie: tekst1 tekst2 Jeśli zmienimy kolejnośd

Writeln(‘tekst2’,’tekst1’);

Wyświetlone będzie: tekst2 tekst1

(11)

Jak już pisałem – jako argumenty można przekazywad do funkcji WRITELN tak zmienne jak i teks.

NP:

VAR

Wiek : integer;

Wzrost : real;

Begin

Wiek := 20;

` Wzrost := 1.8;

WRITELN(‘Twoj wiek to ‘,Wiek,” a wzrost ‘,Wzrost);

End.

Przekazano do funckji 4 argumenty:

1.PIERWSZY ARGUMENT TO TEKST W APOSTROFACH (Twoj wiek to);

2.DRUGI ARGUMENT TO ZMINNA (Wiek – należy pamiętad, że w przyadku zmiennych wyświetlamy ich zawartośd a nie nazwę);

3.TRZECI ARGUMENT TO ZNOW TEKST (a wzrost);

4.CZWARTY ARGUMENT TO ZMIENNA (Wzrost);

Zatem wyświetlone zostanie (przy założeniu, że zmiennym WZROST i WIEK przypisaliśmy wcześniej odpowiednio określone wartości):

1-Argument 2-Argument 3-Argumrnt 4 Argument CZYLI

Twoj wiek to 20 a wzrost 1.8

Cytaty

Powiązane dokumenty

For the roll axis instability problem through BDFT lateral cyclic inputs, the pilot is indirectly participating to the instability by inputting energy into the flap motion, which

[r]

As a first test of the procedure of asymmetry extraction with hadron tagging the fraction of inclusive events selected as hadron-tagged events is compared with the expected one..

Bibljografja historji literatury i krytyki literackiej polskiej za rok 1933.. Pamiętnik Literacki : czasopismo kwartalne poświęcone historii i krytyce literatury polskiej

Editor: Faculty of Political Science and Journalism Press, Adam Mickiewicz University, Poznań, Poland Editorial address: 5 Uniwersytetu Poznańskiego Street, 61-614 Poznań,

Celem artykułu jest analiza realizacji zadań własnych przez władze samorządowe miasta Białystok w kontekście zaspokojenia podstawowych potrzeb mieszkańców oraz

Utkwiła mi w pamięci jazda po pierwszej asfal­ towej szosie, która rozpoczynała się tuż pod Zaleszczykami, a zwłaszcza to, że w promieniach letniego słońca uginała

Po trzecie, założenie o stałości poglądów poszczególnych członków danej grupy, ponieważ oparcie opisu doktryny na informacjach zawar- tych w statutach