PROGRAMOZÁSMÓDSZERTAN I

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

Download "PROGRAMOZÁSMÓDSZERTAN I"

Átírás

1 PROGRAMOZÁSMÓDSZERTAN I A számítógépek programozása szorosan összefügg a gépek építésével. Kezdetben maguk a gépek készítői voltak a programozói, szerelői és felhasználói is egyben. Az első és egyben talán leghíresebb programozó mégsem a gépek készítői közül került ki, sőt nem is az elektronikus gépek korából. Az 1840-es évek közepén Charles Babbage készített egy programozható gépet (analitikai gép), amire az első algoritmusokat Ada Lovelace készítette. A mellett, hogy a világ első programozója hölgy volt még az is érdekesség, hogy valójában a leánykori neve Ada Byron és bizony a híres költő Lord Byron lánya volt. 1. ábra Ada Lovelace A programozás az elektronikus gépek korában lett elterjedt foglalkozás. A második világháború alatt Neumann János által vezetett kutatócsoport elkészítette az első működőképes elektronikus számítógépeket, amikhez bizony már komoly programokat kellett írni. Ekkor még nem programozási nyelvek segítségével készültek a szoftverek, hanem a gépek nyelvén, úgynevezett gépi kódban íródtak. Ezek teljesen eltértek a ma használatos programozási nyelvektől. A gépek működéséhez közeli nyelveket, alacsony szintű nyelveknek nevezzük. Ilyen nyelv az ASSEMBLY, ahol szinte a gépi kódhoz hasonlóan kell bevinni a megfelelő utasításokat. Az emberi nyelvhez hasonlatos programozási nyelveket pedig magas szintű nyelveknek nevezzük. A magas szintű nyelvek közül az egyik legismertebb és talán legelterjedtebb a BASIC programozási nyelv. Kidolgozása Kemény János nevéhez fűződik. 1

2 A magas szintű nyelvek megjelenésével rohamosan megnőtt a felhasználók és programozók száma. Innenstől kezdve nem csak pár ember kiváltsága maradt a számítástechnika, hanem hétköznapi szakmává és szórakozássá változott. Az 1980-as évek hozták az igazi áttörést, amikor az IBM és az Apple megjelentette az elérhető árú PC családjait. Megvalósult egy álom a számítástechnika fanatikusok körében, mert mindenki megvehette a saját számítógépét, amin aztán otthon készíthette a saját programjait. A programozási nyelvek segítségével megjelentek az első, úgynevezett strukturált programok. Egy programot akkor nevezünk strukturáltnak, ha nem tartalmaz feltétel nélküli ugrást, és algoritmusa teljes mértékben megvalósítható véges mélységig egymásba ágyazott, egyszerű és összetett program struktúrákkal (szerkezetekkel). Ehhez a programot modulárisan kell felépítenünk. Ez a moduláris felépítés persze sokszor elég nagy fejtörést okoz. Mielőtt beleugrunk a strukturált programozás tanulmányozásába néhány alapfogalmat tisztáznunk kell! MUNKAHELYZET- ESETFELVETÉS ALAPFOGALMAK Algoritmus: Elemi lépések véges, logikus sorozata, amellyel egy probléma megoldását adja. A megfelelő bemenetre mindig ugyanazt a kimenetet kapjuk. Program: Az algoritmus megfogalmazása a számítógépek, vagy a fordító programok számára érthető módon. 2

3 Szintaktika: A programozás nyelvtana, szintaktikailag helyes valami, ha helyesen van leírva és a program el is fogadja. Szemantika: A programozás jelentése, szemantikailag helyes valami, ha helyesen működik. A programokat szintaktikailag tudja ellenőrizni a fordító, szemantikailag nem. Fordító program (compiler): Egy program, amely valamilyen programozási nyelven megírt programot gépi kódúvá fordít. Minél magasabb szintű egy nyelv annál bonyolultabb a fordítás. A fordítás a program elejétől a végéig megtörténik, és csak azután kezdi el futtatni a gép, ha szintaktikailag mindent rendben talált. A compileres nyelvek előnye a gyorsabb működés, hátránya, hogy a lefordított kód csak ugyanolyan architektúrájú gépen futtatható, mint amelyiken fordították. Értelmező (interpreter): Egy program, amely valamilyen programozási nyelven megírt programot utasításonként értelmez és végre is hajt. A fordítás utasításonként megy és a végrehajtás szintén ebben a sorrendben történik. Ha a program szintaktikailag hibás részhez ér, akkor hibaüzenettel megszakítja a program fordítását és futtatását. Az interpreteres nyelvek előnye, hogy a program hordozható minden olyan helyre, ahol van interpreter, hátránya, hogy a program sokkal lassabban fut. Megjegyzések (kommentek): A megjegyzéseket a fordító nem veszi figyelembe. Azt a célt szolgálják, hogy a programot olvasó könnyebben eligazodjon a programban, ezzel segítve a kód újrafelhasználását. Kommenteket nem csak mások segítésére, hanem a saját munkánk későbbi megkönnyítésére is érdemes elhelyezni a programunkban. Egy több ezer soros programban a készítője is hamar eltévedhet, főleg ha esetleg hónapokkal vagy évekkel később szeretne módosítani rajta. Kulcsszavak: A nyelv rögzített jelentéssel bíró szavai, amelyet más célra nem lehet használni. Konstans: Egy program része; egy objektum, amelynek van egy értéke. Egy állandót (értékként) a programozó a kód létrehozásakor meghatároz. Egy állandót csak az értéke jellemez, úgyhogy a konstans fogalma és a konstans értéke teljes szinonimák. 3

