12 Programtervezés szek (while do ciklusok). Mint látható, ebbõl a szemléletbõl a goto utasítás teljesen hiányzik, ennek használata kerülendõ. Ebben a

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

Download "12 Programtervezés szek (while do ciklusok). Mint látható, ebbõl a szemléletbõl a goto utasítás teljesen hiányzik, ennek használata kerülendõ. Ebben a"

Átírás

1 2. fejezet Strukturált programozás 2.1. Bevezetés A strukturált programozás jelenti valamennyi ma használatos programtervezési módszer alapját. Ebben a fejezetben a strukturált programozással kapcsolatos alapokat és gyakorlati kérdéseket tekintjük át. Olyan kérdésekre akarunk válaszolni, mint például hogy mi a strukturált programozás lényege? Mi a szerepe a goto parancsnak? Miért érdemes bizonyos vezérlési szerkezeteket gyakrabban használni? A strukturált programozás ma már szerves része valamennyi programtervezési módszernek. Napjainkban már széles körben elfogadott az a nézet, hogy a strukturált programozás a programfejlesztés nemcsak hasznos, hanem gyakorlatilag egyetlen lehetséges módja. Ugyanakkor nem volt ez mindig ennyire egyértelmû. Nem is oly régen heves vita folyt arról, hogy használható-e valamire ez a megközelítési mód, és hogy egyáltalán jó ötlet volt-e felvetni a használatát. A strukturált programozás egyik alapelve szerint a programok összesen háromféle építõelembõl állnak össze: vannak utasítássorok (ezek tagjait a végrehajtás sorrendjében adjuk meg), vannak döntési szerkezetek (if then else szerkezetek) és vannak ismétlõdõ ré-

2 12 Programtervezés szek (while do ciklusok). Mint látható, ebbõl a szemléletbõl a goto utasítás teljesen hiányzik, ennek használata kerülendõ. Ebben a fejezetben hamarosan megvizsgáljuk majd a goto mellett és ellen szóló érveket. Már itt elárulhatjuk a végeredményt: a goto utasítás tulajdonképpen szükségtelen. A lényeg az, hogy a programnak jól átgondolt szerkezete legyen. A késõbbiekben megvizsgáljuk a strukturált programozás alapelemeit. Érintünk ezen kívül néhány kiegészítõ kérdést is. Ha a strukturált programozás három építõelemét folyamatábrán szemléltetjük (2.1. ábra), rögtön nyilvánvalóvá válik ennek a tervezési módszernek néhány alapvetõ tulajdonsága: 1. Minden építõelemnek csak egy belépési pontja van. 2. Egyetlen programelem sem tartalmaz háromnál több alapelemet. Ha a három alapelemet úgy ábrázoljuk, ahogyan a gyakorlatban használjuk õket, egy harmadik alaptulajdonság is felismerhetõvé válik: 3. A belépési pont a program elején, a kilépési pont pedig a végén található. 2.1 ábra De miért is olyan fontosak ezek a tulajdonságok? Miért zárjuk ki más, egyébként ugyanilyen tulajdonságokkal rendelkezõ szerkezetek (2.2. ábra) használhatóságát? Ebben a fejezetben ezekre a kérdésekre fogunk választ adni.

3 Strukturált programozás ábra 2.2. Miért ne használjuk a goto parancsot? A goto parancs használata fölösleges A Bohm és Jacopini (1966) által bebizonyított tétel szerint a goto parancs segítségével megírt bármely program megírható pusztán a strukturált programozás alapelemeinek használatával is. Az így átalakított programban valószínûleg szükség lesz néhány új, a döntési szerkezetekben címkeként vagy jelzõként használatos változó bevezetésére. Valójában az ilyen programok néha kissé mesterkéltnek tûnhetnek, de maga az átalakítás mindig elvégezhetõ. Ennek megfelelõen pusztán elvi síkon nincs szükség arra, hogy bármely programunkban a goto parancsot használjuk. Érdemes talán még megjegyezni, hogy a fent említett tétel arra nézve semmit sem állít, hogy a strukturálatlan programot miként alakítsuk strukturálttá. Csupán azt mutatja meg, hogy ez az átalakítás elvégezhetõ. Kísérleti tapasztalatok A strukturált programozás mint tervezési és megvalósítási módszer jól megalapozott, és általánosan elfogadott. Ezek alapján logikusnak

