B I T M A N B I v: T M A N

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "B I T M A N B I v: T 2014.02.15 M A N"

Átírás

1 Műszaki informatika 2. Ea: IPA Az Informatikai Problémamegoldás Alapjai B I v: T M A N 1/223

2 Probléma megoldás (erről szól a tananyag) 2/223 Ezt kell megtanulni! De nem így! Miért?

3 Probléma megoldás (erről szól a tananyag) 3/223 Így kell megtanulni!

4 Témakörök A Neumann architektúra alapjai A szoftverfejlesztés alapjai Programtervezési módszerek Algoritmus alapfogalmak A strukturált programozás alapjai A programkészítés alapjai Alapalgoritmusok 4/223 Ellenőrző kérdések

5 A számítógépek felépítése A hardver fogalma: a számítógépet alkotó fizikai elemek összessége. A személyi számítógépet (Personal Computer, PC) hardverelemek alkotják, amelyeket modulárisan építenek össze. A szoftver fogalma: a számítógépen lévő programok, adatok és azok dokumentációja. 5/223

6 A Neumann modell Feldolgozás Bemenet Tárolás Kiment Bemenet, kimenet: kommunikáció a külvilággal, az adatbevitel- és kivitel megvalósítása Tárolás: az adatok és a programok a program végrehajtása közben belső memóriába kerülnek Feldolgozás: vezérlés, műveletvégzés, adatmozgatás 6/223

7 Neumann-elvek 1. A számítógép legyen soros működésű: a gép az utasításokat sorban egymás után, egyenként hajtsa végre. 2. A számítógép a kettes számrendszert használja, és legyen teljesen elektronikus: a kettes számrendszert és a rajta értelmezett aritmetikai ill. logikai műveleteket könnyű megvalósítani kétállapotú áramkörökkel (pl.: 1 - magasabb feszültség, 0 - alacsonyabb feszültség). 3. A számítógépnek legyen belső memóriája: a számítógép gyors működése miatt nincs lehetőség arra, hogy minden egyes lépés után a kezelő beavatkozzon a számítás menetébe. A belső memóriában tárolhatók az adatok és az egyes számítások részeredményei, így a gép bizonyos műveletsorokat automatikusan el tud végezni. 7/223

8 Neumann-elvek A tárolt program elve: a programot alkotó utasítások kifejezhetők számokkal, azaz adatként kezelhetők. Ezek a belső memóriában tárolhatók, mint bármelyik más adat. Ezáltal a számítógép önállóan képes működni, hiszen az adatokat és az utasításokat egyaránt a memóriából veszi elő. 5. A számítógép legyen univerzális: a számítógép különféle feladatainak elvégzéséhez nem kell speciális berendezéseket készíteni. Alan Turing angol matematikus bebizonyította, hogy az olyan gép, amely el tudja végezni az összeadás és az összehasonlítás műveletét, bármilyen más számítás elvégzésére is alkalmas. 8/223

9 Neumann-elvű PC Vezérlőegység: Mivel az adatok és az utasítások egy helyen tárolódnak, szükség van egy olyan vezérlőegységre, amely különbséget tud tenni közöttük, és az utasításokat önműködően végre tudja hajtani. Ez az egység a Control Unit CU. Aritmetikai-logikai egység: A számítógépben kell lennie egy olyan egységnek, amely a matematikai és a logikai műveleteket is képes elvégezni. Ez az: (Aritmetical-Logical Unit, ALU) 9/223 Napjainkban a központi vezérlő egység (Central Processing Unit, CPU) végzi el a vezérlő egység és az aritmetikai-logikai egység feladatát is. Perifériák: Szükség van olyan bemeneti/kimeneti (input/output, I/O) egységekre, amelyek segítségével létrejöhet a kapcsolat az ember és a gép között. CU CPU ALU

10 Neumann-elvű PC 1. Control Unit Vezérlő Egység CU CPU ALU vezérlés adat és utasítás 10/223 Input Memória Output adat adat Tárolók adat Vezérlőegység: Mivel az adatok és az utasítások egy helyen tárolódnak, szükség van egy olyan vezérlőegységre, amely különbséget tud tenni közöttük, és az utasításokat önműködően végre tudja hajtani. Ez az egység a Control Unit CU.

11 Neumann-elvű PC 2. CU CPU ALU Arithmetical & Logical Unit Aritmetikai és Logikai Egység vezérlés adat és utasítás 11/223 Input Memória Output adat adat Tárolók adat Aritmetikai-logikai egység: A számítógépben kell lennie egy olyan egységnek, amely a matematikai és a logikai műveleteket is képes elvégezni. Elnevezése: Arithmetical-Logical Unit, ALU

12 Neumann-elvű PC 3. CU CPU ALU Central Processing Unit Központi Vezérlő Egység vezérlés adat és utasítás Input Memória Output adat adat Tárolók adat 12/223 Napjainkban a központi vezérlő egység Central Processing Unit, CPU végzi el a vezérlő egység és az aritmetikai-logikai egység feladatát is.

13 Neumann-elvű PC 4. CPU CU ALU vezérlés adat és utasítás 13/223 Input Memória Output Input Unit Bemeneti egység adat adat Tárolók adat Output Unit Kimeneti egység Storage Units Háttértárak Perifériák: Szükség van olyan bemeneti/kimeneti (input/output, I/O) egységekre, amelyek segítségével létrejöhet a kapcsolat az ember és a gép között.

14 Neumann-elvű PC 5. Utasítás CU CPU ALU vezérlés adat Program Input Memória Output adat adat adat Program 1 Program indul 2. Be: A,B 3. C = A+B 4. Ki: C 5. Program leáll 14/223 Tárolók Működési mód: Bemenetről, vagy háttértárról elindítunk egy programot, mely a memóriába töltődik, és az utasításai sorban, egymás után végrehajtódnak.

15 Neumann-elvű PC 6. CPU CU ALU vezérlés adat 15/223 Input Memória Output adat adat Tárolók adat Következmény: - Hardver - Szoftver A működési módból következik: A számítógép két részre bontható, a fizikai alkotórészekre (hardver), és a működtető adatfolyamra (szoftver).

16 A Neumann-ciklus START Program betöltése Utasításhívás Értelmezés Végrehajtás 16/223 Nem Vége? STOP Igen

17 Neumann-elvű PC felépítése Számítógép Rendszeregység Perifériák CPU Memória Egyéb vezérlők Bemeneti eszközök Kimeneti eszközök Tároló eszközök Adattovábbító eszközök 17/223 RAM ROM BIOS Alaplapi vezérlők USB vezérlő Monitorkártya Hangkártya Hálózati kártya Billentyűzet Egér Mikrofon Képolvasó Vonalkód olvasó Webkamera Monitor Nyomtató Hangszóró Flopi Winchester CD, DVD Pendrájv UTP kábel Modem Router WiFi Bluetooth

18 Témakörök A Neumann architektúra alapjai A szoftverfejlesztés alapjai Programtervezési módszerek Algoritmus alapfogalmak A strukturált programozás alapjai A programkészítés alapjai Alapalgoritmusok 18/223 Ellenőrző kérdések

19 A szoftverfejlesztés alapjai A különböző szoftverek szűkebb értelemben vett fejlesztése elsősorban az informatikus feladata, de legtöbbször az informatikusnak és az adott terület szakemberének szorosan együtt kell működni az alkalmazás kifejlesztésében, tesztelésében és menedzselésében. Ezért nagyon fontos, hogy a nem informatikus szakemberek is tisztában legyenek a szoftverfejlesztés alapfogalmaival. 19/223

20 A programfejlesztés lépései START Be: Specifikáció Specifikáció elkészítése Algoritmus elkészítése Kódolás Program ellenőrzés: Szintaktikai Szemantikai Dokumentáció elkészítése: Programozói Felhasználói Karbantartás, verziókövetés 20/223 Algoritmus készítés Igen Kódolás Fordítás, végrehajtás Tesztelés Van hiba a programban? STOP Nem Dokumentáció készítés

21 Specifikáció Specifikáció: A feladat pontos megfogalmazása, Az algoritmussal szemben támasztott követelmények rendszere, A bemenő adatok és az eredmények részletes felsorolása. A kész programnak a specifikáció szerint kell működnie. 21/223

22 Algoritmus Az algoritmus, egy probléma megoldásának véges számú lépésben történő egyértelmű és teljes leírása. Az algoritmus nem kötődik konkrét számítógéphez, általában valamilyen algoritmus leíró nyelven szokták megfogalmazni. Top-down tervezési módszer: lépésenkénti finomítás A feladatot felbontjuk néhány önálló, elkülöníthető tevékenységre. Minden tevékenységet felbontunk további részekre. A felbontást addig végezzük, amíg el nem érkezünk az elemi tevékenységeket tartalmazó algoritmusig. 22/223

23 Kódolás Az algoritmust a számítógéppel egy programozási nyelv segítségével kell közölni. Azt a folyamatot, amely során egy algoritmus lépéseit egy programnyelv utasításaival leírjuk, kódolásnak nevezzük. Az algoritmust olyan részletességgel kell leírni, hogy a kódolás már egyszerűen elvégezhető legyen. 23/223

24 Fordítás, végrehajtás A kódolást követi a fordítás, majd a végrehajtás. Bármilyen gondosan végeztük a tervezést, és a kódolást, a program általában számos hibát tartalmaz. Szintaktika: a nyelvtan szintaktikailag helyes valami, ha helyesen van leírva. Szemantika: a jelentés szemantikailag helyes valami, ha helyesen működik. A programokat szintaktikailag tudja ellenőrizni a fordító, szemantikailag nem! A szemantikai hibák kiderítéséhez futtatni, tesztelni kell a programot. 24/223

25 Szemantikai hiba! 25/223

26 Tesztelés Két fontos terület: 26/223 Verifikáció: A szoftver megfelel-e specifikációjának? Hiányosság tesztelés: meg van-e minden funkció? Statisztikai teszt: tesztesetek Célok, bemenő adatok eredmények Működési mód, helyesség Mindenféle lehetséges elágazás kipróbálása Validáció: A szoftver kielégíti a kliens igényeit, megfelel a vásárló elvárásainak? Kényelem, érthetőség, megtanulhatóság, gyorsaság Naiv tan esete ( Marinéni )

27 Fejlesztői dokumentáció Olyan szinten ismerteti a programot, hogy hozzáértő személy szükség esetén el tudja végezni a módosításokat, a program fejlesztését, vagy az utólag felismert hibák javítását. Tartalma: 27/223 Részletes specifikáció, Futási környezet, Fejlesztői környezet (programozási nyelv), Részletes algoritmus, Forráskód, Teszt adatsorok, eredmények, A hatékonyság elemzése, Továbbfejlesztési lehetőségek.

28 Felhasználói dokumentáció A felhasználók számára készül Tartalma: A program rövid áttekintő leírása Futási környezet (hardver- és szoftverfeltételek, operációs rendszer, perifériák, stb.) A program telepítése, indítása, a használat leírása Bemenő adatok és eredmények Példafuttatás Hibaüzenetek, a hibák lehetséges okai 28/223

29 Program minőségi jellemzők Helyesség Hibatűrés Karbantarthatóság, bővíthetőség Újrafelhasználhatóság Kompatibilitás Felhasználó barátság Hordozhatóság Hatékonyság Ellenőrizhetőség 29/223

30 Témakörök A Neumann architektúra alapjai A szoftverfejlesztés alapjai Programtervezési módszerek Algoritmus alapfogalmak A strukturált programozás alapjai A programkészítés alapjai Alapalgoritmusok 30/223 Ellenőrző kérdések

31 Monolitikus programozás 1950 körül kezdődött Egyszerű programok Egy programot csak egy programozó írt Egy probléma megoldása mindig egyetlen lineáris kódsor Később bonyolultabb programokat is így próbáltak megírni Sok hiba, átláthatatlan kód, nehézkes javítás, módosítás Néhányan elkezdenek azzal foglalkozni, hogyan kellene programokat írni. 31/223

