Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

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

Download "Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs"

Átírás

1 Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet szeptember 21. Sergyán (OE NIK) Programozás I szeptember / 49

2 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

3 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

4 Programozási tételek A programozási tételek jól megválasztott, egyszerű feladatok megoldásai Segítségükkel a gyakorlatban előforduló feladatok jelentős része megoldható Helyességük egyszerűen bizonyítható Használatuk célszerű, hiszen (mások által is) jól áttekinthető kódot eredményeznek Egy lehetséges csoportosításuk Egyszerű programozási tételek Egy sorozathoz egy értéket rendelő feladatok Összetett programozási tételek Egy sorozathoz egy sorozatot rendelő feladatok Egy sorozathoz több sorozatot rendelő feladatok Több sorozathoz egy sorozatot rendelő feladatok Sergyán (OE NIK) Programozás I szeptember / 49

5 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

6 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

7 Sorozatszámítás Típusfeladatok 1 Egy osztály N darab tanulójának osztályzata alapján adjuk meg az osztály átlagát! 2 Egy M elemű betűsorozat betűit fűzzük össze egyetlen szöveg típusú változóba! 3 Készítsünk algoritmust, amely egy autóversenyző körönkénti ideje alapján meghatározza a versenyző egy kör megtételéhez szükséges átlagidejét! 4 A Balaton mentén K darab madarász végzett megfigyeléseket. Mindegyik megadta, hogy milyen madarakat látott. Készítsünk algoritmust, amely a megfigyelések alapján megadja a Balatonon előforduló madárfajokat! 5 Adjuk meg az első N darab pozitív egész szám szorzatát! Sergyán (OE NIK) Programozás I szeptember / 49

8 Sorozatszámítás Feladat Egy tömb minden eleme között akarunk egy adott műveletet (pl. összeadás) elvégezni. Sergyán (OE NIK) Programozás I szeptember / 49

9 Sorozatszámítás Feladat Egy tömb minden eleme között akarunk egy adott műveletet (pl. összeadás) elvégezni. Eredményül a tömbelemek között az adott művelet által szolgáltatott értéket adjuk vissza. Sergyán (OE NIK) Programozás I szeptember / 49

10 Sorozatszámítás Feladat Egy tömb minden eleme között akarunk egy adott műveletet (pl. összeadás) elvégezni. Eredményül a tömbelemek között az adott művelet által szolgáltatott értéket adjuk vissza. Megvalósítás Létrehozunk egy változót, amiben a műveleti eredményt tároljuk el. Ennek kezdeti értéket is adunk. Sergyán (OE NIK) Programozás I szeptember / 49

11 Sorozatszámítás Feladat Egy tömb minden eleme között akarunk egy adott műveletet (pl. összeadás) elvégezni. Eredményül a tömbelemek között az adott művelet által szolgáltatott értéket adjuk vissza. Megvalósítás Létrehozunk egy változót, amiben a műveleti eredményt tároljuk el. Ennek kezdeti értéket is adunk. Számlálós ciklussal végigmegyünk a tömb összes elemén. Sergyán (OE NIK) Programozás I szeptember / 49

12 Sorozatszámítás Feladat Egy tömb minden eleme között akarunk egy adott műveletet (pl. összeadás) elvégezni. Eredményül a tömbelemek között az adott művelet által szolgáltatott értéket adjuk vissza. Megvalósítás Létrehozunk egy változót, amiben a műveleti eredményt tároljuk el. Ennek kezdeti értéket is adunk. Számlálós ciklussal végigmegyünk a tömb összes elemén. A műveleti eredményhez az adott művelettel hozzákapcsoljuk (pl. hozzáadjuk) az aktuális tömbelemet. Sergyán (OE NIK) Programozás I szeptember / 49

13 Sorozatszámítás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete) Kimenet: érték T Sergyán (OE NIK) Programozás I szeptember / 49

14 Sorozatszámítás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete) Kimenet: érték T függvény Sorozatszámítás(x, n) Sergyán (OE NIK) Programozás I szeptember / 49

15 Sorozatszámítás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete) Kimenet: érték T függvény Sorozatszámítás(x, n) érték érték 0 Sergyán (OE NIK) Programozás I szeptember / 49

16 Sorozatszámítás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete) Kimenet: érték T függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig Sergyán (OE NIK) Programozás I szeptember / 49

17 Sorozatszámítás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete) Kimenet: érték T függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] Sergyán (OE NIK) Programozás I szeptember / 49

18 Sorozatszámítás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete) Kimenet: érték T függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték Sergyán (OE NIK) Programozás I szeptember / 49

19 Sorozatszámítás Megjegyzések Adatok sorozatához egy értéket rendelő függvényt helyettesít Minden olyan esetben használható, ha ezt a függvényt felbonthatjuk értékpárokon kiszámított műveletek ( ) sorozatára Az induláskor használt nullértéket értelemszerűen a kérdéses művelet (esetleg a feladat) alapján kell megválasztani összegzés faktoriális elemek uniója érték { } érték érték + x[i] érték érték x[i] érték érték x[i] Sergyán (OE NIK) Programozás I szeptember / 49

20 Sorozatszámítás Pszeudokód függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték Futási idő A műveletet minden ciklusban egyszer végezzük el és az eredményt eltároljuk az érték-ben. Sergyán (OE NIK) Programozás I szeptember / 49

21 Sorozatszámítás Pszeudokód függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték Futási idő A műveletet minden ciklusban egyszer végezzük el és az eredményt eltároljuk az érték-ben. A futási idő n-nel arányos: T (n) = O (n) Sergyán (OE NIK) Programozás I szeptember / 49

22 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: Sergyán (OE NIK) Programozás I szeptember / 49

23 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: Kimenet érték : 0 Sergyán (OE NIK) Programozás I szeptember / 49

24 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 0 Sergyán (OE NIK) Programozás I szeptember / 49