4 14 Programtervezés tûnhet az a feltételezés, hogy a gyakorlat immár egyértelmûen bebizonyította a módszer használhatóságát. Ez azonban nem igaz. Gyakorlatilag egyáltalán nem léteznek valós problémák megoldásán alapuló bizonyítékok a strukturált programozás mellett. Ennek pedig javarészt az az oka, hogy egy ilyen kísérlet végrehajtása igen körülményes és drága lenne. Kétszer kellene megíratni egy nagy programrendszert programozók két csoportjával. Egyszer végig a strukturált programozás alapelveit kellene használni, egyszer pedig a strukturálatlan elveket. Természetesen mindkét munkafolyamatnak megfelelõ központi irányítással kellene rendelkeznie. Ezek után a két elkészült programot össze kellene hasonlítani bizonyos gyakorlati szempontok alapján. Ilyen szempont lehetne a program megírására fordított idõ, vagy a felfedezett hibák száma. Sajnálatos módon egyetlen ilyen összehasonlítás sem készült a mai napig. Ugyanakkor léteznek olyan, kisebb feladatokkal kapcsolatos összehasonlító tanulmányok, amelyek során azt vizsgálták, hogy a témában járatos programozók mennyire könnyen értenek meg egy forráskódot, ha az strukturált vagy ha strukturálatlan. Egy csoport minden tagjának megmutatták egy strukturált program forráskódját, majd a programozóknak olyan kérdésekre kellet válaszolniuk, amelyek alapján felmérhetõ volt, milyen mélységig látták át a program szerkezetét. Mérték mind a válaszok pontosságát, mind a válaszadáshoz szükséges idõt. Ez a két alapvetõ jellemzõ azt mutatja meg, hogy az adott programot egy programozó mennyire gyorsan tudja karbantartani, vagy mennyire könnyû a kód nyomkövetése. Egy másik csoport tagjai ugyanennek a programnak a strukturálatlan átiratát kapták meg. Végül összehasonlították a két csoport válaszidõit, illetve a válaszok pontosságát. Valamennyi ilyen vizsgálat azt bizonyította, hogy a strukturált programok sokkal jobban idomulnak az említett gyakorlatias igényekhez. A fejezet végén felsoroltuk azon szakcikkek bibliográfiai adatait, amelyek e téma áttekintésével foglalkoztak. Egy ilyen, 1984-ben megjelent áttekintõ cikkben jóval azután, hogy a strukturált programozás körüli csaták zaja elcsendesedett Vessey és Weber arra a következtetésre jutott, hogy a strukturált programozás használhatóságát alátámasztó érvek meglehetõsen gyengék. Ennek a velõs megállapításnak hátterében leginkább az áll, hogy nehéz valóban megbízható kísérleteket tervezni és végrehajtani.

5 Strukturált programozás 15 Világos írásmód és kifejezõerõ Hasonlítsuk össze a következõ, egymásnak mindenben megfelelõ programrészleteket: label: while a > 0 do if a > 0 goto label endwhile Ha az elsõ kódot felülrõl lefelé haladva olvassuk, nem világos azonnal, hogy mi a szerepe a label nevû címkének és a goto parancsnak. Egy valós helyzetben valószínûleg eltart majd egy ideig, mire rájövünk, hogy ezek tulajdonképpen egy ismétlõdõ kódrészlet megvalósítására szolgálnak. Ugyanez a második program while parancsát olvasva azonnal nyilvánvaló. És ami még ennél is rosszabb, az elsõ esetben soha nem lehetünk teljesen biztosak benne, hogy nincs valahol a programban még egy goto parancs, ami ugyanerre a címkére ugrik. Egy programozási nyelv elemeinek lehetõvé kell tenniük, hogy a programozó világos módon írhassa le, amit meg akar valósítani. Ha megvizsgálunk egy goto parancsokat is tartalmazó programot, rendszerint azt fogjuk tapasztalni, hogy a goto több, egymástól teljesen különbözõ cél megvalósítására is használható. Lássunk ezek közül néhányat: Kikerülhetünk vele egy kódrészletet (amit más körülmények között kell végrehajtani). Megvalósíthatunk vele ismétlõdést. Kiléphetünk vele egy ciklusból. Meghívhatunk vele egy megosztott kódrészletet. Ha egy kódban látunk egy goto parancsot, a környezete általában meglehetõsen kevés információt szolgáltat arról, mi is volt vele a programozó szándéka. A megoldás természetesen az, ha minden