4 A változó: A változó egy elnevezett memória terület. Jellemzője a neve, memóriacíme, típusa, értéke. A változókat általában (nem minden esetben) első használat előtt deklarálni kell, azaz meg kell adni a változó nevét és típusát. Ennek hatására a fordító automatikusan kijelöl egy memóriacímet ennek a változónak. Arról, hogy melyik cím lett lefoglalva a változó számára a programozónak nem kell tudnia, hiszen a programban mindenütt a változó nevével hivatkozunk a területre. Erre a területre értéket adhatunk a változónak, és hivatkozhatunk is az ott található értékre. A neve: Programozási nyelvtől függően vannak rá szabályok. A legtöbb esetben nem lehet hosszabb 8 karakternél és kerülendők az ékezetes betűk és különleges karakterek. Érdemes úgy nevet választanunk, hogy valamilyen szinten tükrözze a feladatát is. Pl.: adat1, bevitel, nyomtat stb. A memóriacíme: Nekünk nem kell ismernünk az értékét, de bizonyos nyelvekben felhasználjuk. Az értéke: Egy változónak a definiálás pillanatától kezdve van pillanatnyi értéke. Még akkor is, ha még nem adtunk neki értéket, de ilyenkor nem célszerű felhasználni a pillanatnyi értéket. A definiált, de még értéket nem kapott változókat inicializálatlan változóknak szokás nevezni. Egyes nyelvek fordító programjai nem engedik felhasználni az inicializálatlan változók értékét, míg más nyelveknél a programozó felelőssége, hogy ne használja. Használat előtt azért érdemes minden változónknak megfelelő kezdőértéket adni, vagy lenullázni, ha azt a nyelv nem teszi meg automatikusan. A típusa: A típus szintén nyelvfüggő is lehet, de azért vannak olyan általános típusok, amik minden nyelvben szerepelnek. Ilyen például a szám, szöveg, logikai. Deklaráció: Meghatározás. Ha változó deklarálásáról beszélünk, akkor azt akarjuk kifejezni, hogy megadjuk a fordító számára egy használni kívánt változó nevét és típusát. Egyszer történhet egy változó számára helyfoglalás, de lehetséges, hogy többször is tudatnunk kell a fordítóval a változó nevét és típusát. Ez többmodulos programok esetén lehetséges. Inicializálás: Inicializálásnak nevezzük, amikor egy változó definiálásával egyidejűleg értéket is adunk a változónak. Vagyis a változót kezdőértékkel látjuk el. Kifejezés: Kifejezés elemek összekapcsolva operátorokkal, ahol a kifejezés elem lehet egy konstans, egy változó, függvényhívás, vagy egy zárójelezett kifejezés. 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 elemek természetesen külön értékelődnek ki és utána vesznek részt a teljes kifejezés kiértékelésében. 4