25 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 3 Sergyán (OE NIK) Programozás I szeptember / 49

26 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 3 Sergyán (OE NIK) Programozás I szeptember / 49

27 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 9 Sergyán (OE NIK) Programozás I szeptember / 49

28 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 9 Sergyán (OE NIK) Programozás I szeptember / 49

29 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 10 Sergyán (OE NIK) Programozás I szeptember / 49

30 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 10 Sergyán (OE NIK) Programozás I szeptember / 49

31 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 18 Sergyán (OE NIK) Programozás I szeptember / 49

32 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 18 Sergyán (OE NIK) Programozás I szeptember / 49

33 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: i Kimenet érték : 22 Sergyán (OE NIK) Programozás I szeptember / 49

34 Sorozatszámítás Példa Adjuk össze egy tömb elemeit. függvény Sorozatszámítás(x, n) érték érték 0 ciklus i 1-től n-ig érték érték x[i] vissza érték x: Kimenet érték : 22 Sergyán (OE NIK) Programozás I szeptember / 49

35 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

36 Eldöntés Típusfeladatok 1 Döntsük el egy szóról a hónapnevek sorozata alapján, hogy egy hónap neve-e! 2 Döntsük el egy tanuló év végi osztályzata alapján, hogy kitűnő tanuló-e! 3 Júniusban minden nap délben megmértük, hogy a Balaton Siófoknál hány fokos. Döntsük el a mérések alapján, hogy a víz hőfoka folyamatosan emelkedett-e! 4 Döntsük el egy számról, hogy prímszám-e! Sergyán (OE NIK) Programozás I szeptember / 49

37 Eldöntés Feladat El akarjuk dönteni, hogy egy tömbben (x) van-e legalább egy adott tulajdonságú (P) elem. Sergyán (OE NIK) Programozás I szeptember / 49

38 Eldöntés Feladat El akarjuk dönteni, hogy egy tömbben (x) van-e legalább egy adott tulajdonságú (P) elem. Eredményül egy logikai értéket adunk vissza, mely pontosan akkor igaz, ha találtunk legalább egy P tulajdonságú elemet az x-ben. Sergyán (OE NIK) Programozás I szeptember / 49

39 Eldöntés Feladat El akarjuk dönteni, hogy egy tömbben (x) van-e legalább egy adott tulajdonságú (P) elem. Eredményül egy logikai értéket adunk vissza, mely pontosan akkor igaz, ha találtunk legalább egy P tulajdonságú elemet az x-ben. Megvalósítás A tömböt bejárjuk az elejétől a vége felé haladva. Sergyán (OE NIK) Programozás I szeptember / 49

40 Eldöntés Feladat El akarjuk dönteni, hogy egy tömbben (x) van-e legalább egy adott tulajdonságú (P) elem. Eredményül egy logikai értéket adunk vissza, mely pontosan akkor igaz, ha találtunk legalább egy P tulajdonságú elemet az x-ben. Megvalósítás A tömböt bejárjuk az elejétől a vége felé haladva. A bejárást akkor hagyjuk abba, ha Sergyán (OE NIK) Programozás I szeptember / 49

41 Eldöntés Feladat El akarjuk dönteni, hogy egy tömbben (x) van-e legalább egy adott tulajdonságú (P) elem. Eredményül egy logikai értéket adunk vissza, mely pontosan akkor igaz, ha találtunk legalább egy P tulajdonságú elemet az x-ben. Megvalósítás A tömböt bejárjuk az elejétől a vége felé haladva. A bejárást akkor hagyjuk abba, ha végigmentünk az összes elemen és nem találtunk egyetlen P tulajdonságú elemet sem; Sergyán (OE NIK) Programozás I szeptember / 49

42 Eldöntés Feladat El akarjuk dönteni, hogy egy tömbben (x) van-e legalább egy adott tulajdonságú (P) elem. Eredményül egy logikai értéket adunk vissza, mely pontosan akkor igaz, ha találtunk legalább egy P tulajdonságú elemet az x-ben. Megvalósítás A tömböt bejárjuk az elejétől a vége felé haladva. A bejárást akkor hagyjuk abba, ha végigmentünk az összes elemen és nem találtunk egyetlen P tulajdonságú elemet sem; ha az aktuális elem P tulajdonságú. Sergyán (OE NIK) Programozás I szeptember / 49

43 Eldöntés Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai Sergyán (OE NIK) Programozás I szeptember / 49

44 Eldöntés Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai függvény Eldöntés(x, n, P) Sergyán (OE NIK) Programozás I szeptember / 49

45 Eldöntés Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai függvény Eldöntés(x, n, P) i 1 Sergyán (OE NIK) Programozás I szeptember / 49

46 Eldöntés Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) Sergyán (OE NIK) Programozás I szeptember / 49

47 Eldöntés Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 Sergyán (OE NIK) Programozás I szeptember / 49

48 Eldöntés Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) Sergyán (OE NIK) Programozás I szeptember / 49

49 Eldöntés Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van Sergyán (OE NIK) Programozás I szeptember / 49

50 Eldöntés Pszeudokód függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van Futási idő A P tulajdonság függvényt legalább egyszer és legfeljebb n-szer értékeljük ki. Sergyán (OE NIK) Programozás I szeptember / 49

51 Eldöntés Pszeudokód függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van Futási idő A P tulajdonság függvényt legalább egyszer és legfeljebb n-szer értékeljük ki. Az index növeléshez legrosszabb esetben n-szer kerül a vezérlés. Sergyán (OE NIK) Programozás I szeptember / 49

52 Eldöntés Pszeudokód függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van Futási idő A P tulajdonság függvényt legalább egyszer és legfeljebb n-szer értékeljük ki. Az index növeléshez legrosszabb esetben n-szer kerül a vezérlés. A futási idő: T (n) = O (n) Sergyán (OE NIK) Programozás I szeptember / 49

53 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: Sergyán (OE NIK) Programozás I szeptember / 49

54 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

55 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