6 16 Programtervezés helyzetben a megfelelõ egyedi és egyértelmû nyelvi elemet használjuk. A fenti felsorolásnak megfelelõ sorrendben ezek az egyedi elemek a következõk: if then else while do vagy repeat until exit eljáráshívás A goto parancs tehát olyan, mint egy egészen egyszerû gépi parancs például egy adott regiszter feltöltésére szolgáló gépi utasítás, ami számos egészen különbözõ helyzetben használható, de egyik esetben sem derül ki egyértelmûen a használat célja. Összefoglalva tehát a goto-nak kicsi a kifejezõereje, így nehéz megérteni az olyan programok belsõ logikáját, amelyek erre támaszkodnak. Ha olvasunk egy forráskódot, és olyan utasításokat látunk, mint a while vagy az if, akkor egészen határozott elképzelésünk van az adott helyzetrõl. Ha egy goto-t látunk, legfeljebb találgatni tudunk. Hány ceruza? Tegyük fel, hogy meg akarjuk érteni egy program mûködését, ezért az elejétõl kezdve elkezdjük úgy olvasni, ahogy a számítógép teszi, és gondolatban végrehajtjuk az utasításokat. Tegyük fel továbbá, hogy van néhány ceruzánk (vagy ujjunk), amelyek segítségünkre lehetnek a dolgok követésében. A ceruzákat jelzõként fogjuk elhelyezni a kódszöveg azon pontjain, amelyek valamiért érdekesek lehetnek. Ha egy egyszerû utasítássort hajtunk végre, mindössze egy ceruzára lesz szükségünk ahhoz, hogy mindig pontosan tudjuk, hol tartunk. Ha belefutunk egy eljáráshívásba, már két ceruza kell. Az egyiket a meghívás helyén kell hagynunk, hogy tudjuk, hová kell majd visszatérni, a másikkal pedig az eljárás utasításait fogjuk követni. Ha egy while vagy for utasítást látunk, szükségünk lesz egy számlálóra is, amellyel azt tartjuk számon, hogy hányszor hajtottuk végre a ciklusmagot.

7 Strukturált programozás 17 Összefoglalva tehát, ha strukturált programmal van dolgunk, akkor kell: 1. egy ceruza az aktuális hely számontartása végett; 2. egy-egy ceruza minden olyan eljáráshíváshoz, amelybõl a végrehajtás még nem tért vissza; 3. egy-egy számláló minden egyes még be nem fejezett ciklushoz. Ez így elsõre meglehetõsen sok kiegészítõ felszerelésnek tûnhet, de gondoljuk csak meg, mi történne, ha mindezt goto parancsokkal valósítanánk meg. Akárcsak az elõbb, ekkor is szükségünk lenne egy ceruzára az aktuális utasítás nyilvántartásához. Szükségünk lenne aztán minden egyes végrehajtott goto parancs jelzésére. Míg azonban a strukturált programok esetében elvehetünk egy ceruzát, valahányszor visszatértünk egy eljárásból vagy befejeztünk egy ciklust, illetve döntési szerkezetet, most a ceruzák száma soha nem csökken, sõt egyre többre lesz szükség. A ceruzák növekvõ száma pedig egyértelmûen jelzi a goto paranccsal megvalósított szerkezetek összetettségét. Az igazi probléma akkor válik nyilvánvalóvá, ha megpróbálunk visszaemlékezni arra, hol jártunk, mielõtt egy adott ponthoz érkeztünk. Ha nincs goto parancs, akkor egyszerûen visszalapozunk a kódszövegben. A strukturálatlan program esetében csak addig lehetünk magabiztosak, amíg a visszagörgetés során el nem érkezünk az elsõ címkéhez. Itt ugyanis semmilyen módon nem fogjuk tudni megállapítani, honnan és hogyan kerültünk a program kérdéses pontjára. Az olvasás megkönnyítése (statikus és dinamikus szerkezetek) Mi itt a mûvelt Nyugaton alaposan hozzászoktunk ahhoz, hogy az írott szövegeket balról jobbra és felülrõl lefelé haladva olvassuk. Ennek megfelelõen nagyon kényelmetlennek és természetellenesnek érezzük, ha egy kódszöveget elõbb felülrõl lefelé kell olvasni, majd idõnként visszaugrani benne. Sokkal egyszerûbb a dolgokat mindig a megadás sorrendjében olvasni. Ez pedig éppen a strukturált programok egyik nagy elõnye. Ezeket mindig végig lehet olvasni felülrõl