5 Precedencia szintek: Minden operátor, amit a számítástechnikában használunk, be van sorolva egy precedencia szintre, ami meghatározza a kiértékelésének a sorrendjét. Ennek egy része megegyezik a matematika és logika szabályaival, más része pedig programfüggő lehet. Operátorok: Operátorok segítségével tudunk a kifejezésekben elvégezni műveleteket. Több csoportjuk létezik attól függően, hogy hány operandussal rendelkeznek. Vannak egy-két és több operandusú operátorok. Általánosságban elmondható, hogy az egyoperandusú operátorok magasabb precedenciájúak, mint a kétoperandusúak. Valamint 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. Következő alapvető szintekben bemutatok pár példát erre: 1. előjel operátor:-, logikai tagadás operátor:! 2. : *, / 3. +, - 4. <, >, <=, >= Hatókör: A bizonyos elemek nem az egész program területén használhatóak és láthatóak. Gondoljunk csak bele, hogy egy több ezer soros programban milyen kavarodást okozhatna, ha minden változó és függvény érvényességi köre az egész programra kiterjedne. Elég csak azt számba venni, hogy a sok változónak a feladatát fejben kellene tartani folyamatosan. A hatókör kialakítása gyakorlatilag az ilyen elemek élettartamát, használhatóságát korlátozza. Az olyan változókat, elemeket, amiket az egész program területén használhatunk, globális hatókörűnek nevezzük, azokat, pedig amik csak egy meghatározott részén élnek a programnak, lokális hatókörrel rendelkezőnek nevezzük. Egy-egy objektum hatókörét a programozó definiálja. 5

6 MUNKAHELYZET- ESETFELVETÉS ALGORITMUS LEÍRÓ MÓDSZEREK A számítógépen futó algoritmusokat többféleképpen is le lehet írni. A különböző programozási nyelvekben az algoritmusok szintaktikája között sok eltérés lehet, de alapjaiban a működési elvük ugyanaz marad. Egy jó programozónak igazán nem okoz gondot egy algoritmus egyik nyelvről a másikra való átültetése. A nyelvektől független algoritmus leíró módszerek is léteznek. Ezek közül most hárommal foglalkozunk részletesebben: 1. Pszeudokód 2. Folyamatábra 3. Struktogram 1. Pszeudokód Ez a leírási módszer a magyar nyelv elemeit használja fel az algoritmusok rögzítésére. Gyakorlatilag a szerkezete egy strukturált programra hasonlít. Vannak rögzített kulcsszavai, amiket a megfelelő utasítások megjelenítésére használunk. Az algoritmus soronként van rögzítve, ami alapból a futási sorrendet is szemlélteti. Nézzük meg egy példán keresztül a használatát: Start Kérd be A Kérd be B C=A+B Ird ki C Vége Ha megvizsgáljuk az algoritmust láthatjuk, hogy egy elég egyszerű módszert használtunk a leírásra. A pszeudokód valahol a szöveges algoritmus és a strukturált programnyelvek között foglalja el helyét az algoritmus leírásban. 6

7 2. Folyamatábra A folyamatábra az egyik legrégebbi leíró eszköz, amit használunk az informatikában. Nagy előnye a gyors áttekinthetőség és egyértelműség. Hátránya, hogy nagyobb méretű algoritmusoknál elég nehézkes a használata. A folyamatábra gyakorlatilag grafikus elemek segítségével jeleníti meg az algoritmusokat. Síkidomok és nyilak az alkotóelemei. Nézzük meg az alapvető elemeket: A program kezdete: Start Input/Output (beviteli/kiviteli) művelet: Be A Értékadás, általános művelet: A=5 Vizsgálat, elágazás: A>10 Igaz Hamis Program vége: Stop Ezeknek az elemeknek a felhasználásával nézzünk meg egy példát egy egyszerű algoritmusra: 7

8 Start Be A Be B C=A+B Ki C Stop 8

9 3. Struktogram A struktogram már fejlettebb leíró eszköz, mint az előbbiek. Sokkal áttekinthetőbb algoritmusokat lehet készíteni vele. Az ábrázolás szempontjából előnyük, hogy nem használnak adatáramlási vonalakat és nyilakat, ezért sok hely takarítható meg. A programkészítés szempontjából is hasznos az alkalmazásuk, mert a tervezőt a programrészletekben, struktúrákban való gondolkozásra készteti. A struktogramokban a felhasznált szimbólumok egységesen téglalap alakúak, amelyek egy oldalukkal csatlakoznak egymáshoz: Utasítások: 1. utasítás 2. utasítás A feltételes elágazás: Igaz A>10 Hamis 1. utasítás 2. utasítás Ismétlődő tevékenységek (ciklusok) Meg kell ismerkednünk egy újabb utasítástípussal, a ciklussal. Akkor használjuk, ha egy vagy több utasítást -valamilyen feltételtől függően- többször kell végrehajtanunk. A feltételt ciklusfeltételnek, az ismételendő utasításokat ciklusmagnak nevezzük. Jelölése: 9