56 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

57 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

58 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

59 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

60 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

61 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Sergyán (OE NIK) Programozás I szeptember / 49

62 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: i Kimenet van : igaz Sergyán (OE NIK) Programozás I szeptember / 49

63 Eldöntés Feladat Van-e páros szám a tömbben? függvény Eldöntés(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i n) vissza van x: Kimenet van : igaz Sergyán (OE NIK) Programozás I szeptember / 49

64 Eldöntés Megjegyzések A P tulajdonság helyes megválasztásával a tétel sokféle szituációban alkalmazható. A minden elem P tulajdonságú feladatot egyszerűen visszavezethetjük az eldöntésre a P tulajdonság tagadásával. A sorozatszámításnál megismert módszerrel ellentétben ez az algoritmus az első P tulajdonságú elem megtalálása után már nem folytatja a keresést. Sergyán (OE NIK) Programozás I szeptember / 49

65 Eldöntés: minden elem P tulajdonságú-e? Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: van logikai függvény Eldöntés Minden(x, n, P) i 1 ciklus amíg (i n) P(x[i]) i i + 1 van (i > n) vissza van Sergyán (OE NIK) Programozás I szeptember / 49

66 Prímteszt Pszeudokód Bemenet: N egész (N 2) Kimenet: pr ím logikai 1: függvény PrímTeszt(N) 2: i 2 3: ciklus amíg (i N) Osztója(i, N) 4: i i + 1 5: 6: prím (i > N) 7: vissza pr ím 8: Sergyán (OE NIK) Programozás I szeptember / 49

67 Növekvő rendezettség vizsgálat Pszeudokód Bemenet: x T tömb, n egész; ahol T összehasonĺıtható Kimenet: rendezett logikai 1: függvény Rendezett E(x, n) 2: i 1 3: ciklus amíg (i n 1) (x[i] x[i + 1]) 4: i i + 1 5: 6: rendezett (i > n 1) 7: vissza rendezett 8: Sergyán (OE NIK) Programozás I szeptember / 49

68 Növekvő rendezettség vizsgálat Példa x: i i + 1 Sergyán (OE NIK) Programozás I szeptember / 49

69 Növekvő rendezettség vizsgálat Példa x: i i + 1 Sergyán (OE NIK) Programozás I szeptember / 49

70 Növekvő rendezettség vizsgálat Példa x: i i + 1 Sergyán (OE NIK) Programozás I szeptember / 49

71 Növekvő rendezettség vizsgálat Példa x: i i + 1 Sergyán (OE NIK) Programozás I szeptember / 49

72 Növekvő rendezettség vizsgálat Példa x: i i + 1 Sergyán (OE NIK) Programozás I szeptember / 49

73 Növekvő rendezettség vizsgálat Példa x: Kimenet rendezett : igaz i Sergyán (OE NIK) Programozás I szeptember / 49

74 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

75 Kiválasztás Típusfeladatok 1 Ismerjük egy hónap nevét. A hónapnevek sorozata alapján mondjuk meg a hónap sorszámát! 2 Adjuk meg egy egynél nagyobb természetes szám legkisebb, 1-től különböző osztóját! 3 A naptárban található névnapok alapján adjuk meg a legjobb barátunk névnapját! Sergyán (OE NIK) Programozás I szeptember / 49

76 Kiválasztás Pszeudokód Bemenet: x T tömb, n egész, P logikai Kimenet: idx egész 1: függvény Kiválasztás(x, n, P) 2: i 1 3: ciklus amíg P (x[i]) 4: i i + 1 5: 6: idx i 7: vissza idx 8: Sergyán (OE NIK) Programozás I szeptember / 49

77 Kiválasztás Megjegyzések Az eldöntéssel ellentétben ez visszaadja az első P tulajdonságú elem sorszámát A tétel feltételezi, hogy biztosan van legalább egy P tulajdonságú elem Sorszám helyett visszaadhatjuk az elem értékét is, de célszerűbb a sorszám használata (ez alapján az elem is egyszerűen meghatározható) Az algoritmus működése és futási ideje hasonló az eldöntéshez Sergyán (OE NIK) Programozás I szeptember / 49

78 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

79 Lineáris keresés Típusfeladatok 1 Ismerjük egy üzlet egy havi forgalmát: minden napra megadjuk, hogy mennyi volt a bevétel és mennyi a kiadás. Adjunk meg egy olyan napot ha van, amelyik nem volt nyereséges! 2 A Budapest-Nagykanizsa vasúti menetrend alapján két adott állomáshoz adjunk meg egy olyan vonatot, amellyel el lehet jutni átszállás nélkül az egyikről a másikra! 3 Egy tetszőleges (nem 1) természetes számnak adjuk meg egy osztóját, ami nem az 1 és nem is önmaga! Sergyán (OE NIK) Programozás I szeptember / 49

80 Lineáris keresés Pszeudokód Bemenet: x T tömb, n egész, P logikai Kimenet: van logikai, idx egész 1: függvény LineárisKeresés(x, n, P) 2: i 1 3: ciklus amíg (i n) P (x[i]) 4: i i + 1 5: 6: van (i n) 7: ha van akkor 8: idx i 9: vissza (van, idx) 10: különben 11: vissza van 12: elágazás vége 13: Sergyán (OE NIK) Programozás I szeptember / 49

81 Páros elem keresése Példa x: i Sergyán (OE NIK) Programozás I szeptember / 49

82 Páros elem keresése Példa x: i Sergyán (OE NIK) Programozás I szeptember / 49

83 Páros elem keresése Példa x: Kimenet van : igaz, idx : 3 i Sergyán (OE NIK) Programozás I szeptember / 49