32 Moduláris programozás Bizonyos bonyolultság után a teendők átláthatatlanok, ezért részfeladatokra bontjuk azokat. A részfeladatokra ki kell dolgozni a megoldás menetét, majd az egyes részeket újra össze kell állítani, hogy azok együttműködve, egymásra épülve a teljes feladat megoldását szolgáltassák. A moduláris programozás olyan programozási mód, melyben a teljes program modulokból áll. Az egyes modulok jól meghatározott részfeladat megoldását végzik, kezelhető méretűek, egyértelmű céljuk van és jól definiáltan csatlakoznak a program többi moduljához. A modulokat szubrutinnak (alprogramnak) szokás nevezni. 32/223

33 Moduláris programozás 2. A moduláris programozás irányelvei: "Oszd meg és uralkodj" elv: A feladatokat egyértelműen le kell osztani modulokra. A modulok belső működésébe más modul nem szólhat bele. A modul a saját feladatának tökéletes elvégzéséért felelős. Fontos, hogy a modulok lehetőleg egymástól függetlenül működjenek, mert így a hibák kiszűrése egyszerűbb, a feladat átláthatóbb, könnyebben módosítható. Adatok (információ) elrejtésének elve: Az egyes modulok csak saját adataikon dolgozzanak, csak akkor használjanak közös adatokat, ha ez elkerülhetetlen. 33/223

34 Moduláris programozás 3. Felülről lefelé (top-down) tervezés esetén a megoldást felülről lefelé, fokozatosan, lépésenként finomítjuk. A feladatot részfeladatokra, a részfeladatokat ésszerű határokig ismét kisebb feladatokra bontjuk. A kialakított egységek interface-eken keresztül kommunikálnak, de csak a szintek közötti kommunikáció megengedett, a szinten belüli moduloké tilos! Teljes feladat 1.rész 2.rész 3.rész Nagy, összetett programok esetén hatékony megoldás! 34/223 A B C D E F G H I

35 Moduláris programozás 3. Az alulról felfelé (bottom-up) tervezés lényege, hogy már meglévő, kész modulokból építkezünk. Erre akkor kerül sor, ha bizonyos részfeladatokat egy előző feladat kapcsán már megoldottunk (gondolva a későbbi felhasználásokra is), vagy amikor egy rutingyűjteményt (szoftvert) vásároltunk. Pl.: Hardver közeli programozás. Vásárolunk egy kézi adatgyűjtő számítógépet, és a hozzá kapott kis programocskákból építünk fel egy használható kezelő programot. 35/223

36 Strukturált programozás A strukturált programozás jelenti valamennyi ma használatos programtervezési módszer alapját. Széles körben elfogadott az a nézet, hogy a strukturált programozás a programfejlesztés egyetlen lehetséges módja. A strukturált programok építőelemei (Dijkstra): 36/223 Szekvenciák (utasítássorok) Döntési szerkezetek (elágazások v. szelekciók) Iterációk (ismétlődő részek v. ciklusok) Az 1970-es évektől, amikor a strukturált programozás népszerű technikává vált, olyan új programozási nyelvek születtek, melyek támogatták, hangsúlyozták a módszer alkalmazását (Pascal, Ada).

37 Strukturált programozás 2. A csak szekvenciákból, szelekciókból és iterációkból építkező programot strukturált programnak nevezzük. A strukturált programozásban nem megengedett a feltétel nélküli ugrás, így többek között a ciklusból sem ugorhatunk ki. Ebből az is következik, hogy a program minden vezérlő szerkezetének (szekvencia, szelekció, iteráció) - és magának a teljes programnak is - egyetlen belépési és egyetlen kilépési pontja van, így a program lényegesen áttekinthetőbb. Böhm és Jacopini tétele (1966): A szekvencia, szelekció és az iteráció segítségével minden olyan algoritmus felépíthető, amelynek egy belépési és egy kilépési pontja van. 37/223

38 Strukturált programozás 3. A strukturált szemléletmód: A programot két részre osztjuk: Adatok, Műveletek. A tervezés különálló modellek segítségével történik: Adatmodellek az adatokhoz, Funkcionális modellek (algoritmusok) a műveletekhez. A megvalósításban az adatok és műveletek szigorúan elkülönülnek egymástól, és csak szükség esetén rendelődnek egymáshoz. Adatok Műveletek 38/223

39 Strukturált programozás 4. A strukturált programozás módszertana az 1980-as évekre rendszerfejlesztési, programtervezési technológiává vált, Megjelentek különböző algoritmus leíró módszerek, Elkezdték a módszertant oktatni, Sokan tanulták meg, Sokan írtak egyre komolyabb programokat. Ma általánosan elfogadott és támogatott nézet, hogy első programnyelvként érdemes valamilyen strukturált nyelvet megtanulni, és ezután ismerkedni más programozási nyelvekkel. 39/223

40 Objektum-orientált programozás Az objektum-orientált programozás (OOP) sok tekintetben a moduláris programozás továbbfejlesztett változata, mely lassan háttérbe szorítja a strukturált programozást. Az egyes elemeket itt nem moduloknak, hanem objektumoknak nevezzük, melyek tulajdonságaikban és egymáshoz való viszonyukban különböznek a moduloktól. Kialakulása: 80-as évek eleje Néhány OOP nyelv: 40/223 C++, Java, Delphi

41 Objektum-orientált programozás 2. Az objektum létrehozásakor definiáljuk a szerkezetét, és azokat az algoritmusokat, melyek leírják a viselkedését, így a későbbiekben mindent együtt kezelhetünk, ami az adott objektumhoz tartozik. Fő tulajdonságok: 41/223 Az adatokat összekapcsoljuk az azokat kezelő eljárásokkal és függvényekkel (metódusokkal), így kapjuk az alapegységet, az objektumot. Egy létre jövő objektum a korábban definiált objektumoktól adatokat és metódusokat vehet át (örökölhet). Az öröklődés az objektum-orientált nyelvekre jellemző speciális képesség.

42 Objektum-orientált programozás 3. Az objektumorientált megközelítés: A program együttműködő objektumok halmaza Az objektumok adatokkal (ismeretekkel) rendelkeznek Az objektumok feladatokat végeznek: kérésre végrehajtják a hozzájuk tartozó metódusokat. Objektum Objektum Adatok Metódusok Adatok Metódusok 42/223 Objektum Adatok Metódusok Objektum Adatok Metódusok

43 Témakörök A Neumann architektúra alapjai A szoftverfejlesztés alapjai Programtervezési módszerek Algoritmus alapfogalmak A strukturált programozás alapjai A programkészítés alapjai Alapalgoritmusok 43/223 Ellenőrző kérdések

44 Algoritmus alapfogalmak Az algoritmusok építőelemei Algoritmus leíró módszerek 44/223

45 Az algoritmusok építőelemei Az algoritmus alapvető összetevői, építőelemei: 45/223 Szekvencia: Két utasítás (programrész) közvetlen egymás után írása. Szelekció: Adott feltételtől függően más-más utasítás végrehajtása (elágazás) Iteráció: Egy utasítást (utasítás csoportot) feltételtől függően többször is végrehajtunk (ciklus) A strukturált programozás alaptétele (Dijsktra): Bármely program megadható ekvivalens strukturált program formájában is, amelyben a fenti három konstrukciós művelet szerepel.

46 Az algoritmusok építőelemei 2. Szelekciós műveletet a döntési pontokban végzünk: a döntés kimenetelétől függően a folyamat vagy az egyik, vagy a másik irányban folytatódik. A döntési pont egy feltételt (logikai kifejezés) tartalmaz, melynek igaz vagy hamis eredménye alapján ágaztatjuk el a folyamatot. Iterációnak egy vagy több művelet ismétlését nevezzük, az ismétlődés addig tart, amíg ezt valamilyen feltétel teljesülése meg nem állítja. 46/223 Az iterációkat szekvenciákból és szelekciókból építjük fel. Az iteráció legalább egy szelekciót (döntési pontot) tartalmaz. A műveletek ismétlődése a döntési pontban megfogalmazott feltétel (logikai kifejezés) eredményétől függ.

47 Az algoritmusok jellemzői: Elvégezhető (elemi, végrehajtható lépésekből áll) Meghatározott (minden lépés pontosan definiált) Véges (véges számú lépés után véget ér) Meghatározott input halmazra érvényes Adekvát output halmazt eredményez (az adatok meghatározzák az eredményt) Egy feladatosztály megoldására szolgál 47/223

48 Algoritmus alapfogalmak Az algoritmusok építőelemei Algoritmus leíró módszerek 48/223

49 Algoritmusok szöveges megadása Tojásfőzés algoritmusa: Tedd a forró vízbe a tojásokat, 5 perc múlva vedd ki őket, tisztítsd meg, ha gondolod sózd meg őket, és edd meg! 49/223

50 Pszeudokód mondatszerű leírás Az algoritmust először mondatokkal fogalmazzuk meg. A rövidebb felíráshoz elhagyjuk a szabályos nyelvtani mondat szerkezetet. A pszeudokódban mondatszerű leírásban hiányos mondatok szerepelnek. A feltételes elágazásokhoz és ciklusokhoz tartozó utasításokat behúzással írjuk. Ezzel a strukturált elrendezéssel kiemeljük az algoritmus szerkezetét. 50/223

51 Pszeudokód mondatszerű leírás 2. 51/223 Tegyél fel vizet forrni Vedd elő a tojásokat Ciklus amíg nem forr a víz figyeld a vizet Ciklus vége Tedd a vízbe a tojásokat Ciklus 5 percig: Nézd az órát Ciklus vége Vedd ki a tojásokat Törd fel a tojásokat Ha sósan szereted, akkor sózd meg őket Elágazás vége Edd meg a tojásokat

52 Folyamatábra A folyamatábra az algoritmus lépéseinek sorrendjét utasítástípusonként különböző geometriai alakzatok felhasználásával szemléltető ábra. Utasítástípusok: Kezdő és befejező utasítások. Be/kiviteli utasítások. Értékadó utasítások. Elágazások. Az utasítások sorrendjét nyilak jelzik. 52/223

53 Folyamatábra elemek START STOP Igen K:=0 N>I Nem K:=I Be: A,B S:=3*A/2 Ciklus 1-től 5-ig Ki: C Be: A[i] 53/223

54 Folyamatábra Tojásfőzés START Tégy fel vizet forrni 1 Ciklus 1-től 5-ig Nézd az órát Vedd elő a tojásokat Vedd ki a tojásokat Nem Figyeld a vizet Forr a víz? Igen Tedd vízbe a tojásokat Törd fel a tojásokat Sósan szereted? Nem Edd meg a tojásokat Igen Sózd meg 54/223 1 STOP

55 Folyamatábra: Betyárkodás 55/223

56 Struktogram elemek Be: A Igaz feltétel Hamis szelekció Ki: S utasítás utasítás utasítás feltétel ciklusmag Elöl tesztelő ciklus 56/223 ciklusmag feltétel Hátul tesztelő ciklus

57 Struktogram Tojásfőzés Tégy fel vizet forrni Vedd elő a tojásokat Figyeld a vizet Forr a víz? Tedd vízbe a tojásokat i := Nézd az órát Vedd ki a tojásokat Törd fel a tojásokat Sósan szereted? Nem Igen 57/223 Sózd meg Edd meg a tojásokat

58 Témakörök A Neumann architektúra alapjai A szoftverfejlesztés alapjai Programtervezési módszerek Algoritmus alapfogalmak A strukturált programozás alapjai A programkészítés alapjai Alapalgoritmusok 58/223 Ellenőrző kérdések