10 Logikai feltétel Ciklusmag SZAKMAI INFORMÁCIÓTARTALOM STRUKTURÁLT PROGRAMOK ELEMEI Programozás során több féle alkotóelemből is építkezhetünk, de három csoportba soroljuk azokat az utasításokat, amikből fel tudunk építeni egy strukturált programot: Szekvencia Szelekció Iteráció A következő részben azt vizsgáljuk meg, hogy a fenti utasításcsoportok hogyan működnek, és segítségükkel mi módon lehet összetettebb programozási feladatokat megoldani. :Szekvencia Szekvenciának nevezzük a sorban egymás után való utasítások végrehajtását. 10

11 Ez gyakorlatilag azt jelenti, hogy olyan egyszerű utasítások sorozatát írjuk a programunkba, amit aztán a számítógép egymásután végrehajtva eljut a program végére. Gyakorlatilag a program minden esetben ugyan úgy fog lefutni. A külső tényezők, vagy a bevitt adatok nem módosítanak az algoritmus menetén. Általában mindenki ilyen programok segítségével kezd el ismerkedni a programozással. Aránylag egyszerűen áttekinthetőek és könnyen meg lehet érteni a működésüket. Nézzünk egy egyszerű példát a hétköznapi életből a szekvenciális algoritmusra: 1. Felkelek 2. Mosakszom 3. Felöltözök 4. Reggelizek 5. Elindulok a munkába Gondolom a fenti algoritmus mindenki számára ismerős. Gyakorlatilag ez a hétköznapi reggelek szekvenciális programja. Hogy kicsit árnyaltabban is lássuk a problémát, most egy matematikai feladaton keresztül mutatjuk be a szekvenciális algoritmust pszeudokód segítségével: 1. Start 2. Bekér A 3. Bekér B 4. C=A+B 5. Kiír C 6. Vége Ebben az esetben két szám összeadását írtuk le egy szekvenciális algoritmusban. Ha felcserélném két sorát, valószínűleg gondom akadna az algoritmus végrehajtásával. Tehát egy szekvenciális algoritmusnál nagyon fontos az utasítások sorrendje. Most nézzük meg a fenti algoritmust folyamatábra segítségével: 11

12 Start Be A Be B C=A+B Ki C Stop Animáció Harmadszorra pedig struktogrammal is készítsük el az algoritmust! Bekér A Bekér B C=A+B Kiír C 12

13 Ha megvizsgáljuk a fenti algoritmusokat, akkor láthatjuk, hogy gyakorlatilag teljesen ugyan azokkal a problémákkal állunk szemben mindegyik esetben. Ha most fel kellene írnunk egy szorzásnak, vagy kivonásnak az algoritmusát akkor ott is egy szekvenciális programot kellene készítenünk. Nagyon sok problémát meg lehet oldani ezekkel a módszerekkel, de ahogy egy olyan problémához érkeznénk, ahol valamilyen döntést kell hozni a program folytatásához, már elakadna a tudományunk. Ezért is kellett bevezetni a következő struktúrát: Szelekció A szelekció egy elágazás a programban. Egy döntési ponthoz érve a program kiértékel egy logikai feltételt és annak megfelelően fut tovább csak az igaz, vagy csak a hamis ágon. Itt már nem egy sorban végrehajtott utasítássorozatról van szó, hiszen a döntéstől függően két féle útja is van már a program befejezésének. Nézzünk meg először egy hétköznapi példát ennek szemléltetésére: 1. Rájövök, hogy nincs itthon tej. 2. Elhatározom, hogy beszerzek valahonnan. 3. Ha esik az eső, akkor a szomszédtól kérek, különben elmegyek a boltba. A fenti példa is mutatja, hogy az algoritmusnak kétféle befejezése is lehet a körülményektől függően. Nem tudjuk előre megmondani melyik eset fog történni, hiszen ezt az algoritmust különböző időpontokban lefutatva más és más eredményt kaphatunk. Nézzünk meg egy matematikai példát is! Döntsük el egy számról, hogy pozitív, vagy negatív! Nézzük a pszeudokódját az algoritmusnak! 1. Start 2. Bekér A 3. Ha A>0 akkor kiír pozitív különben kiír negatív 4. Vége Ugyanez a probléma folyamatábra segítségével megfogalmazva: 13

14 Start Be A A>0 Igaz Ki Pozitív Hamis Ki Negatív Stop Stop Animáció Harmadszorra pedig jöhet a struktogram! Be A Igaz A>0 Hamis Ki Pozitív Ki Negatív 14