84 Lineáris keresés Megjegyzések Tekinthető az eldöntés és a kiválasztás tétel ötvözetének is: választ ad arra, hogy van-e P tulajdonságú elem a sorozatban, és ha van, akkor visszaadja a sorszámát is. Értelemszerűen nem feltételezi, hogy biztosan van P tulajdonságú elem a sorozatban. Ha nincs, akkor a van értéke hamis, ilyenkor az idx változó nem kap értéket. Az algoritmus működése és futási ideje hasonló az eldöntéshez. Sergyán (OE NIK) Programozás I szeptember / 49

85 Adott érték keresése Pszeudokód Bemenet: x T tömb, n egész, érték T Kimenet: van logikai, idx egész 1: függvény LineárisKeresés(x, n, érték) 2: i 1 3: ciklus amíg (i n) (x[i] érték) 4: i i + 1 5: 6: van (i n) 7: ha van akkor 8: idx i 9: vissza (van, idx) 10: különben 11: vissza van 12: elágazás vége 13: Sergyán (OE NIK) Programozás I szeptember / 49

86 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

87 Megszámlálás Típusfeladatok 1 Családok létszáma, illetve jövedelme alapján állapítsuk meg, hogy hány család él a létminimum alatt! 2 Egy futóverseny időeredményei alapján határozzuk meg, hogy a versenyzők hány százaléka teljesítette az olimpiai induláshoz szükséges szintet! 3 Adjuk meg egy szöveg magánhangzóinak számát! Sergyán (OE NIK) Programozás I szeptember / 49

88 Megszámlálás Feladat Egy tömbben (x) szeretnénk az adott tulajdonságú (P) elemek számát meghatározni. Sergyán (OE NIK) Programozás I szeptember / 49

89 Megszámlálás Feladat Egy tömbben (x) szeretnénk az adott tulajdonságú (P) elemek számát meghatározni. Kimenetként a x tömb P tulajdonságú elemeinek számát adjuk vissza. Sergyán (OE NIK) Programozás I szeptember / 49

90 Megszámlálás Feladat Egy tömbben (x) szeretnénk az adott tulajdonságú (P) elemek számát meghatározni. Kimenetként a x tömb P tulajdonságú elemeinek számát adjuk vissza. Megvalósítás Az x tömb minden elemét meg kell vizsgálni, hogy P tulajdonságú-e. Emiatt számlálós ciklussal bejárjuk az egész tömböt. Sergyán (OE NIK) Programozás I szeptember / 49

91 Megszámlálás Feladat Egy tömbben (x) szeretnénk az adott tulajdonságú (P) elemek számát meghatározni. Kimenetként a x tömb P tulajdonságú elemeinek számát adjuk vissza. Megvalósítás Az x tömb minden elemét meg kell vizsgálni, hogy P tulajdonságú-e. Emiatt számlálós ciklussal bejárjuk az egész tömböt. Ha az aktuális tömbelem (x[i]) P tulajdonságú, akkor egy számláló (db) értékét eggyel növeljük. Sergyán (OE NIK) Programozás I szeptember / 49

92 Megszámlálás Feladat Egy tömbben (x) szeretnénk az adott tulajdonságú (P) elemek számát meghatározni. Kimenetként a x tömb P tulajdonságú elemeinek számát adjuk vissza. Megvalósítás Az x tömb minden elemét meg kell vizsgálni, hogy P tulajdonságú-e. Emiatt számlálós ciklussal bejárjuk az egész tömböt. Ha az aktuális tömbelem (x[i]) P tulajdonságú, akkor egy számláló (db) értékét eggyel növeljük. A db számlálónak kezdetben nullának kell lennie. Sergyán (OE NIK) Programozás I szeptember / 49

93 Megszámlálás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: db egész (darabszám) Sergyán (OE NIK) Programozás I szeptember / 49

94 Megszámlálás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: db egész (darabszám) függvény Megszámlálás(x, n, P) Sergyán (OE NIK) Programozás I szeptember / 49

95 Megszámlálás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: db egész (darabszám) függvény Megszámlálás(x, n, P) db 0 Sergyán (OE NIK) Programozás I szeptember / 49

96 Megszámlálás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: db egész (darabszám) függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig Sergyán (OE NIK) Programozás I szeptember / 49

97 Megszámlálás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: db egész (darabszám) függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor elágazás vége Sergyán (OE NIK) Programozás I szeptember / 49

98 Megszámlálás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: db egész (darabszám) függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége Sergyán (OE NIK) Programozás I szeptember / 49

99 Megszámlálás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete), P logikai (tulajdonság) Kimenet: db egész (darabszám) függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db Sergyán (OE NIK) Programozás I szeptember / 49

100 Megszámlálás Pszeudokód függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db Futási idő A P tulajdonság teljesülését minden elemre meg kell vizsgálni. Sergyán (OE NIK) Programozás I szeptember / 49

101 Megszámlálás Pszeudokód függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db Futási idő A P tulajdonság teljesülését minden elemre meg kell vizsgálni. Csak akkor növeljük db értékét, ha a P (x[i]) igaz volt. Sergyán (OE NIK) Programozás I szeptember / 49

102 Megszámlálás Pszeudokód függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db Futási idő A P tulajdonság teljesülését minden elemre meg kell vizsgálni. Csak akkor növeljük db értékét, ha a P (x[i]) igaz volt. A futási idő arányos a tömb méretével: T (n) = O (n) Sergyán (OE NIK) Programozás I szeptember / 49

103 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: Sergyán (OE NIK) Programozás I szeptember / 49

104 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: Kimenet db : 0 Sergyán (OE NIK) Programozás I szeptember / 49

105 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 0 Sergyán (OE NIK) Programozás I szeptember / 49

106 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 0 Sergyán (OE NIK) Programozás I szeptember / 49

107 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 0 Sergyán (OE NIK) Programozás I szeptember / 49

108 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 0 Sergyán (OE NIK) Programozás I szeptember / 49

109 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 1 Sergyán (OE NIK) Programozás I szeptember / 49

110 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 1 Sergyán (OE NIK) Programozás I szeptember / 49

111 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 1 Sergyán (OE NIK) Programozás I szeptember / 49