59 A strukturált programozás alapjai Adatok, változók Adatszerkezetek Értékadás, kifejezések Operátorok Elágazások, ciklusok 59/223

60 Változó A programokban az adatok változók formájában jelennek meg változókban tároljuk az adatokat. A változó névvel ellátott tároló hely a számítógép memóriájában. A változó értéke ezen tároló hely pillanatnyi értéke. A változó jellemzői: Neve azonosítója Típusa Értéke Tárbeli kezdőcíme 60/223

61 Típus Egy típus meghatározza a tároló tartalmának értelmezését. Egy nyelv egy típusának jellemzése: 61/223 Felvehető értékek halmaza, adatábrázolás Konstansai A típuson végezhető műveletek Rendelkezésre álló eljárások, függvények Elemi típusok: Egy értéket vehetnek fel egy adott tartományból Egész, valós, karakter, logikai, mutató Összetett típusok: Adatszerkezetek Tömb, karakterlánc, rekord, állomány

62 Változók Típus Pascal C Értelmezési tartomány Egész Integer Int Hosszú egész Longint Long -2,1milliárd.. +2,1milliárd Valós Real Float ±2*10 38, pontosság: 8 bit Valós Double Double ±5*10 320, pontosság: 16 bit Karakterlánc String Char[n] Pascal: 255 karakter C: Long méret Logikai Boolean true vagy false 62/223

63 Változók deklarálása Deklaráció: a változók bevezetése (kihirdetése) használat előtt. Eredménye: helyfoglalás a memóriában. Sok programnál megkell adni a változók típusát is. E szerint a programnyelv lehet: Típus nélküli nyelv: a változóhoz nem rendelünk típust, a futás során bármilyen értéket felvehet. Típusos nyelv esetén kötelező megadni a változók típusát. Erősen típusos nyelveknél már a fordítónak is ismernie kell a típust. Pl. Int a; Int a=10; Int a,b,c; Konstans: a programban előforduló állandó értékű adatokat konstansként deklaráljuk, és nevükkel hivatkozunk rájuk. 63/223

64 A strukturált programozás alapjai Adatok, változók Adatszerkezetek Értékadás, kifejezések Operátorok Elágazások, ciklusok 64/223

65 Tömb A legalapvetőbb, leggyakrabban használt adatszerkezet. Több, egyforma típusú elemből áll. Az egyes elemeket a tömb nevével, és a tömbön belüli helyükkel, az indexükkel azonosítjuk. Tömb: azonos névvel ellátott, sorszámmal megkülönbözetett változók csoportja. Lehet 1 dimenziós: vektor, 2 dimenziós: mátrix, több dimenziós. Műveletek: Elem kiválasztása indexeléssel (pl. A[2]), Egy elemre az összes művelet értelmes, ami az elemtípusra. 65/223

66 Sztring Sztring (string): Karakterekből álló speciális tömb, karakter sorozat Kezelése eltér a normál tömbök kezelésétől Műveletek: Hossz (karakterek száma) Összefűzés Keresés Beszúrás Rész kimásolása 66/223

67 Mutató Mutató pointer: 67/223 A memória egy adott helyére mutat, értéke a mutatott hely memóriacíme. Mindig valamilyen adott típusú objektumra mutat (pl. egész számra) A pointer és az általa mutatott objektum nem egyszerre keletkeznek és szűnnek meg, bizonyos értelemben teljesen önálló életet élnek. Deklaráció: meg kell adni, hogy pointer változóról van szó, és a hivatkozott adatok típusát. Ekkor csak a pointer (az általa tárolt memória cím) számára foglalódik hely, a mutatott objektumnak nem. Pl. Int *m;

68 Mutató 2. Két speciális, csak mutatókon értelmezett művelet: Ha A egy változó, akkor &A az A változó memóriacíme. Ha *M egy mutató típusú változó, akkor M az a memóriacím, amelyre *M mutat. A egy egész, értéke 10 M egy mutató M A-ra mutat Int A=10; Int *M; M=&A; Kiír: *M; *M= *M+3; Kiír: A; Azt a változót, amire M mutat, növelem 3-al /223

69 Rekord / Struktúra Rekord / struktúra: 69/223 Szemantikailag összetartozó, egymáshoz rendelt, különböző típusú elemek halmaza. Minden elemének (mezőknek) saját neve van. Használatának előnye, hogy egy egységbe foglalja össze az összetartozó adatokat. Pl. Egy ember neve, fizetése A rekord használatához előbb egy új típust kell létrehozni, ezután lehet az új típusból változót deklarálni. Műveletek: Elemkiválasztás (pl. Ember[2].fizetés), A kiválasztott elemen a típusnak megfelelő összes művelet értelmezett.

70 Objektum Objektum: A rekordok/struktúrák továbbfejlesztése: logikailag összetartozó adatok és rajtuk dolgozó metódusok összessége. Jellemzők: Öröklődés: az utód osztály örökli az ős adatait, metódusait, valamint tartalmazhat újakat, és felülírhat régi metódusokat. Polimorfizmus többalakúság: ugyanarra az üzenetre (kérelemre), azaz metódus hívásra, különböző objektumok különbözőképpen reagálhatnak. Bezárás, az információ elrejtése: az adatokat csak interfészeken (metódusok) keresztül lehet elérni. 70/223

71 Változók Állományok A változók az adatok programfutás-közbeni tárolásának és kezelésének eszközei, de csak belső tárolásúak, azaz a memóriában léteznek. (Ha kikapcsoljuk a gépet, elveszítik értéküket) A gyakorlati programozáshoz a belső adattárolás nem elegendő, mert: Az adatokat két feldolgozás, programfutás között is meg kell őrizni. Az adatok mennyisége olyan nagy lehet, hogy egyszerre nem fér be a memóriába. A megoldás a külső tárolókon, a háttértárakon történő adattárolás. 71/223

72 Állomány Állomány (fájl): 72/223 A háttértáron tárolt adatok definiálására és kezelésére szolgáló adatszerkezet. Azonos típusú (mely lehet egyszerű vagy összetett) elemek sorozata (szekvenciája). Egyszerre egy elem férhető hozzá (írható vagy olvasható), ezt egy író-olvasó pointer (rekordmutató) jelöli ki. A fájl deklarálásakor a fájlhoz egy azonosítót rendelünk, ez a fájl változó. Ezt a "logikai" fájlt egy "fizikai", valamely periférián létező fájlhoz kell hozzárendelni. A logikai fájlt kezeljük, a változások megjelennek a fizikai fájlban is.

73 Speciális adatszerkezetek Sor: A sor adatszerkezetbe egyesével tehetjük be, és egyesével vehetjük ki az elemeket. Ahhoz az elemhez férünk hozzá legelőször, amelyiket először betettünk, ezért nevezik FIFO (first in first out) adatszerkezetnek. Műveletek: berakás, kivétel C, B, A C, B, A C B A Berak Kivesz 73/223

74 Speciális adatszerkezetek Verem: Verem esetén azt az elemet vehetjük ki legelőször, amelyiket utoljára tettük be. Működési módja miatt LIFO (last in first out) adatszerkezetnek nevezik. Műveletek: berakás, kivétel C, B, A A, B, C Berak C Kivesz B 74/223 A

75 A strukturált programozás alapjai Adatok, változók Adatszerkezetek Értékadás, kifejezések Operátorok Elágazások, ciklusok 75/223

76 Értékadás Értékadás: amikor egy változónak értéket adunk, vagy meglévő értékét módosítjuk. Szintaktikája (formája, alakja): 76/223 Változó = kifejezés Pl. a = 2*b c vagy a = a+1 Szemantikája (jelentése): Időbeliség! A kifejezés kiértékelődik, majd a változó felveszi értékül a kifejezés eredményét. Mivel előbb értékelődik ki a kifejezés és csak utána változik meg a változó értéke, ezért a változó szerepelhet a kifejezésben és ott a program a változó korábbi értékével számol. Fontos: mindig a bal oldal kap értéket! a=b b=a!

77 Kifejezések Kifejezés: értéket képviselő programelemek összekapcsolva operátorokkal, ahol a kifejezés elem lehet: Konstans, Változó, Függvényhívás, Zárójelezett kifejezés. Pl: 5*(a+2)-b A kifejezés tartalmaz egy konstanst (5), egy zárójelezett kifejezést (a+2), egy változót (b), valamint két operátort a szorzást (*), és a kivonást (-). A zárójelezett kifejezés tartalmaz egy változót (a), egy konstanst (2) és egy operátort az összeadást (+). 77/223

78 Kifejezések 2. Kifejezés kiértékelés: Ha egy kifejezés több operátort is tartalmaz, akkor a kiértékelésük sorrendjét a precedencia szabályok határozzák meg. A zárójelezett kifejezésben szereplő operátorok a teljes kifejezés kiértékelése szempontjából nem számítanak, hiszen a zárójelezett kifejezés külön értékelődik ki. Precedencia szintek: Minden operátor be van sorolva valamilyen precedencia szintre. Egy precedencia szinten lehet több operátor is. 78/223

79 Kifejezések 3. Precedencia szabályok: A különböző precedencia szintű operátorok esetén mindig a magasabb precedenciájú hajtódik végre először (tehát nem leírás sorrendjében!!). Az azonos precedencia szintű operátorok közül a leírás sorrendisége dönt. A legtöbb precedencia szint esetén a leírás sorrendjében, azaz balról-jobbra hajtódnak végre. Egyes precedencia szinteknél előfordul, hogy jobbrólbalra. 79/223

80 A strukturált programozás alapjai Adatok, változók Adatszerkezetek Értékadás, kifejezések Operátorok Elágazások, ciklusok 80/223

81 Operátorok Operátorok: 81/223 Egy operandusú operátorok: pl. logikai tagadás operátor, előjel operátor, növelő operátor, stb. Két operandusú operátorok: pl. összeadás, szorzás, stb. Három operandusú operátor: a C szerű nyelvekben létezik egy feltételes operátor, amely három operandusú A leggyakrabban használt operátorok (az első szint a legmagasabb): Szint 1: előjel operátor:-, logikai tagadás operátor:! Szint 2: szorzás: *, osztás: / Szint 3: összeadás: +, kivonás: - Szint 4: relációk: <, >, <=, >= Szint 5: értékadó operátorok (C szerű nyelvek esetén): =, +=, -=, *=, /=, stb. (jobbról-balra!!!)

