Programozási nyelvek Páll Boglárka.

Slides:



Advertisements
Hasonló előadás
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Advertisements

Algoritmusok.
 Megfigyelhető, hogy amikor több elem közötti összehasonlítás történik, akkor szükség van egyszerre több értékre is, főleg akkor, ha ezek az értékek jóval.
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Ismétlés: Döntések a feltétel egy logikai kifejezés if feltétel then
Algoritmus és programozás
Az első program, avagy ismerkedés a nyelvvel
Programozás alapjai.
Turbo Pascal Változók.
Programozás alapjai.
C A C nyelv utasításai.
Egydimenziós tömbök. Deklarálás: var valtozónév:array[kezdőérték..végsőérték]of típus; type típusnév = array [kezdőérték..végsőérték] of típus; var valtozónév:
Készítette: Pető László
Nat Pedellus Informatika 8. osztály óra.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I. Ciklusok
Egyszerű típusok csoportosítása
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás Az adatokról C# -ban.
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Karakterláncok Páll Boglárka.
Összetett adattípusok a Pascal nyelvben
Egydimenziós tömbökön végezhető műveletek
Programozási nyelvek Páll Boglárka.
A Pascal programozási nyelv alapjai
Ismétlés A pascal program szerkezete: program programnev; Programfej
Ismétlés.
Kifejezések a Pascalban Páll Boglárka. Ismétlés: Ahogy algoritmikából láttuk, a kifejezések a Pascal nyelvben is operátorokból és operandusokból állnak.
Karakterláncok Páll Éva Boglárka. Ismétlés Deklaráció var s:string; Length(karlánc) Concat(karlánc1,...,karláncn) Copy(miből,honnan,hányat) Delete(miből,honnan,hányat)
Ciklusok: 3. Hátultesztelő ciklus
Egydimenziós tömbök (Vektorok)
Ciklusok: 1. Számlálós ciklus
Ciklusok: 2. Előltesztelő ciklus
Félévi típus feladatok
Feladatok: Algoritmusok Pszeudokódban
A Pascal programozási nyelv alapjai
Klasszikus Programozás a FoxPro-ban
Szabványos függvények a Pascalban. Bevezetés 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.
Átalakítás előltesztelő ciklusból hátultesztelő ciklusba és fordítva.
Tömbök és programozási tételek
Programozási nyelvek, Pascal
Adattípusok és deklarációk
Ciklusok (iterációk).
Szintaktikai, szemantikai szabályok
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
Összetett adattípusok
Operátorok Értékadások
Készítette: Csíki Gyula
Algoritmusok.
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
Programozás. Programozási nyelvek: Gépi nyelv A számítástechnika őskorában egyedüli lehetőség volt a gép bitsorozattal való programozása. Minden processzor.
Algoritmusok.
A Visual Basic nyelvi elemei
Pole (array of...).  Zložený datový typ na ukladanie viacerých premených  Zápis: var meno_pola : array [ konce intervala ] of základný typ ; Základné.
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Mintapélda Készítsünk programot, amely beolvas egy egész számot, és eldönti arról, hogy prímszám-e. Készítsünk programot, amely beolvas egy egész számot,
Nat Pedellus Free Pascal Elágazások..
Free pascal feladatok
Algoritmizálás, adatmodellezés
Excel programozás (makró)
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Programozási és szoftverfejlesztési ismeretek I..
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Informatikai gyakorlatok 11. évfolyam
Algoritmizálás.
Bevezetés a programozásba Algoritmikus gondolkodás
ITERÁCIÓ.
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

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: program programnev; 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: program hellovilag; 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 és címmel. Használatuk: var <változónév> : <típus>; Pl: var a:byte;

A változók típusai Egyszerű típusok Struktúrált típusok Standard (beépített) típusok Egész (integer) Valós (real) Karakter (char) Logikai (boolean) Programozó által definiált típus Strukturált Halmaz (set of) Tömb (array) Rekord (record) Fájl (file)

Egész típusok: Típus Értékei Tárolás shortint -128 .. 127 előjeles, 1B integer -32768 .. 32767 előjeles, 2B longint -2147483648 .. 2147483647 előjeles, 4B byte 0 .. 255 előjel nélkül, 1B word 0 .. 65535 előjel nélköl, 2B

