ELEMI PROGRAMOZÁSI TÉTELEK
|
|
- Boglárka Hajduné
- 9 évvel ezelőtt
- Látták:
Átírás
1 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 a programozási munka során gyakran előforduló, tipikus programozási feladatokra. A programozási tételek nem egyedi feladatokra, hanem feladatosztályokra adnak megoldást, ezért a megfogalmazásuk is általános. Azokat a típusalgoritmusokat tekintjük programozási tételeknek, melyeknek helyessége (matematikai jellegű módszerekkel) bizonyított A programozási tételek megfogalmazásának elemei - Feladatkitűzés: az általános feladat szöveges formában - Specifikáció: az általános feladatban szereplő adatok (intervallumok, függvények, relációk) megadása, elő- és utófeltételek megadása - Algoritmus: az általános specifikációban szereplő adatok segítségével megfogalmazott megoldás. 1.3 A programozási tételek alkalmazásának lépései - Specifikáljuk a konkrét programozási feladatot. - A specifikáció ismeretében eldöntjük, hogy az adott feladat programozási tétellel megoldható-e. - Ha igen, kiválasztjuk a megfelelő programozási tételt. Néha ez többféleképpen is megtehető. - A tételben szereplő általános elemeket megfeleltetjük az aktuális feladat konkrét adatainak. - A megfeleltetés és a tétel általános algoritmusa alapján behelyettesítés módszerével megadjuk az aktuális feladat megoldását. Megfelelő rutin birtokában a tétel általános algoritmusát és a megfeleltetést nem kell leírnunk, egyből a behelyettesítést végezzük el. 1.4 A programozási tételekkel történő feladatmegoldás hatékonysága Programozási tételek alkalmazásával a megoldásunk biztosan helyes, de nem feltétlenül a leghatékonyabb. A tétel alkalmazása után mindig célszerű hatékonyságelemzést végeznünk. 1
2 2. A PROGRAMOZÁSI TÉTELEK CSOPORTOSÍTÁSA A programozási tételek a bemenő és kimenő adatok jellege szerint az alábbi módon csoportosíthatók: - Egy sorozathoz egy értéket rendelő tételek. Ide soroljuk azokat is, amelyek egy sorozathoz néhány (kettő, három) egymással összefüggő értéket rendelnek. (Pl. lineáris keresés.) - Egy sorozathoz egy sorozatot rendelő tételek. Pl. Rendezések, kiválogatás. - Egy sorozathoz több sorozatot rendelő tételek. Pl. szétválogatás - Több sorozathoz egy sorozatot rendelő tételek. Pl. Metszet, unió. 3. EGY SOROZATHOZ EGY ÉRTÉKET RENDELŐ, ELEMI PROGRAMOZÁSI TÉTELEK 3.1 Összegzés tétele Kitűzés Adott egy sorozat, a sorozat elemein értelmezett egy + művelet. Feladat: Határozzuk meg a sorozat elemeinek az összegét! Specifikáció f:[m..n] -> H / A H-n értelmezett egy + művelet / s: H Előfeltétel: m,n, f adott, m<=n Utófeltétel: s n im f (i) / azaz s tartalmazza az f függvény [m..n] intervallum elemeihez rendelt függvényértékeinek az összegét / Megjegyzések: - A sorozat elemeit a lehető legáltalánosabban egy [m..n] egész intervallumon értelmezett függvényként adhatjuk meg. - A H halmaz a sorozat elemeinek a típusa - A + művelet nem csak összeadás lehet, lehet pl. *, vagy logikai AND, OR stb. Ebben az esetben a 0 kezdőérték a műveletre jellemző semleges érték. (Pl. szorzás esetében 1, AND esetében True) 2
3 3.1.3 Algoritmus Eljárás Összegez: s:=0 Ciklus I:=m-től n-ig s:=s+f(i) Példa Feladat: Határozzuk meg két N dimenziós valós elemű vektor skaláris szorzatát! Specifikáció: A,B:Tömb[1..N]:Valós SkalarSzorzat:Valós Ef: A,B adott Uf: SkalarSzor zat N i1 A[i]* B[i] Megfeleltetés: (az összegzés tétel általános elemeivel) m 1 n N f(i) A[i]*B[i] s SkalarSzorzat Algoritmus: Eljárás SkalarSzorzás: SkalarSzorzat:=0; Ciklus I:=1-től N-ig SkalarSzorzat:= SkalarSzorzat + A[i]*B[i] Szürke kiemeléssel láthatóak a behelyettesített kifejezések. Megjegyzés: C alapú programozási nyelvekben a tömbök indexelése 0-val kezdődik. Ennek megfelelően az algoritmusban a ciklus kezdő és végértéke 0-ra és N-1-re módosul. Ez a megjegyzés érvényes a további példákra is. 3.2 Megszámlálás tétele Kitűzés Adott egy sorozat, a sorozat elemein értelmezett egy T tulajdonság. Feladat: Határozzuk meg a sorozat T tulajdonságú elemeinek a számát! 3
4 3.2.2 Specifikáció T:[m..n] -> logikai s: egész Előfeltétel: m,n, T adott, m<=n Utófeltétel: s n 1 T i (i) m / azaz s tartalmazza az [m..n] intervallum azon elemeinek a számát, amelyekhez T igazat rendel / Algoritmus Eljárás Megszamlal: s:=0 Ciklus I:=m-től n-ig Ha T(I) Akkor s:=s+1 Elágazás vége Példa Feladat: Határozzuk meg egy pozitív egész szám valódi osztóinak a számát! Specifikáció: N:egész ValodiOsztoDb:egész Ef: N adott, N>0 Uf: ValodiOsztoDb N Div 2 1 i2 N mod i 0 Megfeleltetés: (A megszámlálás tétel általános elemeivel) m 2 n N Div 2 /elég a szám feléig vizsgálnunk T(i) N mod i=0 / i osztója N-nek s ValodiOsztoDb 4
5 Algoritmus: Eljárás ValodiOsztoSzamol: ValodiOsztoDb:=0; Ciklus I:=2-től N Div 2-ig Ha N mod I=0 akkor ValodiOsztoDb:= ValodiOsztoDb + 1 Elágazás vége Szürke kiemeléssel láthatóak a behelyettesített kifejezések. 3.3 Eldöntés tétele Kitűzés Adott egy sorozat, a sorozat elemein értelmezett egy T tulajdonság. Feladat: Döntsük el, hogy van-e a sorozatban T tulajdonságú elem! Specifikáció T:[m..n] -> logikai L:Logikai Előfeltétel: m,n, T adott, m<=n Utófeltétel: L i [m..n]: T(i) / azaz L igaz, ha létezik () az [m..n] intervallumban olyan elem, amelyhez T igaz értéket rendel / Algoritmus Eljárás Eldontes: i:=m Ciklus amíg (i<=n) és nem(t(i)) i:=i+1 L:=(i<=n) 5
6 3.3.4 Példa Feladat: Adott egy nem üres string. Állapítsuk meg, hogy tartalma palindroma-e, azaz visszafelé olvasva ugyanazt a szöveget kapjuk? (Pl. Géza, kék az ég! ) Megjegyzés: a szöveg előfeldolgozásával (pl. kiválogatás alkalmazásával) elérhető, hogy a stringünk az eredeti tartalomból csak a betűket tartalmazza, szóközök, írásjelek nélkül, nagybetűssé konvertálva. ( GÉZAKÉKAZÉG ) Specifikáció: S:Szöveg Palindroma:logikai Ef: S adott, nem üres, csak az ABC nagybetűit tartalmazza Uf: Palindroma nem( i [1..Hossz(s) Div 2]:S[I] S[Hossz(S) i 1]) / azaz S palindroma, ha az első felében nincs olyan karakter, amely különbözik a stringben hozzá képest szimmetrikusan elhelyezkedő karaktertől / Megfeleltetés: m 1 n Hossz(s) Div 2 T(i) S[I]<>S[Hossz(S)-i+1] L Palindroma Megoldás: Eljárás PalindromaE: i:=1 Ciklus amíg (i<=hossz(s) Div 2) és nem(s[i]<>s[hossz(s)-i+1]) i:=i+1 Palindroma:=(i<= Hossz(S) Div 2) Megjegyzések: - nem(s[i]<>s[hossz(s)-i+1]) helyett hatékonyabb az S[I]=S[Hossz(S)-i+1] feltétel - Hossz(S) Div 2-t célszerű előre kiszámolni, és egy változóban tárolni. 3.4 Kiválasztás tétele Kitűzés Adott egy sorozat, a sorozat elemein értelmezett egy T tulajdonság, és tudjuk, hogy van a sorozatban T tulajdonságú elem. Feladat: Határozzuk meg az első T tulajdonságú elem sorszámát! 6
7 3.4.2 Specifikáció T:[m..n] -> logikai Ind:egész Előfeltétel: m,n, T adott, m<=n, i [m..n]: T(i) / azaz, van olyan elem [m..n]-ben, amelyhez T igazat rendel / Utófeltétel: ind [m..n] és T(Ind) és i [m..ind 1]: nem(t(i)) /azaz az Ind az első (legkisebb) olyan elem az [m..n] intervallumban, amelyhez T igaz értéket rendel / Algoritmus Eljárás Kiválasztás: i:=m Ciklus amíg nem(t(i)) i:=i+1 Ind:=i Példa Feladat: határozzuk meg az A és B pozitív egészek legkisebb közös többszörösét! Specifikáció: A,B:egész Lkkt:egész Ef: A,B adottak, A>0, B>0 Uf: Lkkt=(A és B legkisebb közös többszöröse, azaz a legkisebb olyan egész szám, amely A-nak és B-nek is többszöröse) Mivel mindig létezik a legkisebb közös többszörös, kiválasztás tételt alkalmazunk. Megfeleltetés: m Max(A,B) / a keresést az A, B pár maximumáról indítjuk n A*B /Legrosszabb esetben A*B lesz a LKKT, egyébként n értékét nem használja az algoritmus T(i) (I mod A=0) és (I mod B=0) /I többszöröse A-nak, B- nek Ind Lkkt 7
8 Megoldás: Eljárás LKKTKeres: i:=max(a,b) Ciklus amíg nem( (I mod A=0) és (I mod B=0) ) i:=i+1 Lkkt:=i Megjegyzések: ez a megoldás nem túl hatékony az egyesével történő vizsgálat miatt. Gyorsabb, ha Max(A,B)-vel lépkedünk, azaz, egyből a nagyobb szám többszöröseit vizsgáljuk. (pl. 20 és 45 esetén 45, 90, 135 stb.) 3.5 Lineáris keresés tétele Kitűzés Adott egy sorozat, a sorozat elemein értelmezett egy T tulajdonság. Feladat: Döntsük el, hogy van-e a sorozatban T tulajdonságú elem, és ha van, adjuk meg a sorszámát! Specifikáció T:[m..n] -> logikai L:Logikai Ind:egész Előfeltétel: m,n, T adott, m<=n Utófeltétel: L i [m..n]: T(i) és L ind [ m.. n] és T ( Ind ) és i [ m.. Ind 1] : nem( T ( i)) / azaz L igaz, ha létezik () az [m..n] intervallumban olyan elem, amelyhez T igaz értéket rendel, és ha létezik ilyen, akkor az Ind az első (legkisebb) olyan elem az [m..n] intervallumban, amelyhez T igaz értéket rendel / Algoritmus Eljárás LinKer: i:=m Ciklus amíg (i<=n) és nem(t(i)) i:=i+1 L:=(i<=n) Ha L, akkor Ind:=I 8
9 3.6 Logaritmikus keresés tétele Kitűzés Adott egy sorozat, a sorozat elemein értelmezett egy < reláció. A sorozat elemei növekvően rendezettek az adott reláció szerint. Feladat: Döntsük el, hogy szerepel-e a sorozatban egy megadott K elem, és ha van, adjuk meg a sorszámát! Specifikáció f:[m..n] -> H L:Logikai Ind:egész Előfeltétel: m,n,f, < adott, m<=n, f elemei növekvően rendezettek < reláció szerint Utófeltétel: L i [ m.. n] : f ( i) K és L ind [ m.. n] és f ( Ind ) K A keresés elve A rendezettséget kihasználva keresünk. Először a középső elemmel hasonlítjuk össze a keresett elemet. Ha a keresett elem kisebb, mint a középső elem, akkor a középső elemtől balra lévő elemek között folytatjuk a keresést, ha pedig nagyobb, akkor az attól jobbra lévő elemek között. A keresést ugyanezen az elven folytatjuk, mindaddig meg nem találjuk a keresett elemet, vagy 0 eleműre nem szűkül a keresési intervallum. Utóbbi esetben a keresés eredménytelen Algoritmus Eljárás LogKer: E:=m V:=n L:=Hamis Ciklus amíg (E<=V) és Nem(L) I:=(E+V) Div 2 // Kiválasztjuk a középső elemet Elágazás (f(i)<k) esetén E:=I+1 // A jobb felében folytatjuk (f(i)>k) esetén V:=I-1 // A bal felében folytatjuk (f(i)=k) esetén Ind:=I // L:=Igaz Elágazás vége 9
10 3.6.5 A logaritmikus keresés hatékonysága A logaritmikus keresés sokkal hatékonyabb (gyorsabb), mint a lineáris keresés. Ennek oka a rendezettség kihasználása. N elem esetében a lineáris keresés átlagosan N/2 lépésben végzi el a keresést, a logaritmikus keresés pedig átlagosan log 2 N/2 lépésben. 3.7 Maximum- és minimumkiválasztás tétele Kitűzés Adott egy sorozat, a sorozat elemein értelmezett egy < reláció. Feladat: Határozzuk meg a sorozat legnagyobb (legkisebb) elemét az adott reláció szerint! Specifikáció f:[m..n] -> H / H elemein értelmezett egy < reláció Max:H Ind:egész Előfeltétel: m,n, f adott, m<=n, Utófeltétel: ind [m..n] és max f (Ind) és i [m..n]: (max f (i)) /azaz Ind az [m..n] intervallum azon eleme, amelyben f a maximális értékét, max-ot felveszi / Algoritmus Eljárás MaximumKiválasztás: Ind:=m Ciklus i:=m+1-től n-ig Ha f(i)>f(ind) Akkor Ind:=i Elágazás vége Max:=f(Ind) Megjegyzés: - Fordított reláció esetén az algoritmus a legkisebb elemet határozza meg -> minimumkiválasztás tétele (ez esetben az elnevezéseket is érdemes értelemszerűen megváltoztatni) 10
11 3.7.4 Feladatok - Adott síkbeli pontok közül válasszuk ki az origótól legtávolabb lévő pontot! - Határozzuk meg az A..B egész intervallum elemei közül azt az egész számot, amelynek a legtöbb prímosztója van! (A>0) 11
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.
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
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
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
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,
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
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
Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs
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
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
Ö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,
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),
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
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
Ö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
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
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,
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
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
RENDEZÉSEK, TOVÁBBI PROGRAMOZÁSI TÉTELEK
RENDEZÉSEK, TOVÁBBI PROGRAMOZÁSI TÉTELEK 1. EGY SOROZATHOZ EGY SOROZATOT RENDELŐ TÉTELEK 1.1 Rendezések 1.1.1 Kitűzés Adott egy sorozat, és a sorozat elemein értelmezett egy < reláció. Rendezzük a sorozat
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
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
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
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.
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
Adatszerkezetek II. 10. előadás
Adatszerkezetek II. 10. előadás Kombinatorikai algoritmusok A kombinatorika: egy véges halmaz elemeinek valamilyen szabály alapján történő csoportosításával, kiválasztásával, sorrendbe rakásával foglalkozik
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
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
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:
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
Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1
Halmazok 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 2 A fejezet legfontosabb elemei Halmaz megadási módjai Halmazok közti műveletek (metszet,
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)}
A valós számok halmaza
VA 1 A valós számok halmaza VA 2 A valós számok halmazának axiómarendszere és alapvető tulajdonságai Definíció Az R halmazt a valós számok halmazának nevezzük, ha teljesíti a következő axiómarendszerben
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
Követelmény a 7. évfolyamon félévkor matematikából
Követelmény a 7. évfolyamon félévkor matematikából Gondolkodási és megismerési módszerek Elemek halmazba rendezése több szempont alapján. Halmazok ábrázolása. A nyelv logikai elemeinek helyes használata.
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...
Függvények Megoldások
Függvények Megoldások ) Az ábrán egy ; intervallumon értelmezett függvény grafikonja látható. Válassza ki a felsoroltakból a függvény hozzárendelési szabályát! a) x x b) x x + c) x ( x + ) b) Az x függvény
HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
Programozás Minta programterv a 2. házi feladathoz 1.
Programozás Minta programterv a. házi feladathoz 1. Gregorics Tibor. beadandó/0.feladat 01. január 11. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy szöveges állományban bekezdésekre tördelt szöveg
Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.
HA 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) HA 2 Halmazok HA 3 Megjegyzések A halmaz, az elem és az eleme fogalmakat nem definiáljuk, hanem alapfogalmaknak
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
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,
A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai 1. feladat: Repülők (20 pont) INFORMATIKA II. (programozás) kategória Ismerünk városok közötti repülőjáratokat.
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
Valós függvények tulajdonságai és határérték-számítása
EL 1 Valós függvények tulajdonságai és határérték-számítása Az ebben a részben szereplő függvények értelmezési tartománya legyen R egy részhalmaza. EL 2 Definíció: zérushely Az f:d R függvénynek zérushelye
Algoritmizálás és adatmodellezés tanítása 9. előadás
Algoritmizálás és adatmodellezés tanítása 9. előadás Szöveges típusok (ismétlés) karakter típus szöveg típus szövegfájl típus (input, illetve output szövegfájl) 2018. 01. 2/30 Karakterábrázolás fix kódhossz
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
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é,
1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.
1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata. HLMZOK halmaz axiomatikus fogalom, nincs definíciója. benne van valami a halmazban szintén axiomatikus fogalom,
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
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.
Egyszerű programozási tételek
Egyszerű programozási tételek Sorozatszámítás tétele Például az X tömbben kövek súlyát tároljuk. Ha ki kellene számolni az összsúlyt, akkor az S = f(s, X(i)) helyére S = S + X(i) kell írni. Az f0 tartalmazza
Bevezetés a programozáshoz I. Feladatok
Bevezetés a programozáshoz I. Feladatok 2006. szeptember 15. 1. Alapfogalmak 1.1. példa: Írjuk fel az A B, A C, (A B) C, és A B C halmazok elemeit, ha A = {0, 1}, B = {1, 2, 3}, C = {p, q}! 1.2. példa:
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények 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
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
A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató INFORMTIK II. (programozás) kategória Kérjük a tisztelt tanár kollégákat, hogy a dolgozatokat
Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/
Operációkutatás I. 2017/2018-2. Szegedi Tudományegyetem Informatikai Intézet Számítógépes Optimalizálás Tanszék 9. Előadás Az optimalizálás alapfeladata Keressük f függvény maximumát ahol f : R n R és
Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)
Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben) Felhasználói dokumentáció Feladat: Adjuk meg két N elemű vektor skalárszorzatát! Skalárszorzat : X, Y : N i 1 x i * y i Környezet: IBM
Követelmény az 5. évfolyamon félévkor matematikából
Követelmény az 5. évfolyamon félévkor matematikából Gondolkodási és megismerési módszerek Néhány elem kiválasztása adott szempont szerint. Néhány elem sorba rendezése, az összes lehetséges sorrend felsorolása.
Algoritmizálás, adatmodellezés 1. előadás
Algoritmizálás, adatmodellezés 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az induló élből
A tényleges mérőszám függ az adat méretétől, illetve a feltétel összetettségétől.
HATÉKONYSÁGVIZSGÁLAT 1. A HATÉKONYSÁG FOGALMA A specifikációnak megfelelően elkészített, működőképes programjaink általában sok szempontból még nem tökéletesek. A legtöbb kész program javítható, pl. -
Programozás Minta programterv a 1. házi feladathoz 1.
Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat
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ő
Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!
függvények RE 1 Relációk Függvények függvények RE 2 Definíció Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor
Tartalomjegyzék Algoritmusok - pszeudókód... 1 42
Tartalomjegyzék Algoritmusok - pszeudókód... 1 42 Abszolút érték...1 Hányados ismételt kivonással...1 Legnagyobb közös osztó... 1 2 Páros számok szűrése...2 Palindrom számok...2 Orosz szorzás...3 Minimum
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
RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!
RE 1 Relációk Függvények RE 2 Definíció: Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor azt mondjuk, hogy
6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének
6. Függvények I. Elméleti összefoglaló A függvény fogalma, értelmezési tartomány, képhalmaz, értékkészlet Legyen az A és B halmaz egyike sem üreshalmaz. Ha az A halmaz minden egyes eleméhez hozzárendeljük
Informatikai tehetséggondozás:
Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: Multihalmaz típus TÁMOP-4.2.3.-12/1/KONV Értékhalmaz: az alaphalmaz (amely az Elemtípus és egy darabszám által van meghatározva)
Követelmény a 6. évfolyamon félévkor matematikából
Követelmény a 6. évfolyamon félévkor matematikából Gondolkodási és megismerési módszerek Halmazba rendezés adott tulajdonság alapján, részhalmaz felírása, felismerése. Két véges halmaz közös részének,
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények
MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények 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 megoldásához!
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
Programozási Módszertan definíciók, stb.
Programozási Módszertan definíciók, stb. 1. Bevezetés Egy adat típusát az adat által felvehető lehetséges értékek halmaza (típusérték halmaz, TÉH), és az ezen értelmezett műveletek (típusműveletek) együttesen
14. Mediánok és rendezett minták
14. Mediánok és rendezett minták Kiválasztási probléma Bemenet: Azonos típusú (különböző) elemek H = {a 1,...,a n } halmaza, amelyeken értelmezett egy lineáris rendezési reláció és egy i (1 i n) index.
3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI
3. Fuzzy aritmetika Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 Intervallum-aritmetika 2 Fuzzy intervallumok és fuzzy számok Fuzzy intervallumok LR fuzzy intervallumok
BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai
BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai 1.a. A B B A 2.a. (A B) C A (B C) 3.a. A (A B) A 4.a. I A I 5.a. A (B C) (A B) (A C) 6.a. A A I 1.b. A B B A 2.b. (A B) C A (B C) 3.b. A
Az egyenes egyenlete: 2 pont. Az összevont alak: 1 pont. Melyik ábrán látható e függvény grafikonjának egy részlete?
1. Írja fel annak az egyenesnek az egyenletét, amely áthalad az (1; 3) ponton, és egyik normálvektora a (8; 1) vektor! Az egyenes egyenlete: 2. Végezze el a következő műveleteket, és vonja össze az egynemű
8. Mohó algoritmusok. 8.1. Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete
8. Mohó algoritmusok Optimalizálási probléma megoldására szolgáló algoritmus gyakran olyan lépések sorozatából áll, ahol minden lépésben adott halmazból választhatunk. Sok optimalizálási probléma esetén
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.
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
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
Algoritmusok és adatszerkezetek I. 4. előadás
Algoritmusok és adatszerkezetek I. 4. előadás A lista olyan sorozat, amelyben műveleteket egy kiválasztott, az ún. aktuális elemmel lehet végezni. A lista rendelkezik az alábbi műveletekkel: Üres: Lista
b) Ábrázolja ugyanabban a koordinátarendszerben a g függvényt! (2 pont) c) Oldja meg az ( x ) 2
1) Az ábrán egy ; intervallumon értelmezett függvény grafikonja látható. Válassza ki a felsoroltakból a függvény hozzárendelési szabályát! a) b) c) ( ) ) Határozza meg az 1. feladatban megadott, ; intervallumon
Matlab alapok. Vektorok. Baran Ágnes
Matlab alapok Vektorok Baran Ágnes Vektorok megadása Megkülönbözteti a sor- és oszlopvektorokat Sorvektorok Az a = ( 1.2, 3.1, 4.7, 1.9) vektor megadása elemei felsorolásával: az elemeket vesszővel választjuk
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,
Egyszerű programok készítése... 56 Kifejezések... 57 Bitszintű műveletek... 57 Relációs műveletek... 58
Tartalomjegyzék Algoritmusok - pszeudókód... 1 Abszolút érték... 1 Hányados ismételt kivonással... 1 Legnagyobb közös osztó... 1 Páros számok szűrése... 2 Palindrom számok... 2 Orosz szorzás... 3 Minimum
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
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