82 Operátorok 2. Az egyes nyelvek ettől sokkal több operátort ismernek, és több precedencia szint is létezik. Általánosságban elmondható, hogy az egyoperandusú operátorok magasabb precedenciájúak, mint a kétoperandusúak. A legtöbb szint balról-jobbra értékel ki, kivételek az értékadó operátorok, valamint legtöbb egyoperandusú operátor (hiszen ezeket elé szokás írni és az értékelődik ki hamarabb, amely közelebb áll az operandushoz. 82/223

83 Operátorok 3. Példa1: 3+2*4-4/2*3 lépés 1.: legmagasabb precedenciájú a *, /,, balróljobbra értékelődik tehát első lépésben a 2*4 értékelődik ki. Ezután marad a: 3+8-4/2*3 lépés 2.: 4/2. Marad a 3+8-2*3 lépés 3.: 2*3. Marad a lépés 4: 3+8. Marad a 11-6 lépés 5: 11-6 Eredmény: 5 83/223

84 Operátorok 4. Példa2: 2+3-((5+3)/(2*4)+2)-1 lépés 1: A kifejezésben levő operátorok +, -, -, azaz mindegyik azonos precedenciájú, kiértékelésük balróljobbra történik: 2+3, marad a 5-((5+3)/(2*4)+2)-1 lépés 2: A kiértékelésben következő operátor jobb oldalán egy zárójelezett kifejezés áll, így a kivonás kiértékelése előtt ki kell értékelni a zárójelezett kifejezést. Következik: (5+3)/(2*4)+2 kiértékelése! 84/223

85 Operátorok 5. Kiindulás: 5-((5+3)/(2*4)+2)-1 (5+3)/(2*4)+2 kiértékelése: lépés 1: két operátor van: /, +. Magasabb precedenciájú a / ennek baloldalán egy zárójelezett kifejezés áll, tehát ki kell értékelni: lépés 1: 5+3. Marad: 8 / (2*4) +2 a / operátor jobboldali operandusa is zárójelezett kifejezés: (2*4) kiértékelése: lépés 2: 2*4. Marad: 8 / 8 +2 tehát az osztás: 8/8. Marad: 1+2 lépés 2: 1+2, eredménye tehát: 3 Eredmény: 5-((5+3)/(2*4)+2) /223

86 Operátorok : először az 5-3 hajtódik végre, eredmény: 2 lépés 3: 2-1, az eredmény ((5+3)/(2*4)+2)-1 = 1 86/223

87 Relációs operátorok Fontos: mindig a bal oldalról mondunk véleményt! < kisebb <= kisebb, vagy egyenlő = egyenlő <> nem egyenlő > nagyobb >= nagyobb, vagy egyenlő Az összehasonlítás eredménye igaz, vagy hamis lehet. Logikai operátorok: segítségükkel összetett logikai állításokat képezhetünk 87/223

88 Logikai operátorok 1. Logikai nem - tagadás Jele: NOT Jelentése: Igazból hamisat, hamisból igazat képez Igazságtáblázata: Logikai és Jele: AND Jelentése: Az összetett állítás akkor igaz, ha mindkét állítás igaz. 88/223 A NOT(A) Igaz Hamis Hamis Igaz A B A AND B Igaz Igaz Igaz Igaz Hamis Hamis Hamis Igaz Hamis Hamis Hamis Hamis

89 Logikai operátorok 2. Logikai megengedő vagy Jele: OR Jelentése: Az összetett állítás akkor igaz, ha legalább az egyik állítás igaz. Logikai kizáró vagy Jele: XOR Jelentése: Az összetett állítás akkor igaz, ha a két állítás különbözik. 89/223 A B A OR B Igaz Igaz Igaz Igaz Hamis Igaz Hamis Igaz Igaz Hamis Hamis Hamis A B A XOR B Igaz Igaz Hamis Igaz Hamis Igaz Hamis Igaz Igaz Hamis Hamis Hamis

90 Logikai operátorok 3. Implikáció (összefonódás) Jele: Példa: Ha esik az eső (A), és van esernyőm (B), nem ázok meg (A B). A B A B Igaz Igaz Igaz Igaz Hamis Hamis Hamis Igaz Igaz Hamis Hamis Igaz Ekvivalencia (egyenértékűség) Jele: Jelentése: Az összetett állítás akkor igaz, ha a két állítás egyforma. 90/223 A B A B Igaz Igaz Igaz Igaz Hamis Hamis Hamis Igaz Hamis Hamis Hamis Igaz

91 Logikai operátorok 4. Nem és Jele: NAND Jelentése: Az összetett állítás akkor hamis, ha mindkét állítás igaz. A B A NAND B Igaz Igaz Hamis Igaz Hamis Igaz Hamis Igaz Igaz Hamis Hamis Igaz Nem vagy Jele: NOR Jelentése: Az összetett állítás akkor igaz, ha mindkét állítás hamis. 91/223 A B A NOR B Igaz Igaz Hamis Igaz Hamis Hamis Hamis Igaz Hamis Hamis Hamis Igaz

92 92/223

93 Logikai operátorok 3. Példák A=2, B=3 A < 5 OR B > 3 A > 5 AND B > 3 NOT(A > 5) AND B <= 3 NOT(A = 2) OR B <> 3 NOT(A = 2) AND NOT(B = 3) NOT(A < 4) AND ((B > 3) OR (B > 3)) ((A < 4) AND (A >= 2)) OR ((B > 2) AND NOT(B <> 3)) NOT(A <> 2) AND NOT(B <= 3) AND (A < 5 OR B > 3) (A > 5 AND B > 3) XOR ((B > 2) AND NOT(B <> 3)) 93/223 (NOT(A > 5) AND B <= 3) XOR (NOT(B <= 3) AND A > 5)

94 A strukturált programozás alapjai Adatok, változók Adatszerkezetek Értékadás, kifejezések Operátorok Elágazások, ciklusok 94/223

95 Feltételes művelet Egyágú elágazás Ha feltétel akkor utasítás Elágazás vége Ha a feltétel teljesül, akkor az utasítás végrehajtásra kerül, ha nem teljesül, akkor az elágazás vége után folytatódik a program. Az utasítás helyén több utasítás is állhat. igaz feltétel utasítás - hamis igaz feltétel utasítás hamis 95/223

96 Feltételes (kétágú) elágazás Ha feltétel akkor utasítás-i különben utasítás-h Elágazás vége Ha a feltétel teljesül, akkor az utasítás-i kerül végrehajtásra, ha nem akkor az utasítás-h. Mindkét esetben az elágazás vége után folytatódik a program. igaz feltétel hamis igaz feltétel hamis utasítás-i utasítás-h utasítás-i utasítás-h 96/223

97 Többágú feltételes elágazás Elágazás feltétel1 akkor utasítás1 feltétel2 akkor utasítás2. feltételn akkor utasításn különben utasítás0 Elágazás vége Ha az i-edik feltétel teljesül, akkor az utasítási kerül végrehajtásra, ha egyik feltétel sem teljesül, akkor az utasítás0. Bármely esetben az elágazás vége után folytatódik a program. feltétel1 utasítás1 97/223 feltétel1 utasítás1 feltétel2 utasítás feltételn utasításn különben utasítás0 feltétel2 feltételn utasítás0 utasítás2 utasításn

98 98/223

99 Elöl tesztelő ciklus ciklus amíg feltétel ciklusmag ciklus vége Amíg a feltétel teljesül, addig a ciklusmag utasításai végrehajtásra kerülnek, ha már nem teljesül, akkor a ciklus vége után folytatódik a program. feltétel ciklusmag igaz feltétel utasítások hamis 99/223

100 Hátul tesztelő ciklus ciklus ciklusmag amíg feltétel ciklus vége A ciklusmag mindaddig végrehajtásra kerül, amíg a feltétel teljesül. Ha már nem teljesül, akkor a ciklus vége után folytatódik a program. Egyszer a ciklusmag mindenféleképpen végrehajtódik! ciklusmag utasítások feltétel igaz feltétel hamis 100/223

101 Számláló ciklus ciklus i= 1..N utasítások ciklus vége A ciklusváltozó (i) a kezdeti értéktől a végértékig egyesével növekszik, közben minden értéknél végrehajtódik a ciklusmag. Ha a ciklusváltozó meghaladja a végértéket, a ciklus vége után folytatódik a program. i= 1..N ciklusmag hamis i=1..5 igaz utasítások 101/223

102 Visszafelé számláló ciklus ciklus i= N..1 visszafelé utasítások ciklus vége A ciklusváltozó (i) a kezdeti értéktől a végértékig egyesével csökken, közben minden értéknél végrehajtódik a ciklusmag. Ha a ciklusváltozó értéke a végérték alá csökken, a ciklus vége után folytatódik a program. i= N..1 ciklusmag hamis i=5..1 igaz utasítások 102/223

103 Egymásba ágyazott ciklusok Mátrix beolvasása j i i= j=1 h i=1..3 i j=1..5 i h i=i+1 Be: A[i,j] j<5 j=j+1 Be: A[i,j] i<3 103/223

104 Témakörök A Neumann architektúra alapjai A szoftverfejlesztés alapjai Programtervezési módszerek Algoritmus alapfogalmak A strukturált programozás alapjai A programkészítés alapjai Alapalgoritmusok 104/223 Ellenőrző kérdések

105 A programkészítés alapjai A programozás kialakulása A programkészítés menete Programnyelv ABC 105/223

106 Programnyelv generációk 1GL: Gépi kód Generation Language 2GL: Assembly 3GL: Magasszintű, procedurális nyelvek Utasítás-orientált (BASIC, PASCAL) Kifejezés-orientált (C) 4GL: Probléma-orientált nyelvek Funkcionális (LISP) Logikai (PROLOG) Adatbázis-kezelő (SQL) Objektum-orientált (C++, JAVA) 5GL: Természetes nyelvek 106/223

107 5GL Egy természetes nyelv 107/223

108 Gépi kód A gépi kódú (bináris kódú) program a számítógép számára végrehajtható utasítások sorozata, ezért futtatható programnak (executable program) is nevezik. Egy gépi kódú program adatokat és utasításokat is tartalmaz. Műveleti kód Címrész A műveletben részt vevő adatok helyének kódja /223 Összeadás Első szám helye Második szám helye Eredmény helye

109 Az igazi programozó kódja bináris! 109/223

110 Assembly A programozó az utasításokat egy szöveges állományba írja, ez az assembly forrásprogram. Ez nem futtatható, ezért gépi kódúvá kell alakítani. Assembler: program, amely elemzi és gépi kódúvá alakítja, lefordítja a forrásprogramot. További feladata, hogy információt adjon a forrásprogramban előforduló hibákról. MOV PUSH PUSH ADD CALL 0401C8 0401CA 0401CC 0401D0 0401D4 esp,4 eax,eax edx esp,1 esp, /223 Assembler

111 Alacsony szintű programnyelvek A gépi kód és az assembly olyan programozási nyelv, melyben a vezérlés és az adatstruktúra közvetlenül visszatükrözi a gép architektúráját. Előnyük: Gyors, és kis helyfoglalású program írható Vannak olyan erősen a hardverhez kötődő feladatok, amelyeket csak így lehet megoldani Hátrányuk: A programozónak sokat kell dolgoznia A kód nehezen érthető, módosítható Géptípusonként külön kell megírni a kódot 111/223

112 A gépi kódú program A számítógép a működése során gépi utasításokat (instrukciókat) hajt végre egymás után Az instrukciók csak primitív műveleteket tudnak végrehajtani. Például: regiszterekben tárolt egész számok összeadása egy regiszter tartalmának adott memóriacímre másolása stb. Az instrukciók gép-specifikusak, a processzorral együtt tervezik meg azokat 112/223

113 A gépi kódú programozás hátrányai Egy feladat megfogalmazása a gép nyelvén rendkívül aprólékos munka A gépi kódú programozáshoz a hardware elemek pontos ismerete szükséges Ha egy gép hardware összetétele megváltozik, a programot ennek megfelelően módosítani kell. Ha a programot egy másik processzorral épített gépen akarjuk futtatni, a programot teljesen újra kell írni, a gépi kódú programok nem hordozhatók! 113/223

114 A megoldás Az operációs rendszer (egyik szolgáltatásaként) elrejti a hardware elemek kezelésének részleteit (pl. egy lemez tartalmát file-rendszerként kezelhetjük) - de ez egy másik tárgy témája. A programok írására magas szintű programozási nyelvet használunk, amely processzor és - többnyire - hardware független utasításokat tartalmaz. A programok hordozhatók, egy másik processzorra változtatás nélkül áttehető a program 114/223

115 A megoldás 2. A programozási nyelv az emberi nyelvhez közelebb áll, mint a gépi nyelvhez - könnyebben megtanulható. A programozási nyelv utasításai bonyolultabb folyamatokat írnak le, mint az instrukciók - ugyanannak a problémának a leírása sokkal kevesebb utasítást igényel. A gyakran előforduló részfeladatokra előre elkészített programrészek (könyvtári rutinok) használhatók. ("Library") 115/223

116 A programozási nyelv A természetes nyelvhez hasonlít a felépítése Számos nyelv létezik, de mindegyiknek precíz definíciója van. Egy nyelv definíciójának összetevői: Alapelemek (szintaktikai egységek) - mint a természetes nyelvekben a szavak Formális szabályok az alapelemek összeépítésére (szintaktika)- mint a nyelvekben a nyelvtan A nyelvi szerkezetek jelentésének definíciói (szemantika) - mint a nyelvekben a használat szabályai 116/223

117 Megoldandó problémák Egyetlen processzor sem érti egyetlen magas szintű programozási nyelv utasításait sem! Megoldás: a programot le kell fordítani instrukciók sorozatára. A munka automatizálható: fordítóprogram (compiler) segítségével. Minden operációs rendszer - processzor párosra külön fordítóprogram kell. Ez azonban megoldja a gépfüggetlen programok írását. 117/223

118 Megoldandó problémák 2. Egy programot általában több részben (modulban) írunk meg Felhasználunk előre elkészített modulokat is (könyvtári rutinokat) Megoldás: ezeket össze kell építeni a linker (tárgykódú szerkesztő) program segítségével 118/223

119 A programkészítés alapjai A programozás kialakulása A programkészítés menete Programnyelv ABC 119/223

120 A programkészítés menete 1. # include <stdio.h> void main ( ) { printf ( Helló Világ! \n ); } Elkészítjük a program forráskódját Ez egy (esetleg több) szövegfájl Ehhez egy szövegszerkesztő programot használunk Szövegszerkesztő (editor) 120/223 A file kiterjesztése általában utal a használt programozási nyelvre. Pl.: proba.c

121 A programkészítés menete 2. # include <stdio.h> void main ( ) { printf ( Helló Világ! \n ); } Fordítóprogram 1CF7 B00C 37DA 4107 FAC4 660D 00F1 300BD 1FF0 35BB 337DD 239C 410F 396A C44D 006A Lefordítjuk a programot a fordítóprogrammal (compiler) Szövegszerkesztő (editor) 121/223 A tárgykódú modul egy speciális szerkezetű bináris file, amelynek formátuma már nem függ a programozási nyelvtől. Kiterjesztése általában.obj vagy.o

122 A programkészítés menete 3. # include <stdio.h> void main ( ) { printf ( Helló Világ! \n ); } Szövegszerkesztő (editor) 122/223 Fordítóprogram 1CF7 B00C 37DA 4107 FAC4 660D 00F1 300BD 1FF0 35BB 337DD 239C 410F 396A C44D 006A 410F 396D 5CF3 B00A 3CDA 4107 FAC4 660D 00F1 300BD CCD4 BAF0 337DD 239C 33F5 0B6A A tárgykódú modulokhoz hozzávesszük a könyvtári modulokat A linker összeszerkeszti Linker A végeredmény a futtatható (exe) program

123 Megjegyzések A forrásprogram szövegfájl, elkészítéséhez szövegszerkesztő (text editor) és nem dokumentum szerkesztő alkalmas. Windows alatt például a "Jegyzettömb" alkalmazás, és nem a Word. Az előző ábrák azt az esetet mutatják, amikor parancssoros felületen, az egyes programok egyedi indításával készítjük el a programot. Ma már a legegyszerűbb fejlesztőeszközök is integrálják az editor, compiler, a linker és a hibakereső (debugger) programokat, ezzel egyszerűsítve a munkát. 123/223

124 Egy C nyelvű fejlesztő környezet Lépések: 1. Programírás 2. Mentés (pld.c) 3. Fordítás (pld.exe) 4. Futtatás 124/223

125 Megjegyzések 2. Mivel egy valóságos program több tárgykódú modulból és esetenként több könyvtár felhasználásával szerkeszthető össze, a linkernek fel kell sorolni a szükséges modulokat. Erre is tartalmaz eszközöket egy integrált fejlesztő eszköz. Az előbb vázolt eszközök csak egyszerű programok és nem alkalmazások fejlesztését teszik lehetővé. 125/223 Egy programozási nyelv például általában nem tartalmaz ablakos felhasználói felület készítésére alkalmas eszközöket. (Ez alól részben kivétel a Java nyelv.) Valódi alkalmazások fejlesztésére összetettebb (és drágább) fejlesztő környezet szükséges.

126 A program és az alkalmazás különbsége 1. A program egy technikai fogalom: algoritmusok számítógépes megvalósítása. Az alkalmazás felhasználó vagy felhasználók egy csoportjának a munkáját vagy egyéb tevékenységét segítő számítógépes rendszer. Egy alkalmazás legfontosabb részei: 126/223 Program vagy programok rendszere Működtető környezet (hardware/software) Adatok Dokumentációk A program tehát egy szűkebb fogalom, mint az alkalmazás (A tárgy keretében a gyakorlás érdekében programokat írunk.)

127 A program és az alkalmazás különbsége 2. Az alkalmazás mindig felhasználó(k) érdekében készül. Az alkalmazás kifejlesztése vagy megvásárlása pénzbe kerül, tehát termék, áru. A termékek megfelelő minőségű gyártásához szükséges ismeretek együttesét szoftver technológiának hívjuk. A mai szóhasználatban a software szó a legtöbbször alkalmazást jelöl. 127/223

128 A programkészítés alapjai A programozás kialakulása A programkészítés menete Programnyelv ABC 128/223

129 A programozási nyelvek megjelenése /223 FORTRAN FORmula TRANslator COBOL COmmon Business Oriented Language ALGOL Algorithmic Language BASIC Beginner s All purpose Symbolic Instruction Code C Dennis Ritchie Pascal C++ Perl PHP Hypertext Preprocessor Java, JavaScript Delphi: Pascalból, objektum orientált C# (.net) Ruby on Rails

130 130/223

131 B 131/223 I T M A N

132 132/223

133 133/223

134 134/223

135 135/223

136 136/223

137 137/223

138 138/223

139 139/223

140 140/223

141 141/223

142 142/223

143 143/223

144 Fontosabb programnyelvek 1. Assembly Gépi kódú programozást segítő nyelv A megírt program nehezen hordozható Ma már főleg az operációs rendszerek készítői, ill. a hardvergyártók programoznak ilyenben. Pascal Eredetileg a strukturált programozás tanulónyelvének szánták Továbbfejlesztett változata, a TURBO PASCAL a modulok, illetve ma már az OOP-t is támogatja A valós életben a C miatt nem tudott érvényesülni, illetve a DELPHI-ben él tovább 144/223

145 Fontosabb programnyelvek 2. C 145/223 Közép szintű nyelvként szokták emlegetni, mert egyesíti az assembly és a magas szintű nyelvek elemeit. Hatékony és könnyű programozni Kis terjedelmű nyelv: kevés utasítás Minden (fontos) géptípusra van C fordító -> hordozható nyelv Régen minden általánosat C-ben írtak, ma a helyét egyre jobban átveszi a C++, ami objektum orientált módszert (OOP) tesz lehetővé. Ahol megmarad, az a rendszerprogramozás.

146 Fontosabb programnyelvek 3. C++ A C nyelv objektum-orientált továbbfejlesztése Ma már a legtöbb géptípusra van C++ fordító is -> jól hordozható nyelv Napjainkban minden (általános) programot ebben írnak 146/223

147 Fontosabb programnyelvek /223

148 Fontosabb programnyelvek 4. Java Egy képzeletbeli (virtuális) Java-gép programnyelve Szintaktikája nagyon hasonlít a C++ -hoz A nyelv szabványos részét képezik a leggyakrabban kellő alapkönyvtárak,mint pl. a grafika, felhasználói felület, hálózat programozás, adatbázis-kezelés. Java nyelven lehet appleteket írni, amelyek beszúrhatók HTML oldalakba is Tökéletesen hordozható nyelv Az Internet-programozás fő nyelve. 148/223

149 Programnyelv Programozó kapcsolat Pascal C C++ Visual Basic JAVA Embert barátjáról, programozót kódjáról! 149/223

150 Témakörök A Neumann architektúra alapjai A szoftverfejlesztés alapjai Programtervezési módszerek Algoritmus alapfogalmak A strukturált programozás alapjai A programkészítés alapjai Alapalgoritmusok 150/223 Ellenőrző kérdések

151 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás 151/223

152 Összegzés Feladat: Adott egy számhalmaz, határozzuk meg a számok összegét Megoldás: Egy változó értékét beállítjuk 0-ra (kinullázzuk) Ciklus segítségével végigmegyünk a sorozat elemein, és a kinullázott változóhoz rendre hozzáadjuk a sorozat aktuális elemét. Az eredmény az eredetileg kinullázott változó aktuális értéke. 152/223

153 Összegzés Pszeudokód: Be: N ciklus i= 1.. N ismétel Be: A[ i ] ciklus vége Összeg = 0 ciklus i= 1.. N ismétel Összeg = Összeg + A[ i ] ciklus vége Ki: Összeg 153/223

154 Összegzés Struktogram: Be: n i = 1.. n Be: A [ i ] s = 0 i = 1.. n s = s + A[ i ] Ki: s Tömb elemszámának beolvasása Tömbelemek beolvasása Összeg változó (s) kinullázása Összegzés Eredmény kiírása 154/223

155 Összegzés 1 START Be: n n: elemek száma s = 0 i = 0 s: összeg i = 0 i: ciklusváltozó i= i /223 i= i + 1 Be: A[ i ] i < n Nem 1 Igen A: elemek tömbje s= s + A [ i ] Nem i < n Ki: s STOP Igen

156 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás 156/223

157 Megszámlálás Feladat: Adott egy számhalmaz, és egy feltétel. Határozzuk meg, hogy az adatok közül hány darab tesz eleget a feltételnek. Feltétel: a szám legyen kisebb 10-nél Megoldás: Kinullázunk egy változót. Ciklus segítségével végigmegyünk a tömb elemein. Megvizsgáljuk őket, és ha a tömbelem a feltételnek megfelel, a kinullázott változóhoz hozzáadunk egyet. Az eredmény az eredetileg kinullázott változó aktuális értéke. 157/

158 Megszámlálás Pszeudokód: Be: N ciklus i= 1.. N ismétel Be: A[ i ] ciklus vége S = 0 ciklus i=1.. N ismétel Ha A[ i ] < 10 akkor S = S+1; ciklus vége Ki: S 158/223 Struktogram: Igen Be: n i = 1.. n Be: A [ i ] db = 0 i = 1.. n A[i] < 10 db=db+1 Ki: db Nem

159 Megszámlálás START db: darabszám 1 db = 0 i = 0 Be: n i= i /223 i = 0 i= i + 1 Be: A[ i ] i < n Nem 1 Igen Nem A[i] < 10 db = db + 1 Nem i < n Igen Ki: db STOP Igen

160 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás 160/223

161 Kiválasztás Feladat: Adott egy számhalmaz, és egy feltétel. Határozzuk meg, hogy melyik adat tesz eleget leginkább a feltételnek. Feltétel: a legkisebb szám Megoldás: Egy változóba (MIN) berakjuk a tömb első elemének az értékét. Ezután a 2. elemtől kezdve egy ciklussal végignézzük a tömb elemeit, és ha a vizsgált elem kisebb a MINértékénél, akkor berakjuk az értékét a MIN-változóba, így a MIN-értéke az addig megvizsgált elemek közül mindig a legkisebbet tartalmazza. Eredmény: a MIN változó értéke. 161/223

162 Kiválasztás Pszeudokód: Be: N ciklus i= 1.. N ismétel Be: A[i] ciklus vége MIN = A[1] ciklus i= 2.. N ismétel Ha A[i] < MIN akkor MIN = A[i]; ciklus vége Ki: MIN 162/223 Struktogram: Be: n i < n Be: A [ i ] m = A [1] i = 2.. n Igen A[i] < m m=a [i] Ki: m Nem

163 Kiválasztás START m: legkisebb elem 1 m=a [1] i = 1 Be: n i = 0 i= i + 1 Nem i= i + 1 A[i] < m Igen m = A [i] 163/223 Be: A[ i ] i < n Nem 1 Igen Nem i < n Ki: m STOP Igen

164 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás 164/223

165 Kiválasztásos rendezés Feladat: Adott egy számhalmaz, és valamilyen rendezési szempont (rendezési kulcs). Rendezzük sorba az adatokat. Szempont: növekvő sorrend /223

166 Kiválasztásos rendezés Feladat: Adott egy tömb, rendezzük az elemeit növekvő sorrendbe. Módszer: Keressük ki a legkisebb elemet, és tegyük azt a tömb első helyére. Lépjünk egy hellyel odébb (második elem), és keressük ki a maradék elemek közül a legkisebbet. Tegyük ezt a második helyre. Lépjünk eggyel odébb, 166/223

167 Kiválasztásos rendezés Megoldás: Visszavezetjük a rendezést a kiválasztásra Két egymásba ágyazott ciklust alkalmazunk. A külső (I-változójú) azt vezérli, hogy hányadik helyre keressük a megfelelő adatot. A belső (J-változójú) a maradék elemek közül választja ki a megfelelőt. Ha csere szükséges, akkor azt egy segédváltozó (C) bevezetésével valósítjuk meg 167/223

168 Csere segédváltozó használatával Kiindulás: A B C lépés: C = A 2. lépés: A = B 3. lépés: B = C Végeredmény: /223

169 Kiválasztásos rendezés Kiindulás: 169/ Külső ciklus: i melyik helyre keressük a legkisebb elemet Belső ciklus: j végigmegy az i-től magasabb indexű elemeken i=1, j= j= Nincs csere Nincs csere j= Csere i=2, j= Csere j= Csere i=3, j= Csere Végeredmény:

170 Kiválasztásos rendezés Pszeudokód: Be: N c1-ciklus i= 1.. N ismétel Be: A[i] c1-vége ck-ciklus i=1.. N-1 ismétel cb-ciklus j= i+1.. N ismétel ha A[j] < A[i] akkor C:=A[i], A[i]:= A[ j], A[ j]:=c feltétel vége cb-vége ck-vége c2-ciklus i= 1.. N ismétel Ki: A[i] c2-vége 170/223 Struktogram: Be: n i = 1.. n Be: A [ i ] m = A [1] i = 1.. n-1 j = i+1.. n Igen c=a[i] A[i]=A[ j] A[ j]=c i = 1.. n A[ j]<a[i] Nem Ki: A [i]

171 Rendezés 171/223 START Be: n i = 0 i= i + 1 Be: A[ i ] i < n Nem 1 Igen Nem 1 i = 1 j = i + 1 c = A [i] A[i] = A[ j] A[ j] = c Nem Nem A[ j]<a[i] j < n i < n-1 2 Igen Igen Igen j = j+1 i = i+1 c: segédváltozó 2 i = 0 i= i + 1 Ki: A[ i ] i < n Nem STOP Igen

172 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás 172/223

173 Összefésülés Feladat: Adott két vagy több rendezett számhalmaz. Egyesítsük úgy az adatokat, hogy az eredmény halmaza is rendezett legyen /223

174 Összefésülés Két tömb elemeinek összefésülése növekvő sorrendben: 1-re beállítjuk két segédváltozó értékét, ezek jelzik, hogy a két kiinduló tömb hányadik elemét vizsgáljuk meg. Indítunk egy ciklust, melynek lépésszáma a két tömb elemszámának az összege, így tudunk majd mindkét kiinduló tömb elemein végigmenni. A ciklusban megállapítjuk, hogy a segédváltozók által jelzett tömbelemek közül melyik a kisebb, és ezt az elemet áttesszük az eredmény tömbbe, és amelyik kiinduló tömbből áttettük az elemet, annak a segédváltozóját megnöveljük 1-el. Eredmény az eredmény tömb. 174/223

175 Összefésülés Pszeudokód: Be: N ciklus i= 1.. N ismétel Be: A[i] ciklus vége Be: M ciklus i= 1.. M ismétel Be: B[i] ciklus vége 175/223 j= 1, k= 1 ciklus i= 1.. N+M ismétel ha A[ j] < B[k] akkor C[i] = A[ j] j= j+1 különben C[i] = B[k] k= k+1 feltétel vége ciklus vége ciklus i= 1.. N+M ismétel Ki: C[i] ciklus vége

176 Összefésülés 2 START 1 i = 0 j = 1 k = 1 Be: n Be: m i = 0 i = 0 i = i + 1 i= i + 1 Be: A[ i ] i= i + 1 Be: B[ i ] Igen C[i]=A[ j] j = j+1 A[ j]<b[k] Nem C[i]=B[k] k = k+1 Nem 176/223 i < n 1 Igen Nem i < m 2 Igen i < n+m Nem 3 Igen

177 Összefésülés 177/223 3 i = 0 i= i + 1 Ki: C[ i ] i < n+m Nem STOP Igen Be: n i = 1.. n Be: A [ i ] j = 1, k = 1 i = 1.. n+m A[ j]<b[k] Igen Be: m i = 1.. m C[i]=A[ j] j = j+1 Be: B [ i ] i = 1.. n+m Ki: C[ i ] Nem C[i]=B[k] k = k+1

178 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás 178/223

179 Szétválogatás Feladat: Adott egy számhalmaz, és egy (vagy több) feltétel. Válogassuk szét az adatokat a feltételnek megfelelően több halmazba Feltétel: páros és páratlan számok /223

180 Szétválogatás Páros vagy páratlan számok: 1-re beállítjuk két segédváltozó értékét, ezek jelzik, hogy a két eredmény tömb (páros, páratlan) hányadik helyére kerül a kiinduló tömb aktuálisan vizsgált eleme. Ciklus segítségével végigmegyünk a kiinduló tömbön. Ha az aktuális elem 2-vel elosztva 0 maradékot ad (páros), akkor a páros tömbbe, a segédváltozója által jelzett helyre rakjuk, és a segédváltozót növeljük 1-el. Ha a maradék 1, akkor a vizsgált elem a páratlan tömbbe kerül, és ennek segédváltozóját növeljük meg. Eredmény a két eredmény tömb. 180/223

181 Szétválogatás Be: N Pszeudokód: ciklus i= 1.. N ismétel Be: A[i] ciklus vége j= 1, k= 1 ciklus i= 1.. N ismétel ha A[i] mod 2 = 0 akkor B[ j] = A[i] j= j+1 különben C[k] = A[i] k= k+1 feltétel vége ciklus vége 181/223 ciklus i= 1.. j-1 ismétel Ki: B[i] ciklus vége ciklus i= 1.. k-1 ismétel Ki: C[i] ciklus vége

182 Szétválogatás START Be: n 1 i = 0 j = 1 k = 1 2 i = 0 i = 0 i= i + 1 Be: A[ i ] i < n Nem 182/223 1 Igen Igen B[ j]=a[ i] j = j+1 Nem i = i + 1 Nem A[i] mod 2=0 i < n 2 C[k]=A[ i] k = k+1 Igen i= i + 1 Ki: B[ i ] i < j-1 Nem 3 Igen

183 Szétválogatás 183/223 3 i = 0 i= i + 1 Ki: C[ i ] i < k-1 Nem STOP Igen Be: n i = 1.. n Be: A [ i ] j = 1, k = 1 i = 1.. n A[i] mod 2=0 Igen Nem B[ j]=a[i] j = j+1 i = 1.. j-1 Ki: B[ i ] i = 1.. k-1 Ki: C[ i ] C[k]=A[i] k = k+1

184 Műszaki informatika Ellenőrző kérdések 184/223

185 Ellenőrző kérdések Alapfogalmi kitérő kérdéssor IPA kérdéssor 185/223

186 Ellenőrző kérdések Melyik Neumann elv következménye a ciklus és az elágazás? A: Belső programvezérlés, B: Szekvenciális működés, C: Bináris tárolás, D: Univerzális, általános cél 2. A Neumann elvek szerint mi jellemzi a belső tárolót? A: Digitális B: Bináris C: Egy bájtos D: Szekvenciális 186/223

187 Ellenőrző kérdések A számítógép attól univerzális, hogy: A: többféle processzorral is működőképes. B: a hajlékonylemezek cserélhetők a meghajtóban. C: a szoftver cseréjével tetszőleges feladatra használható. D: bárhol használható, nincs helyhez kötve a kezelése. 4. Melyik egység feladata az éppen futó program tárolása? A: processzor. B: memória. C: merevlemez. D: hajlékonylemez. 187/223

188 Ellenőrző kérdések Melyik állítás igaz? A: 32 bit < 6 bájt B: 4 bit < 32 bájt C: 16 bit < 2 bájt D: 1 bit = 8 bájt 6. Melyik a legnagyobb ábrázolható szám bináris számrendszerben 4 biten? A: 7 B: 8 C: 15 D: /223

189 Ellenőrző kérdések Hány bájton ábrázolható a következő szöveg: számítógépasztal? A: 16 B: 8 C: 128 D: A számítógép matematikai műveletek elvégzésekor... számrendszerben számol. A: decimális B: hexadecimális C: bináris D: digitális 189/223

190 Ellenőrző kérdések A 8 bitből álló egységet... nevezzük. A: információnak B: utasításnak C: bájtnak D: jelnek 10. Mit jelent az bitsorozat? A: Egyértelműen egy karakter kódja. B: Egyértelműen egy szám kódja. C: Egyértelműen egy utasítás kódja. D: Lehet karakter, szám vagy utasítás kódja is, nem egyértelmű. 190/223

191 Ellenőrző kérdések Melyik állítás igaz? A bit A: 8 bájtból áll. B: ma már nem használatos mértékegység. C: az információ legkisebb egysége. D: 8 különböző értéket tárolhat. 12. Mennyi az értéke decimálisan az bináris számnak? A: 41 B: 21 C: 17 D: Melyik a kakukktojás? Karikázza be! 191/223 1, 8, 0, A, F, H, 7

192 Ellenőrző kérdések A számítógép elemi tevékenységként képes: A: számok összeadására, kivonására, osztására és szorzására, B: számok összeadására és összehasonlításra, C: számok összeadására, D: számok összeadására, kivonására, osztására és szorzására és összehasonlításra. 15. Tegye ki a megfelelő relációjelet a következő mennyiségek közé! 1,2 MB 1200 KB A: < B: = C: > 192/223

193 Ellenőrző kérdések Minek a rövidítése a HDD? A: Host Domain Determination B: High Data Drive C: Hyper Data Disk D: Hard Disk Drive 17. Mit takar a jelzés? A: RAM D: Protokoll B: CPU E: HDD C: Számítógép E: BIOS 193/223

194 Ellenőrző kérdések Mit jelent a CPU rövidítés? A: Central Power Unit B: Central Processing Unit C: Computer Processing Unit D: Computer Power Unit 19. Mennyi egy mai átlagos processzor órajele? A: 3 GHz B: 3 THz C: 3 MHz D: 3 Hz 194/223

195 Ellenőrző kérdések A Neumann-elvek kimondják, hogy az adatok és az utasítások: A: ugyanabban a tárban helyezkednek el, ennek neve ROM. B: ugyanabban a tárban helyezkednek el, ennek neve RAM. C: külön tárakban helyezkednek el, ez a ROM és a RAM. 21. Melyik rövidítés magyarázata: véletlen elérésű, írható-olvasható memória? A: RAM B: ROM C: CACHE D: virtuális memória 195/223

196 Ellenőrző kérdések Igaz vagy Hamis az állítás? 196/223 Az IC az Internet Computer rövidítése. A Neumann elvek az 1980-as évekből származnak. A program végrehajtását a központi vezérlő egység kezdeményezi. 23. Számozza be az egyes lépések sorrendjét. Kezdje a legkorábbival! Mentés Programírás Futtatás Algoritmus alkotás Fordítás

197 Ellenőrző kérdések Alapfogalmi kitérő kérdéssor IPA kérdéssor 197/223

198 Ellenőrző kérdések Írja a megfelelő betűt a megfelelő helyre! A: CU E: Input B: CPU F: Output C: ALU G: Tárolók D: Memória 198/223

199 Ellenőrző kérdések Melyik állítás igaz a compilerre? A: Egyszerre lefordítja az egész forrásprogramot B: Egyszerre a forrásprogram egyetlen utasítását fordítja és hajtja végre C: Kimenete minden esetben gépi kód D: A forrásnyelven megírt programot lefordítja és rögtön végrehajtja 3. Jelölje be az összes állítást, mely igaz a változóra! A: A változó egy memóriaterület, melynek változhat az értéke B: A változó logikailag tovább nem bontható, elemi egység C: A változót azonosítani kell D: A változónak meg kell adni a típusát 199/223

200 Ellenőrző kérdések Mit csinál a programszerkesztő (linker)? A: A linkerrel a forrásprogramot szerkeszthetjük meg B: A linker a külön lefordított tárgykódú modulokból kapcsolja össze a futtatható kódot. C: A linkerrel tárgykódú programot lehet írni D: A linkerrel végrehajtható kódot lehet írni 5. Tegye helyes sorrendbe a programfejlesztés lépéseit! 200/223 Dokumentálás Kódolás Algoritmus készítés Specifikáció készítés

201 Ellenőrző kérdések Jelölje be az összes helyes párosítást! A: Editor Programszerkesztő B: Bináris kód Gépi kód C: Fortran Magas szintű programnyelv D: Interpreter Fordító 7. Mi a szekvencia? Jelölje be az összes jó választ! A: Választás megadott tevékenységek között B: Megadott tevékenységek feltételtől függő, ismételt végrehajtása. C: Egymás után végrehajtandó tevékenységek sorozata D: Feltétel nélküli, időben egyszerre végrehajtandó tevékenységek 201/223

202 Ellenőrző kérdések Igaz vagy Hamis az állítás? 202/223 A linker ugyanaz, mint az editor. A memória tartalma a program futása közben nem változik. A fordító kiszűri a szemantikai hibákat. Az assembly alacsony szintű programozási nyelv. Egy algoritmusnak több kezdési pontja is lehet. Az assembly nyelv előnye, hogy gyorsabb és kisebb helyfoglalású program írható vele. Egy gépi kódú program csak gépi kódú utasításokat tartalmaz, adatokat nem. A fordítóprogram output-ja a forráskód. A magas szintű nyelv gépi kódja az assembly.

203 Ellenőrző kérdések Mit ír le az alábbi pszeudokód? 10. Mi jellemzi a szoftver minőségét? Jelölje be az összes jó választ! A: Program mérete B: Szabványosság C: Felhasználóbarátság D: Hibatűrés 203/223 Ha feltétel, akkor utasítás Elágazás vége A: Szekvenciát B: Egyágú szelekciót C: Elöltesztelő ciklust D: Növekményes ciklust

204 Ellenőrző kérdések Igaz vagy Hamis az állítás? A hátultesztelő ciklusra jellemző, hogy a ciklusmag egyszer mindenképpen végrehajtódik. A strukturált algoritmusra nem jellemző a többágú szelekció alkalmazása. Az algoritmus minden lépésének egyértelműen végrehajthatónak kell lennie. A folyamatábra az algoritmus leírására szolgáló, mondatszerű elemekből felépülő jelölésrendszer. A pszeudokód egy programozási nyelv. Az algoritmus egy adott tevékenység ismételt végrehajtása, mely a feladat megoldását célozza. 204/223

205 Ellenőrző kérdések Beolvasáskor az a változó 4-es értéket kap. Kövesse a folyamatábrát! Mit ír ki az algoritmus? A: 15, 7 B: 7, 14 C: 5, 15 D: 21, 14 E: 5, 19 F: 6, 19 G: 12, 17 H: 20, /223 START s=3 be: a Igen a < 5 Nem s= s+3 a= a+1 s= s+a s < 12 Igen Nem ki: a, s STOP

206 Ellenőrző kérdések Mikor jelent meg az első magas szintű programnyelv? A: 1944 B: 1954 C: 1964 D: Kinek a nevéhez kötődik a strukturált programozás alaptétele? A: Bill Gates B: Neumann János C: Böhm-Jacopini D: Dijsktra 206/223

207 Ellenőrző kérdések Értékelje ki a kifejezéseket! 3+5*2-6*2/3 4*(5-3)/2 6/3*2+4/2*3 5+6*2-3*(7-2)*2 16. Igaz vagy Hamis az állítás? (2 > 3 or 5 <= 4) (5 = 3 and 3 > 2) (4 < 6 and 5 < 4 xor 3 < 5) (not(3 = 5) or 6 > 3 and 2 < 3) 207/223

208 Ellenőrző kérdések Melyik programozási módszer alkalmazza az öröklődés lehetőségét? A: Moduláris programozás B: Gépi kódú programozás C: Strukturált programozás D: Objektum-orientált programozás 18. Melyik adatszerkezet valósítja meg a FIFO elvet? A: Sor B: Verem C: Struktúra D: Állomány 208/223

209 Ellenőrző kérdések Melyik adatszerkezeten értelmezhető az & és a * művelet? A: String B: Tömb C: Struktura D: Mutató 20. Írja be a megfelelő fogalom betűjelét! 209/223 Különböző típusú elemek halmaza Egyforma típusú elemek halmaza Adatok és metódusok halmaza A: Objektum B: Tömb C: Rekord

210 Ellenőrző kérdések Melyik logikai operátor felelhet meg a kissé hiányosan kitöltött igazságtáblázatnak? A: AND B: OR C: XOR D: Mindegyik E: Egyik sem 22. Mi a helyes viszonya az alábbi fogalmaknak? A: Algoritmus < Alkalmazás < Program B: Algoritmus < Program < Alkalmazás C: Alkalmazás < Program < Algoritmus D: Alkalmazás < Algoritmus < Program 210/223 A B A??? B Igaz Igaz Igaz Hamis Igaz Hamis Igaz Igaz Hamis Hamis

211 Ellenőrző kérdések Melyik logikai operátor felelhet meg a kissé hiányosan kitöltött igazságtáblázatnak? A: AND B: OR C: XOR D: Mindegyik E: Egyik sem 24. A változó (melyik igaz?) 211/223 A B A??? B Igaz Igaz Igaz Hamis Hamis Hamis Igaz Hamis Hamis Hamis A: a memória egy adott helyére mutató programelem. B: egymáshoz tartozó adatok elnevezése. C: értéket képviselő programelem. D: névvel ellátott tároló hely a számítógép memóriájában.

212 Ellenőrző kérdések Alakítson ki két kategóriát, nevezze el azokat, és sorolja az alábbi típusokat az egyes kategóriákba! Kategóriák: Típusok: A: Int E: Real B: Állomány F: String C: Rekord G: Tömb D: Long H: Double 212/223

213 Ellenőrző kérdések Jelölje meg azokat a fogalmakat, amelyek a következő meghatározáshoz kapcsolódnak! Azt az elemet vehetjük ki legelőször, amelyiket utoljára tettük be. A: FIFO B: LIFO C: Sor D: Verem 27. Melyik ciklust kell alkalmazni a következő feladat megoldására: 213/223 Addig kell beolvasni számokat, még a számok kisebbek egy megadott értéknél! A: Elöltesztelő ciklus B: Hátultesztelő ciklus C: Számláló ciklus

214 Ellenőrző kérdések Ábrát rajzolunk programmal. Az E betű 1 egységnyi rajzolást jelent, a B betű balrafordulást (rajzolás nélkül), a J betű jobbra fordulást (rajzolás nélkül). A legelső E betű hatására mindig balról jobbra haladva rajzolódik egy egységnyi vonal. Egy kis minta ábra, és programja: A: Mit rajzol ki a következő program: EBEEJE? B: Mit rajzol ki a következő program: EBEJEJEBE? C: Írja meg az egységnyi oldalú négyzet megrajzolásához szükséges programot! 214/223 EBEBBEE

215 Ellenőrző kérdések Egészítse ki a következő mondatokat! 215/223 A logikai IGAZ értéket 0-val, a logikai HAMIS értéket... jelöljük. Ha egy reláció teljesül akkor logikai értéke..., ha nem teljesül akkor... lesz. A logikai ÉS művelet eredménye csak akkor egy, ha... komponens értéke egy. A logikai VAGY művelet eredménye csak akkor nulla, ha... komponens értéke nulla. A logikai ÉS művelet eredménye..., ha egy komponens értéke HAMIS. A logikai VAGY művelet eredménye..., ha egy komponens értéke IGAZ.

216 Ellenőrző kérdések Egészítse ki a következő mondatokat! Értékadáskor mindig a oldal kapja meg a oldalon álló kifejezés értékét. Ha egy kifejezés több operátort is tartalmaz, akkor a kiértékelésük sorrendjét a határozzák meg. A. szereplő operátorok a teljes kifejezés kiértékelése szempontjából nem számítanak, mert azok külön értékelődnek ki. A különböző.. operátorok esetén mindig a.. hajtódik végre először, ha ez azonos, a. dönt. 216/223

217 Ellenőrző kérdések Kövesse a struktogramot! Mit ír ki az algoritmus? A: 11 B: 13 C: 15 D: 21 E: 23 F: 24 G: 26 H: 30 s = 4, n = 5 i = 1.. n Igen s < 10 Nem s=s+n s=s+i Ki: s 217/223

218 Ellenőrző kérdések Igaz vagy Hamis az állítás? 218/223 Az Assembly magas szintű programnyelv. Alacsony szintű programnyelven könnyebb programozni. A szemantika a programozás nyelvtani szabályrendszere. A szemantikai hibákat kijelzi a fordítóprogram. A forráskódot compilerrel fordítjuk le gépi kódra. Létezik végtelen számú lépésből álló algoritmus. A kinullázás egy változónak nulla érték adását jelenti. A pszeudokód egy téglalap alakú ábra egy algoritmus leírására.

219 Ellenőrző kérdések Adott egy tömb, elemei: [ -5, 9, 6, -3, -7, 1 ] Mely algoritmus adja a legnagyobb értéket eredményül, a tömbön lefuttatva? A: Összegzés B: Megszámlálás (5-nél nagyobb elemek) C: Kiválasztás (legnagyobb elem) 34. Mely önálló elemekből épül fel egy folyamatábra? A: Adatbevitel D: Adatkivitel B: Szelekció E: Kezdőpont, végpont C: Művelet F: Iteráció 219/223

220 Ellenőrző kérdések Írja a vonalak fölé a megfelelő fogalmakat!? Programnév.c 36. Jelölje be az összes helyes párosítást! A: Editor Programszerkesztő B: Bináris kód Gépi kód C: Fortran Magas szintű programnyelv D: Interpreter Fordító 220/223

221 Ellenőrző kérdések Alakítson ki két kategóriát, és sorolja az alábbi tesztelési megállapításokat az egyes kategóriákba! Kategóriák: Megállapítások: A: A program lassú B: Nehéz kezelni a programot C: A program hibás eredményt ad D: Zavaró az ablakok színösszeállítása E: Hiányzik a nyomtatás funkció F: Nem lehet kiválasztani a szükséges adatot G: A rendezés menü nem működik 221/223

222 Felhasznált irodalom Knuth, D.E: A számítógép-programozás művészete 1-3, Műszaki Könyvkiadó, Budapest, Brian W. Kernighan Dennis M. Ritchie: A C programozási nyelv, Műszaki Könyvkiadó, 1988 Wirth, N: Algoritmusok + Adatstruktúrák = Programok, Műszaki Könyvkiadó, Budapest, 1982 Benkő László Benkő Tiborné Tóth Bertalan: Programozzunk C nyelven, Computerbooks, 2008 Elek Tibor: A C programozási nyelv, elektronikus jegyzet Ficsor Lajos: Bevezetés a C programozási nyelvbe, elektronikus jegyzet 222/223

223 VÉGE V É G E 223/223

Programozás alapjai Bevezetés

Programozás alapjai Bevezetés Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma

Részletesebben

Adatbázis rendszerek Gy: Algoritmusok C-ben

Adatbázis rendszerek Gy: Algoritmusok C-ben Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés

Részletesebben

B I T M A N B I v: T M A N

B I T M A N B I v: T M A N Műszaki informatika IPA Tesztek+Megoldások B I v: T 2014.02.15 M A N 1/41 Ellenőrző kérdések Alapfogalmi kitérő kérdéssor IPA kérdéssor 2/41 Ellenőrző kérdések 1. 1. Melyik Neumann elv következménye a

Részletesebben

Programozás alapjai (ANSI C)

Programozás alapjai (ANSI C) Programozás alapjai (ANSI C) 1. Előadás vázlat A számítógép és programozása Dr. Baksáné dr. Varga Erika adjunktus Miskolci Egyetem, Informatikai Intézet Általános Informatikai Intézeti Tanszék www.iit.uni-miskolc.hu

Részletesebben

Információs technológiák 4. Ea: A lélek. A csak szidható kézzelfoghatatlan

Információs technológiák 4. Ea: A lélek. A csak szidható kézzelfoghatatlan Információs technológiák 4. Ea: A lélek A csak szidható kézzelfoghatatlan 226/1 B ITv: MAN 2015.09.08 Témakörök Szoftver alapok Operációs rendszerek Felhasználói programok Segédprogramok Programfejlesztő

Részletesebben

Informatika érettségi vizsga

Informatika érettségi vizsga Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

Algoritmusok. Dr. Iványi Péter

Algoritmusok. Dr. Iványi Péter Algoritmusok Dr. Iványi Péter Egyik legrégebbi algoritmus i.e. IV század, Alexandria, Euklidész két természetes szám legnagyobb közös osztójának meghatározása Tegyük fel, hogy a és b pozitív egész számok

Részletesebben

Számítógép architektúra

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

B I T M A N B I v: T M A N

B I T M A N B I v: T M A N Műszaki informatika Tesztek+Megoldások B I v: T 2015.04.19 M A N 1/42 Tesztek + Megoldások Alapfogalmi kitérő kérdéssor IPA kérdéssor CPA kérdéssor 2/42 Ellenőrző kérdések 1. 1. Melyik Neumann elv következménye

Részletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

Az algoritmusok alapelemei

Az algoritmusok alapelemei Az algoritmusok alapelemei Változók Olyan programozási eszközök, amelynek négy komponense van: - Név - Egyedi azonosító, a program szövegében a változó mindig a nevével jelenik meg, ez hordozza a komponenseket.

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

Számítógépek felépítése, alapfogalmak

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r

Részletesebben

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

Programozási nyelvek 6. előadás

Programozási nyelvek 6. előadás Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

Részletesebben

IT - Alapismeretek. Megoldások

IT - Alapismeretek. Megoldások IT - Alapismeretek Megoldások 1. Az első négyműveletes számológépet Leibniz és Schickard készítette. A tárolt program elve Neumann János nevéhez fűződik. Az első generációs számítógépek működése a/az

Részletesebben

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez Pásztor Attila Algoritmizálás és programozás tankönyv az emeltszintű érettségihez 3. ADATTÍPUSOK...26 3.1. AZ ADATOK LEGFONTOSABB JELLEMZŐI:...26 3.2. ELEMI ADATTÍPUSOK...27 3.3. ÖSSZETETT ADATTÍPUSOK...28

Részletesebben

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti

Részletesebben

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

sallang avagy Fordítótervezés dióhéjban Sallai Gyula sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?

Részletesebben

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10. Programozás I. 1. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. szeptember 10. Sergyán (OE NIK) Programozás I. 2012. szeptember 10. 1 /

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char

Részletesebben

Adatbázis és szoftverfejlesztés elmélet

Adatbázis és szoftverfejlesztés elmélet Adatbázis és szoftverfejlesztés elmélet Témakör 4. Összefoglalás 1. A kódolás eszközei Általános szövegszerkesztő Programozói szövegszerkesztő Fejlesztői környezet Vizuális fejlesztői környezet Általános

Részletesebben

TANMENET 2018/2019. tanév

TANMENET 2018/2019. tanév Szolnoki Műszaki Szakképzési Centrum Pálfy-Vízügyi Szakgimnáziuma 5000 Szolnok, Tiszaparti sétány 2-3. Tel:06-56-424-955, Fax: 06-56-513-925 e-mail cím: titkarsag@palfy-vizugyi.hu TANMENET 2018/2019. tanév

Részletesebben

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Programozási nyelvek a közoktatásban alapfogalmak I. előadás Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)