8 18 Programtervezés lefelé haladva, feltéve persze, hogy nem tartalmaznak eljáráshívásokat. Az egyetlen kivétel a while ciklus, ahol az ismétlõdõ kódrészlet elején található ciklusfeltételt minden végrehajtás után meg kell vizsgálnunk. A programok mûködése szükségszerûen dinamikus, hiszen valamennyien egy-egy kívülrõl szabályozott folyamatnak tekinthetõk, a program forráskódja azonban statikus szöveg. Ha meg akarjuk könnyíteni a kód megértését, e két ellentétes dolog között kell valahogyan összhangot teremtenünk. A statikus szövegnek szerkezetével tükröznie kell az általa leírt folyamatokat. A strukturált programok esetében a részfolyamatok sorrendje közelítõleg mindig megfelel a programsorok írási sorrendjének, ami lehetõvé teszi, hogy a kódot felülrõl lefelé, vagyis a lehetõ legtermészetesebb módon olvassuk. A programok helyességének bizonyítása Bebizonyítani azt, hogy formailag valamennyi programunk helyes, a ma technikájával egyszerûen lehetetlen. Ugyanakkor van néhány olyan dolog, ami nem árt tudni a programok helyességének bizonyításával kapcsolatban. A bizonyítás egyik módja az, hogy néhány stratégiai fontossággal bíró ponton ellenõrizzük bizonyos logikai feltételek teljesülését. Az ilyen ellenõrzésnek mindig az a lényege, hogy a program által kezelt adatokkal kapcsolatban megfogalmazunk olyan logikai feltéteket, amelyeknek mindig igaznak kell lenniük. Ha az ellenõrzést a program elején és végén hajtjuk végre, akkor bemeneti feltételrõl és kimeneti feltételrõl beszélünk. A program helyességének bizonyítása tulajdonképpen azt jelenti, hogy matematikai szigorúsággal megmutatjuk, hogy ha programunk bemenete helyes, akkor a kimenete is mindig helyes lesz. A strukturált programok csupa olyan elembõl állnak, amelyeknek egyetlen belépési és egyetlen kilépési pontja van. Ez önmagában is jelentõsen megkönnyíti a program mûködésével kapcsolatos bizonyítások elvégzését. Ugyanakkor, ha a program goto utasításokat is

9 Strukturált programozás 19 tartalmaz, gyakran lehetetlen világosan elkülöníteni benne a szerepükben független, egy bemenettel és egy kimenettel rendelkezõ modulokat. Még ha nem is használunk formális módszereket a helyesség bizonyítására, csupán egyszerû szemrevételezéssel próbáljuk eldönteni, hogy programunk jól vagy rosszul mûködik, a logikai rendszer átlátását akkor is nagyban elõsegíti, ha az említett egyszerû tulajdonsággal rendelkezõ elemekbõl építkezünk Miért használjuk mégis a goto parancsot? A szakértelem csorbítása Akárhogy is nézzük, a goto parancs is része a programozási nyelv eszközkészletének. Ha egyszerûen megtiltjuk a használatát, azzal a programozó kezébõl kivesszük ezt az eszközt, és abban is megakadályozzuk, hogy a megfelelõ helyzetekben értelmes módon felhasználja. Képzeljünk el egy kézmûvest, akinek az a specialitása, hogy fából különbözõ használati tárgyakat készít. Tegyük fel, hogy ettõl az embertõl elveszünk egy olyan eszközt például egy baltát amirõl úgy gondoljuk, hogy nincs is igazán szüksége rá. Ezzel nyilván lecsökkentettük a választási lehetõségeit, és azt a képességét is fölöslegessé tettük, amely a balta használatához szükséges. (Ugyanakkor lehetnek olyan helyzetek, amikor a legalkalmasabb munkaeszköz éppen a balta lenne.) Kivételek Viszonylag gyakran bukkan fel a programozás során az a követelmény, hogy a kész program képes legyen bizonyos hibák felismerésére és kezelésére. Tegyük fel, hogy egy ilyen kezelendõ hiba az eljáráshívások sokadik mélységi szintjén következik be. A hibakezelés egyik lehetséges módja az, hogy valamennyi eljáráshívásnál meg-