Valós típusok Típus Értékei Tárolás, pontosság real -2.9e-39 .. 1.7e38 6B, 11-12 jegy single -1.5e-45 .. 3.4e38 4B, 7-8 jegy double -5.0e-324 .. 1.7e308 8B, 15-16 jegy Megjegyzés: -2.9e-39= -2.9*10-39

Karakter Típus (Char) Típus Értékei Tárolás, char Az ASCII kódtáblában szereplő betűk 1B

Logikai Típus (Boolean) Értékei Tárolás, Boolean True, False 1B

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} var a, b :integer; c, d :real; begin program beolvas; 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

writeln(d:6:3) {valós szám 6 karakteren readln; end. { Példa: Kiírásra} program kiiras; 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!! } program osszeadas; 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.

=, <>, <,>, <=,>= Műveletek Prioritása Priorítás Operátor Művelet típusa 1 not, +, - (előjel) egyoperandusú 2 *, /, div, mod, and multiplikatív 3 +, -, or, xor additív 4 =, <>, <,>, <=,>= relációs

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 Reláció Logikai eredmény (i+j) = 6 false (y+1)*4>x true (x>4) and (x<5) i = j Értékek: i:=2; j:=6; y:=1.2; x:=4.5;

Logikai művelet táblázat a and b a or b a xor b not a 1

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

Példa:

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

A döntéshozó utasítás általános formája Egyágú döntés if feltétel then utasítások; Kétágú döntés utasítások 1 else utasítások 2; a feltétel egy logikai kifejezés az else előtt nem szerepelhet pontosvessző!

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 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 for i:=kezdért to végsőért do utasítás; Az adott utasításokat előre meghatározott számszor hajtja végre a rendszer. Szintaxisa: for i:=kezdért to végsőért do utasítás; for i:=végsőért downto kezdért do

i –t ciklusváltozónak nevezzük. 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:=1 to 1000 do 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 > 0 do 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 Program osztok; Var sz:byte; Begin readln(sz); repeat 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.

Egydimenziós tömbök

Meghatározás A tömb egy olyan összetett adatstruktúra, amely több rögzített számú, azonos típusú elmből épül fel, amelyeket az indexük segítségével azonosíthatunk indexek 1 2 3 4 5 6 7 8 9 10 34 56 23 67 87 12 78 88 99 byte tipusúak n= 10 elem

Hogyan írjuk be Pascalba? var tömb_neve: array [indextípus] of elemtípus; Pl: var t: array [ 1 .. 150 ] of real; m: array [ ‘a’.. ‘z’ ] of integer; Tömb elemeinek azonosítása: T[1], T[99] tömb neve és szögletes zárójelben az index.

Feladat: olvassunk be egy tömbbe n számot Program tombocske; Var t: array [1..20] of integer; i, n : byte; Begin write(‘Elemek száma: ’); readln(n); for i:=1 to n do readln( t[i] ); End. Beolvasás

Feladat: írjuk ki egy n elmű tömb elemeit Program tombocske; Var t: array [1..20] of integer; i, n : byte; Begin ... for i:=1 to n do writeln( t[i] ); End. Kiírás

Hogyan működik? n=10 i t for i:=1 to n do readln( t[i] ); 1 2 3 4 5 6 7 8 9 10 t 23 12 34 45 12 9 12 4 7 22

Egydimenziós tömbökön végezhető műveletek 1 2 3 4 5 6 7 8 9 10 34 56 23 67 87 12 78 88 99

Egydimenziós tömbökön végezhető műveletek Ismétlés: Min és Max elem meghatározása Bizonyos tulajdonsággal rendelkező elemek megszámolása Összegek, Szorzatok, Részösszegek, Részszorzatok számolása Új ismeretek: Elem beszúrása a tömbbe Elem törlése a tömbből

1. Min és Max elem meghatározása Maximumnak, és minimumnak az első t[1] tömb elem értékét adjuk Vizsgáljuk a t tömb többi elemét a 2-iktól kezdve Ha t[i]> max vagy t[i]<min akkor az t[i] lesz az új maximum vagy minimum