Részletesebben

Bevezetés a programozásba

Bevezetés a programozásba Bevezetés a programozásba 1. Előadás Bevezetés, kifejezések http://digitus.itk.ppke.hu/~flugi/ Egyre precízebb A programozás természete Hozzál krumplit! Hozzál egy kiló krumplit! Hozzál egy kiló krumplit

Részletesebben

IT - Alapismeretek. Feladatgyűjtemény

IT - Alapismeretek. Feladatgyűjtemény IT - Alapismeretek Feladatgyűjtemény Feladatok PowerPoint 2000 1. FELADAT TÖRTÉNETI ÁTTEKINTÉS Pótolja a hiányzó neveket, kifejezéseket! Az első négyműveletes számológépet... készítette. A tárolt program

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A

Részletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Javascript Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák) 1. tétel A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei Ismertesse a kommunikáció általános modelljét! Mutassa be egy példán a kommunikációs

Részletesebben

4. Programozási nyelvek osztályozása. Amatőr és professzionális

4. Programozási nyelvek osztályozása. Amatőr és professzionális 4. Programozási nyelvek osztályozása. Amatőr és professzionális programozási nyelvek. Számítási modellek (Neumann-elvű, automataelvű, funkcionális, logikai). Programozási nyelvekkel kapcsolatos fogalmak