10 20 Programtervezés adunk még egy bemenõ paramétert. Ez az eljárás persze igencsak kényelmetlenné válhat, hiszen minden eljárásnál kínosan ügyelnünk kell arra, hogy átadjuk neki azt a paramétert, amit valószínûleg nem is fog semmire használni. Sokkal jobb megoldásnak tûnik, ha egy goto paranccsal bármely eljárásból a program egy adott helyére ugorhatunk, ahol aztán központilag kezelhetjük a hibát. Ez nyilvánvalóan a programszerkezet lényeges egyszerûsödését eredményezi. A megoldás lényege tulajdonképpen az, hogy egy kivételes helyzet kezelésére egy kivételes megoldást használunk. Persze egyes programnyelvek ilyen például az Ada ezt a problémát eleve megoldják azzal, hogy a kivételkezeléshez külön eszközöket biztosítanak. A programok teljesítménye Egyes esetekben egy goto parancsok segítségével megvalósított program gyorsabban futhat, mint egy olyan, amiben mellõztük a goto használatát. Jó példa erre az az eset, amikor egy a táblázatban egy x értéket kell megkeresnünk: for i:=1 to a_tablazat_merete do if a(i)=x then goto megtalaltuk endif endfor nem_talaltuk_meg: megtalaltuk: Ugyanezt egy szép strukturált program formájában a következõképpen lehetne megvalósítani: i:=1 while i<a_tablazat_merete and a(i) not = x

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

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

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

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

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

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

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

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

6. fejezet: Ciklusok

6. fejezet: Ciklusok 6. fejezet: Ciklusok Mint a nyelvekben általában, itt is léteznek ciklusok. Az alapvető három ciklus-típus: elöltesztelő, hátultesztelő és számláló. Lássuk ezeket sorban! Elöltesztelő = while. A while

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

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 3. előadás Programozási nyelv felépítése szabályok megadása Lexika Milyen egységek építik fel? Szintaktikus szabályok

Részletesebben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

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

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra) 6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban

Részletesebben

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Szoftver-mérés. Szoftver metrikák. Szoftver mérés Szoftver-mérés Szoftver metrikák Szoftver mérés Szoftver jellemz! megadása numerikus értékkel Technikák, termékek, folyamatok objektív összehasonlítása Mér! szoftverek, programok CASE eszközök Kevés szabványos

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

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Algoritmusok helyességének bizonyítása. A Floyd-módszer Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk

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

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

Programozási módszertan. Mohó algoritmusok

Programozási módszertan. Mohó algoritmusok PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás

Részletesebben

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

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

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

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

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

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

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

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

Dinamikus programozás - Szerelőszalag ütemezése

Dinamikus programozás - Szerelőszalag ütemezése Dinamikus programozás - Szerelőszalag ütemezése A dinamikus programozás minden egyes részfeladatot és annak minden részfeladatát pontosan egyszer oldja meg, az eredményt egy táblázatban tárolja, és ezáltal

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

Kompetens szoftvertesztelés a gyakorlatban II. zárthelyi dolgozat

Kompetens szoftvertesztelés a gyakorlatban II. zárthelyi dolgozat Név:...................................... Neptunkód:................... Kompetens szoftvertesztelés a gyakorlatban II. zárthelyi dolgozat 2015. április 22. (szerda) Kitöltési útmutató A dolgozat kitöltéséhez

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

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

Irányítástechnika 1. 9. Elıadás. PLC-k programozása