112 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 1 Sergyán (OE NIK) Programozás I szeptember / 49

113 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 1 Sergyán (OE NIK) Programozás I szeptember / 49

114 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 2 Sergyán (OE NIK) Programozás I szeptember / 49

115 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 2 Sergyán (OE NIK) Programozás I szeptember / 49

116 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 2 Sergyán (OE NIK) Programozás I szeptember / 49

117 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: i Kimenet db : 3 Sergyán (OE NIK) Programozás I szeptember / 49

118 Megszámlálás Példa Határozzuk meg, hogy hány darab páros elem van a tömbben. függvény Megszámlálás(x, n, P) db 0 ciklus i 1-től n-ig ha P (x[i]) akkor db db + 1 elágazás vége vissza db x: Kimenet db : 3 Sergyán (OE NIK) Programozás I szeptember / 49

119 Megszámlálás Megjegyzések Amennyiben nincs P tulajdonságú elem a sorozatban, akkor értelemszerűen 0 kerül a db változóba. Valójában egy sorozatszámítás, amely minden P tulajdonságú elem esetén 1-et hozzáad a db értékéhez. Sergyán (OE NIK) Programozás I szeptember / 49

120 Tartalom 1 Programozási tételek 2 Egyszerű programozási tételek Sorozatszámítás Eldöntés Kiválasztás Lineáris keresés Megszámlálás Maximumkiválasztás Sergyán (OE NIK) Programozás I szeptember / 49

121 Maximumkiválasztás Típusfeladatok 1 Egy kórházban megmérték minden beteg lázát. Adjuk meg, hogy ki a leglázasabb! 2 Egy család havi bevételei és kiadásai alapján adjuk meg, hogy melyik hónapban tudtak a legtöbbet megtakarítani! 3 Egy osztály tanulóinak nevei alapján adjuk meg a névsorban legelső tanulót! Sergyán (OE NIK) Programozás I szeptember / 49

122 Maximumkiválasztás Feladat Adott egy tömb (x), melynek elemei összehasonĺıthatóak. Sergyán (OE NIK) Programozás I szeptember / 49

123 Maximumkiválasztás Feladat Adott egy tömb (x), melynek elemei összehasonĺıthatóak. Keressük meg, hogy melyik elem a legnagyobb a tömbben. Sergyán (OE NIK) Programozás I szeptember / 49

124 Maximumkiválasztás Feladat Adott egy tömb (x), melynek elemei összehasonĺıthatóak. Keressük meg, hogy melyik elem a legnagyobb a tömbben. Megvalósítás Tekintsük először a tömb első elemét a legnagyobbnak. Sergyán (OE NIK) Programozás I szeptember / 49

125 Maximumkiválasztás Feladat Adott egy tömb (x), melynek elemei összehasonĺıthatóak. Keressük meg, hogy melyik elem a legnagyobb a tömbben. Megvalósítás Tekintsük először a tömb első elemét a legnagyobbnak. A legnagyobb elem indexét tároljuk el a max változóban. (Ez kezdetben 1.) Sergyán (OE NIK) Programozás I szeptember / 49

126 Maximumkiválasztás Feladat Adott egy tömb (x), melynek elemei összehasonĺıthatóak. Keressük meg, hogy melyik elem a legnagyobb a tömbben. Megvalósítás Tekintsük először a tömb első elemét a legnagyobbnak. A legnagyobb elem indexét tároljuk el a max változóban. (Ez kezdetben 1.) Egy számlálós ciklussal járjuk be a tömböt a második elemtől az utolsóig. Sergyán (OE NIK) Programozás I szeptember / 49

127 Maximumkiválasztás Feladat Adott egy tömb (x), melynek elemei összehasonĺıthatóak. Keressük meg, hogy melyik elem a legnagyobb a tömbben. Megvalósítás Tekintsük először a tömb első elemét a legnagyobbnak. A legnagyobb elem indexét tároljuk el a max változóban. (Ez kezdetben 1.) Egy számlálós ciklussal járjuk be a tömböt a második elemtől az utolsóig. Ha az aktuális tömbelem (x[i]) nagyobb, mint az eddig legnagyobb elem (x[max]), akkor tekintsük az aktuális elemet a legnagyobbnak, azaz az aktuális elem indexek legyen a max. Sergyán (OE NIK) Programozás I szeptember / 49

128 Maximumkiválasztás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete); ahol T összehasonĺıtható Kimenet: max egész Sergyán (OE NIK) Programozás I szeptember / 49

129 Maximumkiválasztás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete); ahol T összehasonĺıtható Kimenet: max egész függvény Maximumkiválasztás(x, n) Sergyán (OE NIK) Programozás I szeptember / 49

130 Maximumkiválasztás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete); ahol T összehasonĺıtható Kimenet: max egész függvény Maximumkiválasztás(x, n) max 1 Sergyán (OE NIK) Programozás I szeptember / 49

131 Maximumkiválasztás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete); ahol T összehasonĺıtható Kimenet: max egész függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig Sergyán (OE NIK) Programozás I szeptember / 49

132 Maximumkiválasztás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete); ahol T összehasonĺıtható Kimenet: max egész függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor elágazás vége Sergyán (OE NIK) Programozás I szeptember / 49

133 Maximumkiválasztás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete); ahol T összehasonĺıtható Kimenet: max egész függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége Sergyán (OE NIK) Programozás I szeptember / 49

134 Maximumkiválasztás Pszeudokód Bemenet: x T tömb, n egész (tömb mérete); ahol T összehasonĺıtható Kimenet: max egész függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max Sergyán (OE NIK) Programozás I szeptember / 49

135 Maximumkiválasztás Pszeudokód függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max Futási idő Az összehasonĺıtást (n 1)-szer végezzük el. Sergyán (OE NIK) Programozás I szeptember / 49