Részletesebben

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés . Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve

Részletesebben

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

Fordítóprogramok. Aszalós László. 2009. szeptember 7.

Fordítóprogramok. Aszalós László. 2009. szeptember 7. Fordítóprogramok Aszalós László 2009. szeptember 7. 1. Bemelegítés Honlap: www.inf.unideb.hu/ aszalos/diak.html (Fordítóprogramok, 2009) Jegymegajánló: utolsó hét előadásán. PótZH (csak gyakorlat) vizsgaidőszak

Részletesebben

Programozás alapjai. 5. előadás

Programozás alapjai. 5. előadás 5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk

Részletesebben

Számítógép felépítése

Számítógép felépítése Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége

Részletesebben

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Adatbázis-kezelő rendszerek. dr. Siki Zoltán Adatbázis-kezelő rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati

Részletesebben

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_01-1 - E jegyzet másolata

Részletesebben

Széchenyi István Szakképző Iskola

Széchenyi István Szakképző Iskola A SZAKKÖZÉPISKOLAI SZAKMACSOPORTOS ALAPOZÓ OKTATÁS EMELT SZINTŰ ISKOLAI PROGRAMJA 11-12. évolyam Érvényes a 2003-2004-es tanévtől felmenő rendszerben Átdolgozva, utolsó módosítás: 2004. április 26. Az