Irányítástechnika 1. 9. Elıadás. PLC-k programozása Irányítástechnika 1 9. Elıadás PLC-k programozása Irodalom - Helmich József: Irányítástechnika I, 2005 - Zalotay Péter: PLC tanfolyam - Jancskárné Anweiler Ildikó: PLC programozás az IEC 1131-3 szabvány

Részletesebben

Java programozási nyelv 9. rész Kivételkezelés

Java programozási nyelv 9. rész Kivételkezelés Java programozási nyelv 9. rész Kivételkezelés 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/24 Tartalomjegyzék

Részletesebben

S z á m í t ó g é p e s a l a p i s m e r e t e k

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

BASH SCRIPT SHELL JEGYZETEK

BASH SCRIPT SHELL JEGYZETEK BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...

Részletesebben

Minta. Javítási-értékelési útmutató az emelt szintű írásbeli vizsgához. Íráskészség

Minta. Javítási-értékelési útmutató az emelt szintű írásbeli vizsgához. Íráskészség Javítási-értékelési útmutató az emelt szintű írásbeli vizsgához Íráskészség Az írásfeladatok értékelése központilag kidolgozott analitikus skálák segítségével történik. Ez az értékelési eljárás meghatározott

Részletesebben

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

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

Algoritmizálás, adatmodellezés tanítása 6. előadás Algoritmizálás, adatmodellezés tanítása 6. előadás Tesztelési módszerek statikus tesztelés kódellenőrzés szintaktikus ellenőrzés szemantikus ellenőrzés dinamikus tesztelés fekete doboz módszerek fehér

Részletesebben

Eljárások, függvények

Eljárások, függvények Eljárások, függvények Tartalomjegyzék Az alprogramok...2 Kérdések, feladatok...2 Kérdések, feladatok...3 Eljárások...3 Kérdések, feladatok...4 Érték és cím szerinti paraméterátadás...5 Kérdések, feladatok...6

Részletesebben

Szekvenciális hálózatok és automaták

Szekvenciális hálózatok és automaták Szekvenciális hálózatok a kombinációs hálózatokból jöhetnek létre tárolási tulajdonságok hozzáadásával. A tárolás megvalósítása történhet a kapcsolás logikáját képező kombinációs hálózat kimeneteinek visszacsatolásával

Részletesebben

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más

Részletesebben

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 3. előadás A Math osztály (System.Math) Metódus Művelet Math.Sin(x) sin(x), ahol az x szög értékét radiánban

Részletesebben

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >> I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >

Részletesebben

SZERZŐ: Kiss Róbert. Oldal1

SZERZŐ: Kiss Róbert. Oldal1 A LOGO MindStorms NXT/EV3 robot grafikus képernyőjét használva különböző ábrákat tudunk rajzolni. A képek létrehozásához koordináta rendszerben adott alakzatok (kör, téglalap, szakasz, pont) meghatározó

Részletesebben

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Ciklusok for (ismétlés) while do while 2 for utasítás szöveg 10-szeri kiíratása: int

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

2. Visszalépéses stratégia

2. Visszalépéses stratégia 2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:

Részletesebben

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11. 11. gyakorlat Branch-and-Bound a korlátozás és szétválasztás módszere 1. Az egészértéketű programozás 1.1. Bevezető Bizonyos feladatok modellezése kapcsán előfordulhat olyan eset, hogy a megoldás során

Részletesebben

SZERZŐ: Kiss Róbert. Oldal1

SZERZŐ: Kiss Róbert. Oldal1 A LEGO MindStorms NXT/EV3 robot grafikus képernyőjét és programozási eszközeit használva különböző dinamikus (időben változó) ábrákat tudunk rajzolni. A képek létrehozásához koordináta rendszerben adott

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

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. november 20. 10. El adás SQLite SQLite: Adatbázis kezel rendszer SQL standardokat nagyrészt követi Nagyon elterjedt, pl böngész kben is használt Nehéz olyan programnyelvet

Részletesebben

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10. Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,

Részletesebben

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor

Részletesebben

Véges állapotú gépek (FSM) tervezése