Feladat: Keressük ki egy tömb elemeinek maximumát és minimumát!

2. Bizonyos tulajdonsággal rendelkező elemek megszámolása A vizsgálat előtt egyetlen ilyen tulajdonsággal rendelkező elemünk sem volt azaz db:=0 Vizsgáljuk a t tömb összes elemét az elsőtől kezdve az utolsóig Megvizsgáljuk, hogy a t[i] teljesítí a feltételt, ha igen akkor növeljük a darabszámot

Feladat: Számoljuk meg egy tömbben hány páros elem van!

3. Összegek, Szorzatok, Részösszegek, Részszorzatok számolása A számítások előtt az összeget 0-ra a szorzatot 1-re állítjuk Vizsgáljuk a t tömb összes elemét az elsőtől kezdve az utolsóig Az összeg vagy szorzat számításának feltételétől függően az illető t[i] értéket vagy hozzáadjuk \ szorzunk a kiszámítandó összeghez \ szorzathoz vagy kihagyjuk.

Feladat: Számítsuk ki a páros számok összegét!

1. Új elem beszúrása a tömbbe 1. Eset: beszúrás a tömb végére 1 2 3 4 5 6 7 8 9 34 56 23 67 87 12 78 88 n n n+1

Feladat: Szúrjunk be egy új elemet egy tömb végére!

1. Új elem beszúrása a tömbbe 2. Eset: beszúrás a tömbbe i < n helyre 1 2 3 4 5 6 7 8 9 10 34 56 23 67 87 12 78 88 12 n+1 n 34 56 23 12 67 87 78 88

Feladat: szúrjunk be a tömb j-edik helyére egy elemet!

2. Elem törlése a tömbből 1. Eset: törlés a tömb végéről 34 56 23 67 1 2 3 4 5 6 7 8 9 10 34 56 23 67 87 12 78 88 n n n := n-1

2. Elem törlése a tömbből 2. Eset: törlés a tömbből i < n helyről 1 2 3 4 5 6 7 8 9 34 56 23 67 87 12 78 88 n 34 56 23 87 12 78 88

Feladat: Töröljünk egy elemet a tömbből !

Rendezési algoritmusok Rendezésnek nevezünk egy algoritmust, ha az valamilyen szempont alapján sorba állítja elemek egy listáját. 34, 78, 1, 6, 8, 90, 12, 4, 5 1, 4, 5, 6, 8, 12, 34, 78, 90

Egyszerű cserés rendezés 7 2 9 4 3 1 2 7 9 4 3 1 1 7 9 4 3 2 4 9 7 3 2 1 3 9 7 4 2 2 9 7 4 3 1 2 9 7 4 3 1 2 4 7 9 3 Egyszerű cserés rendezés 1. elem Alapelve: Végigmegyünk a sorozat minden tagján és mindegyik elemet összehasonlítjuk az utána következő összes elemmel. Ahol a sorrend nem megfelelő ott cserét végzünk 2. elem 3. elem ...

Egyszerű cserés rendezés

Buborékos rendezés 2. lépés 2 7 4 3 1 9 2 4 7 3 1 9 2 4 3 7 1 9 2 4 3 1 7 9 1. lépés 7 2 9 4 3 1 2 7 9 4 3 1 2 7 4 9 3 1 2 7 4 3 9 1 2 7 4 3 1 9 3. lépés 2 4 3 1 7 9 2 3 4 1 7 9 2 3 1 4 7 9 4. lépés 2 3 1 4 7 9 2 1 3 4 7 9 Volt csere folytatjuk ... 5. lépés 2 1 3 4 7 9 1 2 3 4 7 9 Volt csere folytatjuk ... Volt csere folytatjuk ... Volt csere folytatjuk

Buborékos rendezés Alapötlete: Feltételezzük, hogy a sorozat rendezett Páronként összehasonlítjuk az egymás melletti számokat Ha találunk olyan szampart amely nem rendezett, azt felcseréljük és a feltételezésünket hamisra állítjuk Addig folytatlyuk amig rendezett igaz nem marad.