Részletesebben

1. Jelölje meg az összes igaz állítást a következők közül!

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan

Részletesebben

Adatszerkezetek 1. Dr. Iványi Péter

Adatszerkezetek 1. Dr. Iványi Péter Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán

Részletesebben

AZ ALGORITMUS. az eredményt szolgáltatja

AZ ALGORITMUS. az eredményt szolgáltatja ALGORITMUSOK AZ ALGORITMUS Az algoritmus problémamegoldásra szolgáló elemi lépések olyan sorozata, amely a következő jellemzőkkel bír: Véges: véges számú lépés után befejeződik, és eredményt szolgáltat

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10. Programozás I. 1. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. szeptember 10. Sergyán (OE NIK) Programozás I. 2012. szeptember 10. 1 /

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA A témakörök előtt lévő számok az informatika tantárgy részletes vizsgakövetelménye és a vizsga leírása dokumentumban szereplő témaköröket jelölik. KÖVETELMÉNYEK 1.1. A kommunikáció 1.1.1. A kommunikáció

Részletesebben

A számítógép egységei

A számítógép egységei A számítógép egységei A számítógépes rendszer két alapvető részből áll: Hardver (a fizikai eszközök összessége) Szoftver (a fizikai eszközöket működtető programok összessége) 1.) Hardver a) Alaplap: Kommunikációt