15 A kicsit szemfüles olvasó rájöhet, hogy sántít valahol ez a kis algoritmus, mert ha 0 a bekért szám, akkor ugye itt negatív jelzőt fog kapni, ami matematikailag nem igazán helyes. Vajon hol kellene módosítani a programon és mit, hogy a 0 számot is kezelje az algoritmus? Sok esetben bizony a szekvencia sem elég minden probléma megoldásához, azért még egy struktúra a rendelkezésünkre áll a programjaink elkészítéséhez! Iteráció Az iteráció ismétlést, ismétlődést jelent. Köznapi szóhasználatban ciklusoknak szokták a programozók nevezni ezeket a struktúrákat. Gyakorlatilag a programban egy utasításrész ismétlődéséről van szó, aminek számát valamilyen feltétel meghatározza. Azt az utasításrészt, amit a ciklus ismétel ciklusmagnak nevezzük. Három fő csoportba soroljuk a ciklusokat: Előírt lépésszámú Előfeltételes Utófeltételes Az előfeltételest szokták elöltesztelőnek, az utófeltételest pedig hátultesztelőnek is nevezni, de ebbe bele lehetne kötni, mert a ciklus feltétele és maga a tesztelés nem feltétlenül ugyan azon a helyen szerepel a lefordított programban. Előírt lépésszámú ciklus Ebben az esetben már a program írása során pontosan tudjuk, hogy hányszor szeretnénk ismételni a programrészletet. Mivel itt konkrét számról van szó, ezért a programba be is építjük, mint egy konstans értéket. A program addigi futásától függetlenül a ciklusmag mindig ugyan annyiszor fog megismétlődni. Nézzük meg egy-egy hétköznapi probléma tükrében: 15

16 Tegyük fel, hogy rántottát készítünk 4 tojásból. Már a készítés megtervezésekor tudni fogjuk, hogy lesz egy tevékenység, amit biztosan négy alkalommal kell megismételnünk. Ez pedig a tojások feltörése lesz. Nézzünk rá egy algoritmust szövegesen: 1. Előkészítem a hozzávalókat. 2. Felteszem a serpenyőt olajjal a tűzhelyre. 3. Feltörök egy tojást, tojásszámlálót növelem egyel. 4. Beleteszem a tányérba. 5. Ha a tojásszámláló kisebb mint 4 akkor 3 pontra megyek. 6. Megsütöm a rántottát. 7. Vége A példa nem a legszemléletesebb, de tükrözi azt, hogy már előre el volt döntve, hogy az ismétlés hányszor fog megtörténni. Keressünk egy szemléletesebb matematikai problémát a pszeudokóddal való bemutatásra! A feladat legyen az, hogy a program adja össze az első 100 pozitív egész számot, és írja ki az eredményt a képernyőre. 1. A=0 2. Ciklus J=1-től 100-ig 3. A=A+J 4. Ciklus vége 5. Kiír A 6. Vége Most nézzük meg ugyanezt folyamatábra segítségével! 16

17 Start J=1 Hamis J<100 Ki A Igaz A=A+J Stop Animáció Előfeltételes ciklus (elöl tesztelő) A ciklus elején található egy logikai feltétel, ami kiértékelődik, és ettől függően hajtódik végre a ciklusmag. Ebben az esetben nincs megadva a programban pontosan, hogy az ismétlés hányszor fog megtörténni. Olyan eset is előfordulhat, hogy egyszer sem fog lefutni a ciklus, mert a feltétel kiértékelése ilyen eredményt hozott. Nézzünk meg itt is egy hétköznapi példát erre a ciklusra is először! 17

18 Fel kell töltenünk egy uborkás üveget uborkákkal. Milyen algoritmus alapján tennénk ezt meg? 1. Veszek egy üveget magam elé. 2. Megnézem fér-e még bele, ha igen 3. pont, ha nem 5. pont. 3. Teszek bele egy uborkát pontra megyek. 5. Vége Akkor most ugyanez a probléma picit matekosabban és pszeudokóddal: A program bekér számokat és összeadja őket egészen addig, amíg el nem érjük a 100- at. 1. Ciklus amíg A< Bekér B 3. A=A+B 4. Ciklus vége Na, akkor most folyamatábrával is! 18

19 Start Hamis A<100 Igaz Be J A=A+J Stop Animáció Persze a struktogram sem maradhat el: A<100 Be J A=A+J Utófeltételes ciklus (hátul tesztelő) Ennél a ciklusnál a feltétel és kiértékelése a ciklus végén, a ciklusmag mögött található. Ez gyakorlatilag azt is jelenti, hogy a ciklusmag egyszeri lefutása után történik a kiértékelés. Tehát ebben az esetben a ciklusmag egyszer biztosan lefut. 19