136 Maximumkiválasztás Pszeudokód függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max Futási idő Az összehasonĺıtást (n 1)-szer végezzük el. Az értékadáshoz legfeljebb (n 1)-szer, de lehet, hogy egyszer sem kerül a vezérlés. Sergyán (OE NIK) Programozás I szeptember / 49

137 Maximumkiválasztás Pszeudokód függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max Futási idő Az összehasonĺıtást (n 1)-szer végezzük el. Az értékadáshoz legfeljebb (n 1)-szer, de lehet, hogy egyszer sem kerül a vezérlés. A futási idő arányos a tömb méretével: T (n) = O (n) Sergyán (OE NIK) Programozás I szeptember / 49

138 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: Sergyán (OE NIK) Programozás I szeptember / 49

139 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max Sergyán (OE NIK) Programozás I szeptember / 49

140 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

141 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

142 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

143 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

144 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

145 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

146 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

147 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

148 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

149 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

150 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

151 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max i Sergyán (OE NIK) Programozás I szeptember / 49

152 Maximumkiválasztás Példa Válasszuk ki a tömb legnagyobb elemét. függvény Maximumkiválasztás(x, n) max 1 ciklus i 2-től n-ig ha x[i] > x[max] akkor max i elágazás vége vissza max x: max Sergyán (OE NIK) Programozás I szeptember / 49

153 Maximumkiválasztás Megjegyzések Reláció megfordításával értelemszerűen minimumkiválasztás lesz a tétel célja. Index helyett visszaadhatjuk az elem értékét is, de célszerűbb az index használata (ez alapján az elem is azonnal meghatározható). Feltételezzük, hogy legalább egy elem létezik a tömbben. Több maximális elem esetén az elsőt adja vissza. Sergyán (OE NIK) Programozás I szeptember / 49

154 Gyakorló feladat Kirándulás során 100 méterenként feljegyeztük a tengerszint feletti magasság értékeket. 1 Volt a kirándulás során olyan szakasz, amikor sík terepen haladtunk? 2 Hány olyan száz méteres szakasz volt, amikor emelkedőn haladtunk? 3 Mekkora volt a kirándulás során a teljes szintemelkedés? (És a szintcsökkenés?) 4 Hányszor 100 méteres volt az a leghosszabb szakasz, ahol folyamatosan emelkedőn haladtunk? 5 Mekkora volt a 100 méter alatt megtett legnagyobb szintemelkedés? Sergyán (OE NIK) Programozás I szeptember / 49

155 Felhasznált irodalom Szlávi Péter, Zsakó László: Módszeres programozás: Programozási tételek (Mikrológia 19). ELTE TTK, 2002 Sergyán (OE NIK) Programozás I szeptember / 49

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember

Részletesebben

Egyszerű programozási tételek

Egyszerű programozási tételek Egyszerű programozási tételek 2. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 15. Sergyán (OE NIK) AAO 02 2011. szeptember 15.

Részletesebben

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Programozás I. 3. előadás Tömbök a C#-ban Metódusok C#-ban Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia

Részletesebben

Összetett programozási tételek

Összetett programozási tételek Összetett programozási tételek 3. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 19. Sergyán (OE NIK) AAO 03 2011. szeptember

Részletesebben

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

Algoritmizálás, adatmodellezés tanítása 1. előadás Algoritmizálás, adatmodellezés 1. előadás Az algoritmus fogalma végrehajtható (van hozzá végre-hajtó) lépésenként hajtható végre a lépések maguk is algoritmusok pontosan definiált, adott végre-hajtási

Részletesebben

Programozási tételek. PPT 2007/2008 tavasz.

Programozási tételek. PPT 2007/2008 tavasz. Programozási tételek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Strukturált programozás paradigma Alapvető programozási tételek Összetett programozási tételek Programozási

Részletesebben

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum. Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi

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

ELEMI PROGRAMOZÁSI TÉTELEK

ELEMI PROGRAMOZÁSI TÉTELEK ELEMI PROGRAMOZÁSI TÉTELEK 1. FELADATMEGOLDÁS PROGRAMOZÁSI TÉTELEKKEL 1.1 A programozási tétel fogalma A programozási tételek típusalgoritmusok, amelyek alkalmazásával garantáltan helyes megoldást adhatunk

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

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24. Rendezések 8. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. október 24. Sergyán (OE NIK) AAO 08 2011. október 24. 1 / 1 Felhasznált irodalom

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

Informatikai tehetséggondozás:

Informatikai tehetséggondozás: Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: Elemi programozási tételek 1 TÁMOP-4.2.3.-12/1/KONV-2012-0018 Feladataink egy jelentős csoportjában egyetlen bemenő sorozat alapján

Részletesebben

Objektum Orientált Programozás VII.

Objektum Orientált Programozás VII. Objektum Orientált Programozás VII. Összetett programozási tételek Programozási tételek összeépítése Feladatok ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk

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

PROGRAMOZÁSI TÉTELEK

PROGRAMOZÁSI TÉTELEK PROGRAMOZÁSI TÉTELEK Összegzés tétele Adott egy N elemű számsorozat: A(N). Számoljuk ki az elemek összegét! S:=0 Ciklus I=1-től N-ig S:=S+A(I) Megszámlálás tétele Adott egy N elemű sorozat és egy - a sorozat

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

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

Objektumorientált Programozás VI.

Objektumorientált Programozás VI. Objektumorientált Programozás Metódusok Paraméterek átadása Programozási tételek Feladatok VI. ÓE-NIK, 2011 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ás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK, Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás OE-NIK, 2013 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk

Részletesebben

Rekurzív algoritmusok

Rekurzív algoritmusok Rekurzív algoritmusok 11. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. november 14. Sergyán (OE NIK) AAO 11 2011. november 14. 1 / 32 Rekurzív

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

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

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

Részletesebben

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

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

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