Részletesebben

Információtartalom vázlata

Információtartalom vázlata 1. Az Ön cégétől árajánlatot kértek egy üzleti portál fejlesztésére, amelynek célja egy online áruház kialakítása. Az árajánlatkérés megválaszolásához munkaértekezletet tartanak, ahol Önnek egy vázlatos

Részletesebben

Informatika tanítási módszerek

Informatika tanítási módszerek Informatika tanítási módszerek Programozás tanítási módszerek módszeres, algoritmusorientált; adatorientált; specifikációorientált; feladattípus-orientált; nyelvorientált; utasításorientált; matematikaorientált;

Részletesebben

Számítógépek felépítése, alapfogalmak

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van

Részletesebben

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

Részletesebben

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

Részletesebben

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép

Részletesebben

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

Algoritmizálás, adatmodellezés 1. előadás

Algoritmizálás, adatmodellezés 1. előadás Algoritmizálás, adatmodellezés 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az induló élből

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott. Szigorlati témakörök az Informatika (szigorlat) (BMEVIAU0181) c. tantárgyat felváltó Informatika (BMEGERIEEIS) tantárgyból az okleveles energetikai mérnökképzés (2N-0E) hallgatói számára 1. tantárgy: Programozás

Részletesebben

Algoritmusok, adatszerkezetek, objektumok

Algoritmusok, adatszerkezetek, objektumok Algoritmusok, adatszerkezetek, objektumok 1. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 14. Sergyán (OE NIK) AAO 01 2011.

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Az informatika kulcsfogalmai

Az informatika kulcsfogalmai Az informatika kulcsfogalmai Kulcsfogalmak Melyek azok a fogalmak, amelyek nagyon sok más fogalommal kapcsolatba hozhatók? Melyek azok a fogalmak, amelyek más-más környezetben újra és újra megjelennek?

Részletesebben

Programozási nyelvek (ADA)

Programozási nyelvek (ADA) Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)

Részletesebben

Programtervezés. Dr. Iványi Péter

Programtervezés. Dr. Iványi Péter Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű

Részletesebben

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama 10. évfolyam: 105 óra 11. évfolyam: 140 óra 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra 36 óra OOP 14 óra Programozási

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

Számítógépek felépítése

Számítógépek felépítése Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák

Részletesebben

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407) Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407) 1 Előadás Bevezetés az informatikába Adatszerkezetek Algoritmusok, programozási technológiák Számítástudomány alapjai

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Eljárások és függvények

Eljárások és függvények Eljárások és függvények Jegyzet Összeállította: Faludi Anita 2012. Bevezetés Ez a jegyzet elsősorban azoknak a diákoknak készült, akiket tanítok, ezért a jegyzet erőteljesen hiányos. Az olvasó egy percig

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Bevezetés. Dr. Iványi Péter

Bevezetés. Dr. Iványi Péter Bevezetés Dr. Iványi Péter Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza.

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Programozás alapjai 2.Gy: A C nyelv alapjai P R O Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:

Részletesebben

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG 1 A fenti

Részletesebben