20 Ezzel a módszerrel általában olyan feladatokat oldunk meg, ahol a magnak mindenképp futnia kell egy alkalommal. A lefutása után történik a logikai feltétel kiértékelése, ami eldönti, hogy a ciklus fog-e még ismétlődni. Egy hétköznapi példa, ami szerintem mindenkinek ismerős lesz: 1. Megkérdezem elmehetek-e moziba. 2. Amíg a válasz nem, vissza az 1 pontra 3. Elmegyek moziba. Nézzünk meg egy példát pszeudo algoritmussal egy jelszó bekérést: 1. Ismételd 2. Bekér J 3. Amíg J<> Titok 4. Kiír Jelszó elfogadva Folyamatábra segítségével: 20

21 Start Be J Igaz J<> Titok Hamis Ki Elfogadva Stop Struktogram: Be J J<> Titok Ki Jelszó elfogadva Azokat a ciklusokat, amik soha nem állnak meg, végtelen ciklusnak nevezzük. Üres ciklus, aminek nincs utasítás a ciklusmagjában. 21

22 Összefoglalás Mi az algoritmus? Milyen adatszerkezeteket ismer? Milyen algoritmus leíró eszközöket ismer? Milyen elemekből áll egy strukturált program? TANULÁSIRÁNYÍTÓ Ha szeretnénk megtanulni a fent ismertetett anyagot, akkor először az alapfogalmakkal kell tisztában lennünk. Ha ezeket ismerjük, akkor rátérhetünk az algoritmus leíró módszerekre. Itt sajnos nem úgy működnek a dolgok, hogy kiválasztunk egy számunkra szimpatikus módszert és azt tanuljuk meg rendesen. Mindegyikre szükségünk lesz, sőt néha még kevesellni is fogjuk, mikor olyan probléma elé kerülünk, amit nem lehet másképp megoldani. A tanulás során javaslok egy olyan sorrendet betartani, ami a tananyag ismertetésekor is történt. Ha tisztában vagyunk az alapfogalmakkal és a leíró rendszerekkel, akkor érdemes gyakorolni a használatukat pár feladaton keresztül, ami a következő részben megtalálható lesz! 22

23 ÖNELLENÖRZŐ FELADATOK Ebben a részben találunk néhány feladatot, ami segít elmélyíteni a fenti ismereteket. A feladatokat itt kell megoldani a kijelölt helyen. Segítségképpen nyugodtan lapozzunk vissza kezdetben a tananyaghoz, de az lenne a végső cél, hogy teljesen önállóan tudjuk megoldani a feladatokat! 1. feladat Készítsen szöveges algoritmus pszeudokód segítségével a páros és páratlan számok kiválogatására! 23

24 2. feladat Készítsen algoritmustervet folyamatábra segítségével, ami eldönti egy bekért számról, hogy páros vagy páratlan! 24

25 3. Feladat Készítsen algoritmus tervet struktogram segítségével! A program egy bekért évszámról döntse el, hogy szökőév volt-e vagy sem! 25

26 IRODALOMJEGYZÉK FELHASZNÁLT IRODALOM KUROS, A. G. : Felsőbb algebra. Budapest (Tankönyvkiadó) KNUTH, Donald, E.: A számítógép-programozás művészete I-III. Budapest (Műszaki) OBÁDOVICS J. Gyula: Matematika. Budapest (Műszaki) REIMANN József: Matematika. Budapest WIRTH, Niklaus: Algoritmusok + Adatstruktúrák = Programok. Budapest (Műszaki)

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

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

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

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

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

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 4 (2012.03.26) Bevezető Mi is az a programozási nyelv, mit láttunk eddig (HTML+CSS)? Az eddig tanult két nyelven is mondhatni programoztunk, de ez nem a klasszikus értelemben

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

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

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

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

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

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

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

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

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

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

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

Programozási alapfogalmak

Programozási alapfogalmak Programozási alapfogalmak Alapfogalmak Algoritmus: lépések sorozata, amellyel egy feladat kiindulásától a megoldásáig jutunk. Program: Az algoritmus megfogalmazása a számítógépek, vagy a fordító programok

Részletesebben

3 A C programozási nyelv szintaktikai egységei

3 A C programozási nyelv szintaktikai egységei 3 A C programozási nyelv szintaktikai egységei 3.1 Azonosítók Betűk és számjegyek sorozata, betűvel vagy _ (aláhúzás) karakterrel kell kezdődnie. A nagy- és kisbetűk különbözőek. Az azonosítók tetszőleges

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

Algoritmus fogalma. Mi az algoritmus? HF: Al Khwarizmi. Egy adott probléma megoldásának leírása elemi lépések sorozatával