Algoritmizálás, adatmodellezés tanítása 2. előadás Algoritmizálás, adatmodellezés tanítása 2. előadás Programozási tételek Mi az, hogy programozási tétel? Típusfeladat általános megoldása. Sorozat érték Sorozat sorozat Sorozat sorozatok Sorozatok sorozat

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 3. gyakorlat Tömbök, programozási tételek Surányi Márton PPKE-ITK 2010.09.21. ZH! PlanG-ból papír alapú zárthelyit írunk el reláthatólag október 5-én! Tömbök Tömbök Eddig egy-egy

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

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Rekurzió és iteráció Balrekurzió Ha az eljárás első utasításaként szerepel a rekurzív hívás, akkor a rekurzió lényegében az első nem

Részletesebben

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések) Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),

Részletesebben

Adatbázis rendszerek Gy: Algoritmusok C-ben

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

Részletesebben

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

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

Algoritmizálás, adatmodellezés tanítása 1. előadás Algoritmizálás, adatmodellezés tanítása 1. előadás Specifikáció A specifikáció elemei bemenet mit ismerünk? kimenet mire vagyunk kíváncsiak? előfeltétel mit tudunk az ismertekről? utófeltétel mi az összefüggés

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

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

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

Algoritmizálás és adatmodellezés tanítása 2. előadás Algoritmizálás és adatmodellezés tanítása 2. előadás Tartalom Összegzés vektorra, mátrixra Megszámolás vektorra, mátrixra Maximum-kiválasztás vektorra, mátrixra Eldöntés vektorra, mátrixra Kiválasztás

Részletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

Az összetett programozási tételek is egy tőről fakadnak

Az összetett programozási tételek is egy tőről fakadnak Az összetett programozási tételek is egy tőről fakadnak Zsakó László 1, Törley Gábor 2, Szlávi Péter 3 1 zsako@caesar.elte.hu, 2 pezsgo@inf.elte.hu, 3 szlavi@elte.hu ELTE IK Absztrakt. A programozás tanulás

Részletesebben

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek Adatbázis és szoftverfejlesztés elmélet Témakör 8. 1. Egy sorozathoz egy érték hozzárendelése Az összegzés tétele Összefoglalás Programozási tételek Adott egy számsorozat. Számoljuk és írassuk ki az elemek

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 9. ÖSSZETETT FELADATOK...111 9.1. ELEMI ALGORITMUSOK ÖSSZEÉPÍTÉSE...111 9.2. ÖSSZEFOGLALÁS...118 9.3. GYAKORLÓ FELADATOK...118

Részletesebben

Haladó rendezések. PPT 2007/2008 tavasz.

Haladó rendezések. PPT 2007/2008 tavasz. Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés

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

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

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

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

Egyszerű programozási tételek

Egyszerű programozási tételek Egyszerű programozási tételek Sorozatszámítás Eljárás Sorozatszámítás(N, X, S) R R 0 Ciklus i 1-től N-ig R R művelet A[i] A : számokat tartalmazó tömb N : A tömb elemszáma R : Művelet eredménye Eldöntés

Részletesebben

Programozás II. előadás

Programozás II. előadás Nem összehasonlító rendezések Nem összehasonlító rendezések Programozás II. előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Programozás II. 2 Rendezés

Részletesebben

Informatikai tehetséggondozás:

Informatikai tehetséggondozás: Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: Elemi programozási tételek 2 TÁMOP-4.2.3.-12/1/KONV-2012-0018 Feladataink egy jelentős csoportjában egyetlen bemenő sorozat alapján

Részletesebben

Sorozat érték típusú programozási tételek

Sorozat érték típusú programozási tételek Sorozat érték típusú programozási tételek A soron következő specifikációk és algoritmusok mind olyan típusfeladatokhoz kötődnek, amik igazán sűrűn előfordulhatnak a gyakorlatban. Meg kell keresni valamit,

Részletesebben

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések

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

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás.  Szénási Sándor. B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0631 ÉRETTSÉGI VIZSGA 2006. 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

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

Algoritmizálás és adatmodellezés tanítása 3. előadás Algoritmizálás és adatmodellezés tanítása 3. előadás Szövegfájl Fájl típus A szövegfájl karakterek sorozata: input fájl Műveletei: nyit, zár, olvas, vége? output fájl Műveletei: nyit, zár, ír Pap Gáborné,

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK ÉRETTSÉGI VIZSGA 2005. május 20. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÉRETTSÉGI VIZSGA Az írásbeli vizsga időtartama: 180 perc JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI MINISZTÉRIUM Megoldási útmutató I.

Részletesebben

Térinformatikai algoritmusok Elemi algoritmusok

Térinformatikai algoritmusok Elemi algoritmusok Cserép Máté 2016. szeptember 14. Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot

Részletesebben

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2

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

Térinformatikai algoritmusok Elemi algoritmusok

Térinformatikai algoritmusok Elemi algoritmusok Cserép Máté Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot oldottuk meg korábban,

Részletesebben

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

Algoritmizálás és adatmodellezés tanítása 6. előadás Algoritmizálás és adatmodellezés tanítása 6. előadás Összetett típusok 1. Rekord 2. Halmaz (+multihalmaz, intervallumhalmaz) 3. Tömb (vektor, mátrix) 4. Szekvenciális file (input, output) Pap Gáborné,

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

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

Programozási tételek feladatok

Programozási tételek feladatok 2016/11/22 03:56 1/6 Programozási tételek feladatok < Programozási feladatok Programozási tételek feladatok Szerző: Sallai ndrás Copyright Sallai ndrás, 2011 Licenc: NU Free Documentation License 1.3 Web:

Részletesebben

Amortizációs költségelemzés

Amortizációs költségelemzés Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük

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

1. beadandó feladat: Programozási tételek alkalmazása. Közös követelmények:

1. beadandó feladat: Programozási tételek alkalmazása. Közös követelmények: 1. beadandó feladat: Programozási tételek alkalmazása Közös követelmények: A feladatokat programozási tételek segítségével kell megoldani. A programozási tételeket a feladatnak megfelelően kell kiválasztani.