Véges állapotú gépek (FSM) tervezése Véges állapotú gépek (FSM) tervezése F1. A 2. gyakorlaton foglalkoztunk a 3-mal vagy 5-tel osztható 4 bites számok felismerésével. Abban a feladatban a bemenet bitpárhuzamosan, azaz egy időben minden adatbit

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Assembly Utasítások, programok. Iványi Péter

Assembly Utasítások, programok. Iványi Péter Assembly Utasítások, programok Iványi Péter Assembly programozás Egyszerű logikán alapul Egy utasítás CSAK egy dolgot csinál Magas szintű nyelven: x = 5 * z + y; /* 3 darab művelet */ Assembly: Szorozzuk

Részletesebben

Delphi programozás I.

Delphi programozás I. Delphi programozás I. Konzol alkalmazások készítése Delphiben A Delphi konzol alkalmazása (console application) olyan 32 bites program, amely nem grafikus felületen, hanem egy szöveges konzol ablakban

Részletesebben

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,

Részletesebben

SZÁMÍTÓGÉPI GRAFIKA VÁGÁS

SZÁMÍTÓGÉPI GRAFIKA VÁGÁS SZÁMÍTÓGÉPI GRAFIKA VÁGÁS FELADAT: Ha az alakzat nagyobb, mint a képtartomány, amelyben megjelenítendő, akkor a kívül eső részeket el kell hagyni, azaz az alakzatról le kell vágni, röviden szólva: az alakzatot

Részletesebben

KeyLock-2V Digitális kódzár 2 kimenettel

KeyLock-2V Digitális kódzár 2 kimenettel KeyLock-2V Digitális kódzár 2 kimenettel HU Felhasználói és programozói leírás A kézikönyv tartalmára és a benne leírt berendezésre vonatkozóan a fejlesztő és gyártó fenntartja a változtatás jogát. A gyártó

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin 1 A PROGRAMOZÁS ALAPJAI 3 Készítette: Vénné Meskó Katalin Információk 2 Elérhetőség meskokatalin@tfkkefohu Fogadóóra: szerda 10:45-11:30 Számonkérés Időpontok Dec 19 9:00, Jan 05 9:00, Jan 18 9:00 egy

Részletesebben

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30. Online algoritmusok Algoritmusok és bonyolultságuk Horváth Bálint 2018. március 30. Horváth Bálint Online algoritmusok 2018. március 30. 1 / 28 Motiváció Gyakran el fordul, hogy a bemenetet csak részenként

Részletesebben

Tartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38

Tartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38 Bevezetés... 11 1. A VHDL mint rendszertervező eszköz... 13 1.1. A gépi tervezés... 13 1.2. A VHDL általános jellemzése... 14 1.3. Tervezési eljárás VHDL-lel... 15 2. A VHDL nyelv alapszabályai... 19 2.1.

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

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

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

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

KeyLock-23 Digitális kódzár 2 kimenettel, 3 bemenettel

KeyLock-23 Digitális kódzár 2 kimenettel, 3 bemenettel KeyLock-23 Digitális kódzár 2 kimenettel, 3 bemenettel HU Felhasználói és programozói leírás A kézikönyv tartalmára és a benne leírt berendezésre vonatkozóan a fejlesztő és gyártó fenntartja a változtatás

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

Folyamatirányítás labor 4. mérés Gyártósori szállítószalag modell irányítása Modicon M340 PLC-vel. Feladat leírás

Folyamatirányítás labor 4. mérés Gyártósori szállítószalag modell irányítása Modicon M340 PLC-vel. Feladat leírás Folyamatirányítás labor 4. mérés Gyártósori szállítószalag modell irányítása Modicon M340 PLC-vel Feladat leírás A mérési feladat a tanszéki laborban található, az alábbi ábrán felülnézetbl látható, gyártósori

Részletesebben

TM-73733 Szervó vezérlő és dekóder

TM-73733 Szervó vezérlő és dekóder TM-73733 Szervó vezérlő és dekóder Használati útmutató 2011 BioDigit Ltd. Minden jog fenntartva. A dokumentum sokszorosítása, tartalmának közzététele bármilyen formában, beleértve az elektronikai és mechanikai

Részletesebben

Algoritmusok tervezése