Algoritmus fogalma. Mi az algoritmus? HF: Al Khwarizmi. Egy adott probléma megoldásának leírása elemi lépések sorozatával Algoritmusok Algoritmus fogalma Mi az algoritmus? Egy adott probléma megoldásának leírása elemi lépések sorozatával HF: Al Khwarizmi Követelmények Véges: nem állhat végtelen sok lépésből Teljes: teljes

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

Nézzük tovább a lexikai egységeket!

Nézzük tovább a lexikai egységeket! Utasítások Osztályozásuk: Nézzük tovább a lexikai egységeket! - értékadó utasítások - ugró utasítások[vezérlő utasítások (a program vezérlési szerkezetét adják meg)] - feltételes utasítások - ciklusszervező

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

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

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

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

Aritmetikai kifejezések lengyelformára hozása

Aritmetikai kifejezések lengyelformára hozása Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási

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

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

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

ALGORITMUSOK, ALGORITMUS-LEÍRÓ ESZKÖZÖK

ALGORITMUSOK, ALGORITMUS-LEÍRÓ ESZKÖZÖK ALGORITMUSOK, ALGORITMUS-LEÍRÓ ESZKÖZÖK 1. ALGORITMUS FOGALMA ÉS JELLEMZŐI Az algortmus egyértelműen végreajtató tevékenység-, vagy utasítássorozat, amely véges sok lépés után befejeződk. 1.1 Fajtá: -

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

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

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

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

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

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

A KÓDOLÁS TECHNIKAI ELVEI

