Szintaktikai, szemantikai szabályok Adatok beolvasása és kiíratása
Meghatározás: A program írásának formai szabályait „szintaktikai” szabályoknak, míg a program jelentését megadó szabályokat „szemantikai” szabályoknak nevezzük. Pl. Szintaktikai hiba az ami a formai követelmények be nem tartásából származik 1. pl. ha szóközt írnánk az értékadó utasításban a: = 2.pl. ha a begin foglalt szó helyett azt írnánk hogy megin Szemantikai hiba az, hogy a program jelentése nem megfelelő, azaz a program nem ad helyes eredményt.
bemeneti adat: Pascal nyelvű program A szintaktikai hibákat maga a számítógép megkeresi és kijelzi, ez a program a fordítóprogram, angolul Compiler, melynek feladat hogy a Pascal nyelvű programot érthető és végrehajtható formába alakítsa át, azaz lefordítsa a gép nyelvére. bemeneti adat: Pascal nyelvű program kimeneti adat: gépi nyelvű program és ha van hiba, akkor a fordítóprogram kijelzi. A szemantikai, működésbeli hibák kiderítése nehezebb, megtalálásuk a programozó feladata. Például úgy is megtalálhatjuk őket, hogy különböző gondosan megválasztott bemeneti adattal lefuttatjuk és figyeljük a futási eredményt. Ha nem felel meg amit kapnunk kellene, akkor tartalmi hiba van. Ennek megkeresésének egy gyakorlati kérdése lehet például az, hogy lépésről lépésre futtatjuk a programot az F8 billentyű segítségével, követve közben az eredményeket a futási képernyőn. A szemantikai hibák megkereséséhez gyakorlat kell.
Adatok beolvasása és kiíratása: read, readln, write, writeln A write és read foglalt szavak, azaz olyan előre deklarált azonosítók, amelyeket nem a programozónak kell deklarálnia, hanem a fordítóprogram ismertnek tekinti őket. Megjelenítés a képernyőn: write és writeln Adatok vagy üzenetek megjelenítéséhez használjuk. Writeln= write line (vagyis írjál sort, írd ki az üzenetet és ugorj a következő sorba) Szintaxisa: writeln(‘üzenet’); - kiírja a kerek zárójelben lévő üzenetet, majd a kurzor automatikusan ugrik a következő sorba
Pl. Program proba1; begin writeln(‘A Pascal programozási nyelvet tanuljuk’); writeln(‘Ez egy próbaprogram’); end. Futtatása után a képernyőn két külön sorban lesz kiírva a writeln utasításban lévő üzenet. Write: ugyanúgy működik mint a writeln, csak azzal a különbséggel hogy az első üzenet kiíratása után nem ugrik a kurzor a következő sorba, hanem folytatólagosan ír tovább. Több paraméter is lehet a zárójelben, de ezeket vesszővel válasszuk el. Pl. Program proba1; write(‘A Pascal programozási nyelvet tanuljuk’); write(‘Ez egy próbaprogram’); Futtatása után a képernyőn a sorok egymás mellett lesznek kiírva, ezt akár egy write utasítással is megírhattuk volna és ugyanaz lenne az eredmény: Write(‘A Pascal programozási nyelvet tanuljuk’,’ Ez egy próbaprogram’);
A kiírás alakja attól függ, hogy milyen típusú adatot írunk ki és milyen kiírási formát adunk meg. A kiírás alakját a kettőspont utáni értékkel adjuk meg. az első kettőspont utáni mennyiség a mezőhosszt adja meg, tehát azt, hogy az előtte álló értéket hány karakter hosszúságban írja ki a gép (m- el jelöljük) a második kettőspont utáni mennyiség a törtrész hosszát adja meg (t- vel jelöljük) Pl. Var a :integer; … a:=213,12; write(a:m); write(a:m:t); write(a:4); write(a:8:2); _213 _ _ 213,12 write(‘programozzunk’:7); program write(‘programozzunk’:10); programozz
X-et, y- t 8 mezőhosszon írta ki, valamint az e-ben magát a számot 8 mezőhosszon írja ki, és csak a törtrészt 2 egységben: _ _ _ _ _ _ 16 _ _ _ _ _ _ _ 4 _ _ _ _ 0,60 Mivel nem tettük aposztróf közé, ennek hatására az értékek kerülnek kiíratásra csak. A következő kiírató utasításban aposztróf között szerepel az üzenet amit megakarunk jeleníteni a képernyőn, majd vesszővel elválasztva rögtön utána az érték, de ez nincs aposztróf közé téve. Behelyettesíti az értékeit x- nek is és y-nak is, mivel így hivatkoztunk rá, majd elosztja kettővel és 7 mezőhosszon, amelyből 3 a törtrész, kiíratja a kapott értéket. Readln hatására vár egy enter leütésére
2. Adatok beolvasása, bevitele: read és readln Az adtok beolvasása, bevitele a billentyűzetről történik. A két azonosító ugyanúgy működik, annyi különbséggel, hogy a readln utasítás beolvasása után ugrik a következő sor elejére. Pl.: Készítsetek egy programot, mely kiszámítja egy általános trapéz területét Gondolkodás menet: Milyen adatokra, változókra lesz szükségem a program megírásához? Mivel a trapéz területe: (nagyalap+kisalap)*magasság/2, akkor kell 3 változó, a nagyalapnak a kisalapnak és a magasságnak, valamint egy másik változó, például T amibe majd eltárolja a kapott értéket A felhasználónak meg kell adni a lehetőséget hogy bármilyen adattal tudjon majd a jövőben dolgozni, tehát sokféle értékre tudja letesztelni, lefuttatni programját. A legvégén miután kiszámolta kiíratja T értékét
Feladatok: Írj egy programot amely kiszámolja egy téglalap területét és kerületét. Írj egy programot, amely kiszámolja egy négyzet kerületét és területét, tudván, hogy a négyzet oldalának hossza 102cm.