Algoritmusok tervezése Hova fordulhatok segítségért? Az amatrcsillagászat egy szép tevékenység, de gyakran nagyon nehéz is lehet. Ilyenkor jöhet jól a többi amatrcsillagász segítsége. Az amatrök különböz egyesületeket, klubokat,

Részletesebben

Objektumorientált Programozás III.

Objektumorientált Programozás III. Objektumorientált Programozás III. Vezérlési szerkezetek ismétlés Matematikai lehetőségek Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő

Részletesebben

Bevezetés a C++ programozásba

Bevezetés a C++ programozásba Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek

Részletesebben

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t.. A Név: l 2014.04.09 Neptun kód: Gyakorlat vezető: HG BP MN l 1. Adott egy (12 nem nulla értékû elemmel rendelkezõ) 6x7 méretû ritka mátrix hiányos 4+2 soros reprezentációja. SOR: 1 1 2 2 2 3 3 4 4 5 6

Részletesebben

Dinamikus geometriai programok

Dinamikus geometriai programok 2011. február 19. Eszköz és médium (fotó: http://sliderulemuseum.com) ugyanez egyben: Enter Reform mozgalmak a formális matematika megalapozását az életkjori sajátosságoknak megfelelő tárgyi tevékenységnek

Részletesebben

A matematikai feladatok és megoldások konvenciói

A matematikai feladatok és megoldások konvenciói A matematikai feladatok és megoldások konvenciói Kozárné Fazekas Anna Kántor Sándor Matematika és Informatika Didaktikai Konferencia - Szatmárnémeti 2011. január 28-30. Konvenciók Mindenki által elfogadott

Részletesebben

Fordítás Kódoptimalizálás

Fordítás Kódoptimalizálás Fordítás Kódoptimalizálás Kód visszafejtés. Izsó Tamás 2016. október 20. Izsó Tamás Fordítás Kódoptimalizálás / 1 Aktív változók Angol irodalomban a Live Variables kifejezést használják, míg az azt felhasználó

Részletesebben

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május) Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május) Teszt kérdések 1. Melyik állítás igaz a folytonos integrációval (CI) kapcsolatban? a. Folytonos

Részletesebben

Rendszer szekvencia diagram

Rendszer szekvencia diagram Rendszer szekvencia diagram Célkitűzések A rendszer események azonosítása. Rendszer szekvencia diagram készítése az eseményekre. 2 1.Iteráció Az első igazi fejlesztési iteráció. A projekt kezdeti szakaszában

Részletesebben

Értékesítések (összes, geográfiai -, ügyfelenkénti-, termékenkénti megoszlás)

Értékesítések (összes, geográfiai -, ügyfelenkénti-, termékenkénti megoszlás) Saját vállalkozás Értékesítések (összes, geográfiai -, ügyfelenkénti-, termékenkénti megoszlás) Piaci részesedés Haszonkulcs Marketing folyamatok Marketing szervezet Értékesítési/marketing kontrol adatok

Részletesebben

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek

Részletesebben

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:

Részletesebben

EMELT SZINT ÍRÁSKÉSZSÉG ÉRTÉKELÉSI ÚTMUTATÓ. Minta. Értékelési szempontok

EMELT SZINT ÍRÁSKÉSZSÉG ÉRTÉKELÉSI ÚTMUTATÓ. Minta. Értékelési szempontok A feladat I. Összefoglaló táblázat az értékelési szempontokról Értékelési szempontok A feladat teljesítése, a megadott szempontok követése Hangnem, az olvasóban keltett benyomás Szövegalkotás Szókincs,

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

Szakterület Modell Kapcsolatokkal bővítés

Szakterület Modell Kapcsolatokkal bővítés Szakterület Modell Kapcsolatokkal bővítés Cél Tárjuk fel a szakterület modelljén belüli kapcsolatokat. Különböztessük meg a szükséges és a jó ha van kapcsolatokat. 2 Bevezetés Keressük meg azokat a fogalom

Részletesebben

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL x 1-2x 2 6 -x 1-3x 3 = -7 x 1 - x 2-3x 3-2 3x 1-2x 2-2x 3 4 4x 1-2x 2 + x 3 max Alapfogalmak: feltételrendszer (narancs színnel jelölve), célfüggvény

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t

Részletesebben