A KÓDOLÁS TECHNIKAI ELVEI 1. A KÓDOLÁS FOGALMA A KÓDOLÁS TECHNIKAI ELVEI A kódolás a forrásnyelvű (pl. C#, Java) program elkészítését jelenti. Ha a megoldást gondosan megterveztük, akkor ez általában már csak rutinszerű, technikai

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

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája A programozás alapjai 1 Kifejezések 5. előadás Híradástechnikai Tanszék Operandusok Literál Azonosító Kifejezés Kifejezések Precedencia Melyik hajtódik először végre? Asszociativitás Balról jobbra vagy

Részletesebben

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

B I T M A N B I v: T 2014.02.15 M A N Műszaki informatika 2. Ea: IPA Az Informatikai Problémamegoldás Alapjai B I v: T 2014.02.15 M A N 1/223 Probléma megoldás (erről szól a tananyag) 2/223 Ezt kell megtanulni! De nem így! Miért? Probléma

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

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

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0621 ÉRETTSÉGI VIZSGA 2007. május 25. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

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

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

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása 1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június

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

Negatív alapú számrendszerek

Negatív alapú számrendszerek 2015. március 4. Negatív számok Legyen b > 1 egy adott egész szám. Ekkor bármely N 0 egész szám egyértelműen felírható N = m a k b k k=1 alakban, ahol 0 a k < b egész szám. Negatív számok Legyen b > 1

Részletesebben

Programozás alapjai 1.Gy: Algoritmizálás P R O

Programozás alapjai 1.Gy: Algoritmizálás P R O Programozás alapjai 1.Gy: Algoritmizálás. P R O A L A G 1/13 B ITv: MAN 2018.09.20 Algoritmus leírási módszerek Szöveges leírás Pszeudokód Folyamatábra Struktogram Jackson diagram 2/13 Folyamatábra elemek

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

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

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

Programozás alapjai. 7. előadás 7. előadás Wagner György Általános Informatikai Tanszék Jótanács (1) Tipikus hiba a feladat elkészítésekor: Jótanács (2) Szintén tipikus hiba: a file-ból való törléskor, illetve a file-nak új elemmel való

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 ALGORITMUSRÓL. (bevezetés a programozáshoz)

AZ ALGORITMUSRÓL. (bevezetés a programozáshoz) AZ ALGORITMUSRÓL (bevezetés a programozáshoz) A bemutató készítéséhez felhasznált tartalmi forrás: (Sz)ámítástechnika 1.4, Budapest, Kvassay Jenő Műszaki Szakközépiskola és TIKETT Nyomdaipari Kft. 1994.

Részletesebben

Gyakorló feladatok az 1. nagy zárthelyire

Gyakorló feladatok az 1. nagy zárthelyire Gyakorló feladatok az 1. nagy zárthelyire 2012. október 7. 1. Egyszerű, bevezető feladatok 1. Kérjen be a felhasználótól egy sugarat. Írja ki az adott sugarú kör kerületét illetve területét! (Elegendő

Részletesebben

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Az informatika története (ebből a fejezetből csak a félkövér betűstílussal szedett részek kellenek) 1. Számítástechnika

Részletesebben

Web-programozó Web-programozó

Web-programozó Web-programozó Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,

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

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

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 3. gyakorlat Operátorok, típuskonverziók, matematikai függvények Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24,

Részletesebben

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis I. ALAPALGORITMUSOK 1. Prímszámvizsgálat Adott egy n természetes szám. Írjunk algoritmust, amely eldönti, hogy prímszám-e vagy sem! Egy számról úgy fogjuk eldönteni, hogy prímszám-e, hogy megvizsgáljuk,

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

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

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

Informatika tagozat osztályozóvizsga követelményei

Informatika tagozat osztályozóvizsga követelményei Tartalom 9. évfolyam... 1 10. évfolyam... 4 11. évfolyam... 6 12. évfolyam... 8 9. évfolyam Az informatikai eszközök használata Az egészséges munkakörnyezet megteremtése Neumann elvű számítógép felépítése

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

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

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

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19. Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19. Programkészítés Megrendelői igények begyűjtése Megoldás megtervezése (algoritmuskészítés)

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Történeti áttekintés

Történeti áttekintés Történeti áttekintés Előzmények A számítástechnika kezdetén elterjedt (egyeduralkodó) volt a mérnökpult használata, a gép és az ember kommunikációja bináris nyelven zajlott. A gépi kódú programozás nem

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

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

Programozási tételek. Dr. Iványi Péter

Programozási tételek. Dr. Iványi Péter Programozási tételek Dr. Iványi Péter 1 Programozási tételek A programozási tételek olyan általános algoritmusok, melyekkel programozás során gyakran találkozunk. Az algoritmusok általában számsorozatokkal,

Részletesebben

1. gyakorlat

1. gyakorlat Követelményrendszer Bevezetés a programozásba I. 1. gyakorlat Surányi Márton PPKE-ITK 2010.09.07. Követelményrendszer Követelményrendszer A gyakorlatokon a részvétel kötelező! Két nagyzárthelyi Röpzárthelyik

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

PROGRAMOZÁSI NYELVEK (GYAKORLAT)

PROGRAMOZÁSI NYELVEK (GYAKORLAT) PROGRAMOZÁSI NYELVEK (GYAKORLAT) A következő részben olyan szabványos algoritmusokkal fogunk foglalkozni, amelyek segítségével a későbbiekben sok hétköznapi problémát meg tudunk majd oldani. MUNKAHELYZET-

Részletesebben

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 3. gyakorlat PLanG: 2011.09.27. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok

Részletesebben

Hardver leíró nyelvek (HDL)

Hardver leíró nyelvek (HDL) Hardver leíró nyelvek (HDL) Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.

Részletesebben

Kifejezések. Kozsik Tamás. December 11, 2016

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},

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

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0721 ÉRETTSÉGI VIZSGA 2007. október 24. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

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

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek. Tartalom 1. előadás programozás során használt nyelvek A specifikáció Algoritmikus nyelvek A problémamegoldás lépései 3/41 (miből?, mit?) specifikáció (mivel?, hogyan?) adat- + algoritmus-leírás 3. (a

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 1 I. HALmAZOk 1. JELÖLÉSEk A halmaz fogalmát tulajdonságait gyakran használjuk a matematikában. A halmazt nem definiáljuk, ezt alapfogalomnak tekintjük. Ez nem szokatlan, hiszen

Részletesebben

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás Első félév A modul időtartama: A modul célja: A modul tartalma: 8 foglalkozás, alkalmanként

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

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

Programozási nyelvek a közoktatásban alapfogalmak II. előadás Programozási nyelvek a közoktatásban alapfogalmak II. előadás Szintaxis, szemantika BNF szintaxisgráf absztrakt értelmező axiomatikus (elő- és utófeltétel) Pap Gáborné. Szlávi Péter, Zsakó László: Programozási

Részletesebben

Széchenyi István Szakképző Iskola

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

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

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus Ítéletkalkulus Logikai alapfogalmak, m veletek, formalizálás, logikai ekvivalencia, teljes diszjunktív normálforma, tautológia. 1. Bevezet A matematikai logikában az állításoknak nem a tényleges jelentésével,

Részletesebben

A program valamilyen feladat, probléma megoldására készül, általános szerkezete: INPUT ALGORITMUS OTUPUT

A program valamilyen feladat, probléma megoldására készül, általános szerkezete: INPUT ALGORITMUS OTUPUT ELMÉLET I. Algoritmizálás A program valamilyen feladat, probléma megoldására készül, általános szerkezete: Ismert adatok Ismert adatok Keresett (kezdetben ismeretlen) adatok Más szavakkal: INPUT ALGORITMUS

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