760 likes | 872 Views
Programozási nyelvek. P áll Boglárka. Programozási nyelvek. Az algoritmus gép által ismert nyelvre való átírása a programozási nyelvvekkel történik. Ismerünk: Nem strukturált nyelveket ( pl. BASIC ) Strukturált nyelveket ( pl. C, PASCAL )
E N D
Programozási nyelvek Páll Boglárka
Programozási nyelvek Az algoritmus gép által ismert nyelvre való átírása a programozási nyelvvekkel történik. Ismerünk: • Nem strukturált nyelveket ( pl. BASIC ) • Strukturált nyelveket ( pl. C, PASCAL ) • Objektum orientált nyelveket ( pl. C++, C#, Delphi )
A Pascal programozási nyelv alapjai Megalkotója: Niklaus Wirth (Svájc, 1968) 1973 – ban a legelterjettebb programozási nyelvek közé tartozott. Ismertsége a könnyen tanulható beszédes szintaktikájának köszönhető.
A Pascal program szerkezete Három különálló részből áll: • Programfej – program nevét tartalmazza • Deklarációs rész – változók felsorolása • Programtörzs – utasítások sora, melyekből a program áll
A program szerkezete Pascal nyelvben: programprogramnev; Programfej var valtozo deklaraciok; Deklarációs rész egyeb deklaraciok ; begin utasitasok;Programtörzs end. Fontos!!! Minden utasítást pontosvessző (;) zár, kivételt a“begin”,“end.”, elseés “var” kulcsszavak !!!
Példa: programhellovilag; var szoveg:string; begin szoveg:=‘Hello vilag!’; writeln(szoveg); readln; end.
A Pascal nyelv építő elemei: • Szimbólumok:( ) { } [ ] < > + - * / := .. stb. • Foglalt szavak:program, var, begin, end … stb. • Megjegyzés:(* *) , { } • Azonosítók:az angol abc kis és nagybetűiből, számokból és aláhúzásjelből állhatnak de nem kezdődhetnek számmal
A változók • Változók a Pascal nyelvben:rendelkeznek névvel, értékkel, típussaléscímmel. • Használatuk: var <változónév> : <típus>; • Pl: var a:byte;
Struktúrált típusok Egyszerű típusok A változók típusai Programozó által definiált típus
Valós típusok Megjegyzés: -2.9e-39= -2.9*10-39
Példa struktúrált adattípusra* Karakterlánc típus (String) • Több karakterből áll. • Maximális hossza 255 karakter, a nulladik karakter tartalmazza a lánc hosszát. Példa:
Adatok beolvasása: • read (változó1, ... ,változón); • readln(változó1, ..., változón); • A változó1 ... változón értékeit a billentyűzetről kéri be az általunk megírt program • A különbség köztük, hogy a readln a beolvasás után új sorba lépteti a kurzort • Ha elhagyjuk a zárójelet a paraméterekkel akkor a program egy bármilyen billentyű lenyomásáig vár
{ Példa: Beolvasásra} programbeolvas; var a, b :integer; c, d :real; begin readln(a, b); read(c); read(d); readln; end.
Adatok kiírása: • write (kifejezés1, ... ,kifejezésn); • writeln(kifejezés1, ..., kifejezésn); • A kifejezés1 ... kifejezésn értékeit a Pascal kiértékeli és kiírja a képernyőre • A különbség köztük, hogy a writeln a kiírás után új sorba lépteti a kurzort • Az egész típusú változók kiírásánál meg lehet adni, hogy hány számjegyen, hány tizedesnyi pontossággal történjen a kiírás
{ Példa: Kiírásra} programkiiras; var a, b :integer; c, d :real; begin readln(a, b); read(c); read(d); write(‘Az a szam’, a); write(a+b); writeln(c); writeln(d:6:3) {valós szám 6 karakteren 3 tizeses pontossággal} readln; end.
{ Példa feladat: Olvassunk be két egész számot, írjuk ki az összegüket!! } programosszeadas; var a, b, osszeg:integer; begin write(‘Add meg az első számot: ’); readln(a) ; write(‘Add meg a második számot: ’); readln(b); osszeg:=a+b; write(‘A két szám összege: ’); writeln(osszeg); readln; end.
Kifejezések a Pascalban • A kifejezések a Pascal nyelvben operátorokból és operandusokból állnak. Pl: 10*2 div 3*3 div 2 (x mod y=0) and (y mod x=0) and (x*y>0) • A műveletek prioritásának megváltoztatása érdekében használhatunk zárójeleket is.
Relációs műveletek • A relációk segítségével különböző, egymással kompatibilis típusú kifejezéseket hasonlíthatunk össze. • A műveletek eredménye mindig logikai típusú érték. (igaz vagy hamis) • A programokban a relációs operátorokat feltételek leírásához használjuk. • A relációkat gyakran logikai operátorok és zárójelek segítségével kapcsoljuk össze
Példa • Értékek: • i:=2; • j:=6; • y:=1.2; • x:=4.5;
Szabványos függvények a Pascalban • Pascalban a függvények feladata, hogy a bemenő paraméterekből előállítsák a függvényértékeket • Függvényeket általában • kifejezésekben, • értékadásokban, • kiirásokban használunk
Matematikai Függvények • Abs(x) abszolút érték: Pl: x:=-12 x:= Abs(x)-> x=12 • Cos(x) koszinusz: Pl: x:=3.14 x:=cos(x)-> x=1 • Sin(x)szinusz: Pl: x:=3.14 x:=sin(x)-> x=0
Matematikai Függvények • Frac(x) egy szám törtrésze Pl: x:=12.34 x:=frac(x) -> x=0.34 • Int(x) egy szám egész része (valós típusként) Pl: x:=12.34 x:=int(x) -> x=12.0 • Round(x) legközelebbi egész értékre kerekít Pl: x:=12.8 x:=round(x) -> x=13 • Trunc(x)egy szám egész része (egész típusként) Pl: x:=12.8 x:=trunc(x) -> x=12
Matematikai Függvények • Sqr(x) egy szám négyzete Pl: x:=5 x:=sqr(x) -> x=25 • Sqrt(x) egy szám négyzetgyöke Pl: x:=38 x:=sqrt(x) -> x=6.16 • Inc(x) növeli a számot eggyel Pl: x:=38 x:=inc(x) -> x=39 • Dec(x) csökkenti a számot eggyel Pl: x:=70 x:=dec(x) -> x=69
Egyéb függvények: • Pi Pl: x:=Pi -> x=3.1415926536 • Random(x) véletlenszámot generál [0..x-1] intervallumból Pl: x:=random(5) -> x=3 véletlen szám [0..4] intervallumból
Döntések a Pascal nyelvben • A program végrehajtása során sokszor szükségünk van arra, hogy bizonyos feltételektől függően a számítógép a program különböző részeit hajtsa végre. • Ha a feltétel teljesül akkor a program bizonyos műveletsort végez különben másikat.
Algoritmikában: Ha feltétel akkor Utasítások 1 Különben Uasítások 2 Ha vége feltétel NEM IGEN Utasítások 2 Utasítások 1
Egyágú döntés iffeltételthen utasítások; Kétágú döntés iffeltételthen utasítások 1 else utasítások 2; a feltétel egy logikai kifejezés az else előtt nem szerepelhet pontosvessző! A döntéshozó utasítás általános formája
Példa • Olvassunk be két egész számot, majd írjuk ki a nagyobbikat:
Összetett utasítás • Az összetett utasítás a begin és az end kulcsszavak között megadott utasítások sorozatából áll. • akkor használjuk, ha egynél több utasítás végrehajtására van szükség, de a program szintaxisa csak egy utasítás használatát engedélyezi.
Az összetett utasítás általános szintaxisa: begin Utasítás1; Utasítás2; Utasítás3; ... Utasításn; end;
Példa: Adott egy téglalap hosszúsága és szélessége. Számítsuk ki a téglalap kerületét és a területét.
Ciklusok: Számlálós ciklus Segíts Bartnak leírni Pascal programmal 1000-szer azt, hogy: „I will use Google befor asking dumb questions.”
A számlálós ciklus • Az adott utasításokat előre meghatározott számszor hajtja végre a rendszer. Szintaxisa: for i:=kezdérttovégsőértdo utasítás; for i:=végsőértdowntokezdértdo utasítás;
Megjegyzések: • i –t ciklusváltozónak nevezzük. • a ciklusváltozó, a kezdetiérték és a végsőérték csak sorszámozott típusú lehet.
Bart Pascal Programja: Program ezerszer; Var i:byte; Begin for i:=1to1000do writeln(‘I will use Google ...’); readln; End.
Ciklusok: Előltesztelő ciklus Amíg naponta leírod az összes házi feladatot kapsz vacsorát!!
Az előltesztelő ciklus • Az adott utasításokat addig hajtja végre a rendszer amíg a belépési feltétel teljesül. (Akkor állunk meg ha a feltétel nem teljesül (hamis)) Szintaxisa: while feltétel do begin utasítás_1; utasítás_2; ... utasítás_n; end; while feltétel do utasítás;
Megjegyzések: • a ciklushoz tartozó utasításokat ciklusmagnak nevezzük. • ha a belépési feltétel logikai értéke igaz, akkor a rendszer végrehajtja az utasításokat és addig ismétli amíg a feltétel hamissá nem válik. • Vigyázni kell arra hogy a ciklusban a feltétel értéke megváltozzon!!!
Feladat Amíg szám nagyobb mint 0, oszd el az adott számot 10-el! Program osztok; Var sz:byte; Begin while sz > 0do begin sz:= sz div 10; writeln(‘sz: ’,sz); end readln; End.
Ciklusok: Hátultesztelő ciklus Kapsz vacsorát ameddig nincs meg az összes házi feladat!!
A hátultesztelő ciklus • Az adott utasításokat addig hajtja végre a rendszer amíg a kilépési feltétel igazzá nem válik. (Akkor állunk meg ha a feltétel teljesül (igaz)) Szintaxisa: repeat utasítás_1; utasítás_2; ... utasítás_n; until feltétel;
Megjegyzések: • a ciklushoz tartozó utasításokat ciklusmagnak nevezzük. • a rendszer egyszer mindenképpen végrehajtja az utasításokat és addig ismétli amíg a kilépésifeltétel igazzá nem válik. • Vigyázni kell arra hogy a ciklusban a feltétel értéke megváltozzon!!!
Feladat Ameddig a szám egyenlő nem lesz 0-val oszd el az adott számot 10-el Program osztok; Var sz:byte; Begin readln(sz); repeat sz:= sz div 10; writeln(‘sz: ’,sz); until sz=0; readln; End.