Részletesebben

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n). Edényrendezés Tegyük fel, hogy a rendezendő H = {a 1,...,a n } halmaz elemei a [0,1) intervallumba eső valós számok. Vegyünk m db vödröt, V [0],...,V [m 1] és osszuk szét a rendezendő halmaz elemeit a

Részletesebben

Informatikai tehetséggondozás:

Informatikai tehetséggondozás: Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: Összetett programozási tételek 1 TÁMOP-4.2.3.-12/1/KONV Feladataink egy jelentős csoportjában egyetlen bemenő sorozat alapján egy

Részletesebben

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I. Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

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á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

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

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

Részletesebben

Visszalépéses keresés

Visszalépéses keresés Visszalépéses keresés Backtracking előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Alapvető működése Továbbfejlesztési

Részletesebben

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala

Részletesebben

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa: 1. Tétel Az állomány két sort tartalmaz. Az első sorában egy nem nulla természetes szám van, n-el jelöljük (5

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

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

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat 9. Előadás Rendezések A rendezési probléma: Bemenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat Kimenet: a bemenő sorozat olyan (a 1, a 2,,a n ) permutációja, hogy a 1 a 2 a n 2 Rendezések Általánosabban:

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

Objektumorientált Programozás VI.

Objektumorientált Programozás VI. Objektumorientált Programozás VI. Tömb emlékeztető Egyszerű programozási tételek Összetett programozási tételek V 1.0 ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók

Részletesebben

Logika és informatikai alkalmazásai

Logika és informatikai alkalmazásai Logika és informatikai alkalmazásai 2. gyakorlat Németh L. Zoltán http://www.inf.u-szeged.hu/~zlnemeth SZTE, Informatikai Tanszékcsoport 2008 tavasz Irodalom Szükséges elmélet a mai gyakorlathoz Előadás

Részletesebben

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100).

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100). BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - szeptember Informatika írásbeli A versenyzők figyelmébe: 1. Minden tömböt 1-től kezdődően indexelünk. 2. A rácstesztekre (A rész)

Részletesebben

Láncolt listák Témakörök. Lista alapfogalmak

Láncolt listák Témakörök. Lista alapfogalmak Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Lista alapfogalmai Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Speciális láncolt listák Témakörök

Részletesebben

Számelmélet Megoldások

Számelmélet Megoldások Számelmélet Megoldások 1) Egy számtani sorozat második tagja 17, harmadik tagja 1. a) Mekkora az első 150 tag összege? (5 pont) Kiszámoltuk ebben a sorozatban az első 111 tag összegét: 5 863. b) Igaz-e,

Részletesebben

Multihalmaz, intervallumhalmaz

Multihalmaz, intervallumhalmaz Multihalmaz, intervallumhalmaz Halmaz féleségek 1. Halmaz Gyümölcsök: {alma,körte,szilva,barack} 2. Multihalmaz Állatok: {(macska,4),(rigó,2),(galamb,3)} 3. Intervallumhalmaz diszjunkt Óráim: {[8-10],[13-14],[16-20)}

Részletesebben

Algoritmizálás és adatmodellezés 2. előadás

Algoritmizálás és adatmodellezés 2. előadás Algoritmizálás és adatmodellezés 2 előadás Összetett típusok 1 Rekord 2 Halmaz (+multialmaz, intervallumalmaz) 3 Tömb (vektor, mátrix) 4 Szekvenciális fájl (input, output) Pap Gáborné, Zsakó László: Algoritmizálás,

Részletesebben

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás.  Szénási Sándor Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt

Részletesebben

Hatékonyság 1. előadás

Hatékonyság 1. előadás Hatékonyság 1. előadás Mi a hatékonyság Bevezetés A hatékonyság helye a programkészítés folyamatában: csak HELYES programra Erőforrásigény: a felhasználó és a fejlesztő szempontjából A hatékonyság mérése

Részletesebben

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y. Algoritmuselmélet Mélységi keresés és alkalmazásai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 9. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

Részletesebben

Programozási alapismeretek 3. előadás

Programozási alapismeretek 3. előadás Programozási alapismeretek 3. előadás Tartalom Ciklusok specifikáció+ algoritmika +kódolás Egy bevezető példa a tömbhöz A tömb Elágazás helyett tömb Konstans tömbök 2/42 Ciklusok Feladat: Határozzuk meg

Részletesebben

Rekurzió. Működése, programtranszformációk. Programozás II. előadás. Szénási Sándor.

Rekurzió. Működése, programtranszformációk. Programozás II. előadás.   Szénási Sándor. Rekurzió Működése, programtranszformációk előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Rekurzió Rekurzió alapjai Rekurzív

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 07

Algoritmusok és adatszerkezetek gyakorlat 07 Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet

Részletesebben

Programozási tételek. Jegyzet. Összeállította: Faludi Anita 2012.

Programozási tételek. Jegyzet. Összeállította: Faludi Anita 2012. Programozási tételek Jegyzet Összeállította: Faludi Anita 2012. Tartalomjegyzék Bevezetés... 3 Programozási tételek... 4 I. Elemi programozási tételek... 4 1. Sorozatszámítás (összegzés)... 4 2. Eldöntés...

Részletesebben

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió BME MOGI Gépészeti informatika 3. 1. feladat Végezze el a következő feladatokat! Kérjen be számokat 0 végjelig, és határozza meg az átlagukat! A feladat megoldásához írja meg a következő metódusokat! a.

Részletesebben

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

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

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Számelmélet

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Számelmélet MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Számelmélet A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett feladatrészek

Részletesebben

Programozás I. zárthelyi dolgozat

Programozás I. zárthelyi dolgozat Programozás I. zárthelyi dolgozat 2013. november 11. 2-es szint: Laptopot szeretnénk vásárolni, ezért írunk egy programot, amelynek megadjuk a lehetséges laptopok adatait. A laptopok árát, memória méretét

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

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

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

Részletesebben

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