5. Rekurzió és iteráció (Rekurzív programok átírása nemrekurzívvá)
|
|
- Benjámin Pásztor
- 5 évvel ezelőtt
- Látták:
Átírás
1 5. Rekurzió és iteráció (Rekurzív programok átírása nemrekurzívvá) Az elõzõekben megbarátkoztunk a rekurzióval, mint egy problémamegoldási stratégiával, sõt megvizsgáltunk néhány programozási nyelvet a rekurzió szempontjából (mennyire termõtalaja az adott nyelv a rekurzív programoknak). Úgy gondoljuk sokan elvégezték azt a kísérletet, amely a legegyszerûbb rekurzív függvénynek, a faktoriálisnak kétféle (iteratív és rekurzív) megvalósítását hasonlítja össze. Az õ tapasztalataik is minden bizonnyal lesújtóak voltak: már ami a végrehajtási idõ lényeges meghosszabbodását illeti. (A mi tapasztalatainkat az 1. táblázat tartalmazza. Mellékeltük a kétféle nézõpont néhány jellemzõ futási idejét. Már ránézésre is érezhetõ a különbség. N Iteratív Rekurzív másodperc másodperc másodperc másodperc 1. táblázat Lesújtó véleményünk csak erõsödne, ha akármelyik bonyolultabb feladatot végrehajtó iteratív, illetve rekurzív megoldást vetnénk össze. Ezzel azt is elárultuk, hogy némelyik korábban említett feladatra van egyszerû nemrekurzív megoldás. Mielõtt azonban a rekurzió feloldásának lehetõségeirõl, az átírás módjáról esnék szó, érdemes elgondolkodni a futási idõ meghosszabbodásának okairól. Az N!-t kiszámító rekurzív program (N+1)-szer aktivizálja önmagát, ami 2*(N+1) veremmûveletet jelent. Még ha a program érdemi magja és a rekurzió adminisztrálására szolgáló segédtevékenységek aránya nem is volna ilyen kedvezõtlen, akkor is jelentõs többletidõt vinne a programfutásba. (Ugyanez a helyzet természetesen más programnyelvek alkalmazása esetén is fennáll, legfeljebb kisebb idõszinten.) Még elszomorítóbb a kép a Fibonacci-számok rekurzív generálása esetén. Emlékezzünk: az N. Fibonacci-szám kiszámításához a megelõzõ két Fibonacci-számhoz kell nyúlnunk! Nem váratlan, hogy a rekurzív hívások száma meredekebben növekszik, mint tette a faktoriális esetén. Hiszen, ha r(n) jelöli az N. Fibonacci-szám kiszámításához szükséges hívások számát, akkor az algoritmus 31
2 Rekurzió és iteráció alapján magától értetõdõen adódik r(n)-re a képlet: r(n)=r(n-1)+r(n-2)+1. (A +1 a kezdeti hívás miatt szükséges.) Ugyanezt kifejezhetjük a Fibonacci-számok ismeretében is: r(n)=f(n+1)+f(n)+f(n-1)-1. (Itt F(i) az i. Fibonacci-számot jelöli.) Az idõigény növekedését teszi kézzelfoghatóvá a 2. táblázat, valamint a 3. táblázat. N F(N) R(N) Fibonacci-számok: F(0)=0; F(1)=1; F(i)=F(i 1)+F(i 2) Rekurzív hívások száma: r(0)=1, r(1)=1 r(i)=r(i 1)+r(i 2)+1= =F(i+1)+F(i)+F(i 1) 1 F(N) a N, a=(1+ 5)/ táblázat N F(N) Rekurzív Iteratív táblázat 32
3 Rekurzio Az idõ- (s mélyebben belegondolva az adminisztrációval járó hely-) gondokon túl jelentkezõ implementációs nehézségek komolyan vetik föl a kérdést, nem lehet-e a rekurziót feloldani, iterációval helyettesíteni. Reményt ébreszthet bennünk az, hogy pl. az F(N) kiszámításakor esetleg spórolni lehet a már egyszer kiszámított részeredmények újra felhasználásával: az F(N 1)-hez generált F(N 2)-t ismételt számolás nélkül használjuk föl az F(N)-hez is Rekurzív formulával definiált függvények Ha egy rekurzív függvény a következõ formula felhasználásával számolható ki: azaz minden értéke valamely korábban kiszámolható értékbõl számolható, akkor némi memóriafelhasználással elkészíthetõ a rekurziómentes változat, amelyben az egyes függvényértékeknek megfeleltetünk egy F(N) vektort. A rekurzív függvényt kiszámító eljárás: f(n): Ha N<K akkor f:=h(n) különben f:=g(f(n-1),...,f(n-k)) Függvény vége. Az ennek megfelelõ vektoros változat: f(n): Ciklus I=0-tól K-1-ig F(I):=h(I) Ciklus I=K-tól N-ig F(I):=g(F(I-1),...,F(I-K)) f:=f(n) Függvény vége. Megjegyzés: Megállapítható az is, hogy ilyen esetekben nincs szükség N elemû vektorra, hanem csak az utolsó K db értéket kell megjegyezni. (Vegyük észre, hogy ez egy K méretû sor, amelynek hatékony kezelésére ismert megoldások léteznek!) Vagyis így nemcsak idõben lesz optimálisabb a megoldás, hanem a helyigénye is lényegesen csökken. A továbbiakban sem ügyelünk erre az optimalizálásra, az átírás mechanizmusára fektetjük a hangsúlyt! 33
4 Rekurzió és iteráció Alkalmazzuk a módszert néhány korábban vizsgált függvényre! 1. N! kiszámítása Ebben az esetben K=1, h(0)=1, g(f(i 1))=I*F(I 1). Tehát a kapott algoritmus: Fakt(N): F(0):=1 F(I):=I*F(I-1) Fakt:=F(N) Függvény vége. 2. Fibonacci-számok Most K=2, h(0)=0, h(1)=1, g(f(i 1),F(I 2))=F(I 1)+F(I 2). Tehát a nemrekurzív algoritmus: Fib(N): F(0):=0; F(1):=1 Ciklus I=2-tõl N-ig F(I):=F(I-1)+F(I-2) Fib:=F(N) 3. N alatt a K A feladat azért érdekes, mert most nem vektort, hanem mátrixot kell használni a megoldáshoz. B(N,K) kiszámításához B(N 1,K), illetve B(N 1,K 1) értékére van szükség. Ez azt jelenti, hogy minden olyan B(I,J)-re szükségünk lesz, amelyre I<N és J 0 és J I N+K és J K és J I. Ebbõl kezdõértékként kell megadnunk B(I,0) értékeit 1 és N K között, valamint B(I,I) értékeit 1 és K között. Példa (B(4,3) kiszámítása): Binom(N,K): Ciklus I=1-tõl N-K-ig [a Pascal D egyik széle ] B(I,0):=1 Ciklus I=1-tõl K-ig [a Pascal D másik széle ] B(I,I):=1 34
5 Rekurzio Ciklus I=2-tõl N-ig Ciklus J=max(1,I-N+K)-tól min(i-1,k)-ig B(I,J):=B(I-1,J-1)+B(I-1,J) Binom:=B(N,K) 5.2. Jobbrekurzió Gyakran speciális szerkezetû a rekurzív program, s ez megkönnyíti az átírását nemrekurzívvá. A rekurzió nemrekurzív átírását a rekurzív eljárás lokális változói teszik nehézzé. Ha maga az algoritmus olyan szerkezetû, hogy a rekurzív hívás után nincs szükség már az eljárás lokális változóira, akkor a rekurzív hívás minden egyéb változtatás nélkül ciklussá alakítható. Ez a jobbrekurzió (farok-) esete, azaz amikor a rekurzív hívás az eljárás végén található. A paraméterek egyike (X) csak a rekurzió szervezésében játszik szerepet (input paraméter), míg a másik (Y) az eredményt tartalmazza (output paraméter). Az ilyen programok általános szerkezete: Ha p(x,y) akkor RekElj(f(X),Y) vagy Ha p(x,y) akkor RekElj(f(X),Y) Az S(x,y), a p(x,y) és az f(x) x-invariánsok. (Elképzelhető lenne elvileg, hogy f Y-tól is függjön, mi azonban ettől eltekintünk.) Mindkettőnek egyszerű a nemrekurzív változata is: 35
6 X:=f(X) Vagy X:=f(X) A két alapeset összevont változata: Q(X,Y) Ha p(x,y) akkor ; RekElj(f(X),Y) Az iteratívvá írása: Q(X,Y) X:=f(X) Q(X,Y) Nézzünk néhány példát az átírásra! 1. Egy szöveg betûinek kiírása Betûk(X): Ha X nem üres akkor Ki: Elsõ(X) Betûk(Elsõutániak(X)) A ciklust tartalmazó (iteratív) megoldás: Betûk(X): Ciklus amíg X nem üres Ki: Elsõ(X) X:=Elsőutániak(X) Megjegyzés: Az Első és az Elsőutániak függvények a nevük alapján értelemszerû funkcióra szolgálnak. 2. Adott egy rendezett számsorozat és egy X érték; X megtalálható a sorozatban. Határozzuk meg X sorszámát! Az E. és a V. elem között keresünk az A vektorban. Ha a középsõ kisebb a keresettnél, akkor a középsõ mögött kell folytatni a keresést, ha nagyobb, akkor a középsõ elõtt, egyébként pedig megtaláltuk a keresett elemet. (Mivel sem az X, sem az A-tömb nem változhat a keresés során elhagyható a paraméterlistáról.) 36
7 Rekurzió Keresés(E,V, K): K:=(E+V) div 2 Elágazás A(K)<X esetén E:=K+1 A(K)>X esetén V:=K-1 Ha A(K) X akkor Keresés(E,V, K) Vegyük észre, hogy az "absztrakt algoritmus" S eljárása most mindössze a: K:=(E+V) div 2 utasítás, míg a Elágazás A(K)<X esetén E:=K+1 A(K)>X esetén V:=K-1 valósítja meg az f függvényt. Így kapjuk az alábbi iteratív változatot: Keresés(A,X,K,E,V): K:=(E+V) div 2 Ciklus amíg A(K) X Elágazás A(K)<X esetén E:=K+1 A(K)>X esetén V:=K-1 K:=(E+V) div 2 Ez hatékonyabbá tehető programtranszformációk alkalmazásával: Keresés(A,X,K,E,V): Ciklus K:=(E+V) div 2 Elágazás A(K)<X esetén E:=K+1 A(K)>X esetén V:=K-1 amíg A(K) X 5.3. Balrekurzió Bonyolultabb a helyzet akkor, ha a rekurzív hívás az eljárás elején található. Elõször nézzük meg az általános szerkezetét! (A paramétereket két részre bontottuk, X-et csak a rekurzió befejezõdése érdekében változtatjuk, Y pedig ettől független.) 37
8 Rekurzió és iteráció Ha p(x,y) akkor RekElj(f(X),Y) különben T(X,Y) Az eljárások hívásának sorrendjét, paramétereik változását mutatja a 7. ábra. Ez a szerkezet célszerûen mindig olyan feladatra utal, amelynél egy sorozatot fordított sorrendben kell feldolgozni, de a fordított sorrendû bejárás valamilyen oknál fogva nem végezhetõ el közvetlenül. Ekkor az f függvény az X sorozatnak az elsõ elem nélküli részét adja, s így a rekurzív eljárás eggyel kisebb elemszámú sorozattal hívja meg önmagát. Milyen sorozatok rendelkeznek ezzel a tulajdonsággal? Felsorolunk néhányat: a sorozat elemei egy soros állomány rekordjai, a sorozat elemeit láncolt ábrázolással tároljuk és az aktuális elemtõl csak a következõt lehet elérni, az elõzõt nem, a sorozat elemeit egy sor- vagy veremstruktúrában tároljuk, a sorozat elemeit mindig az elõzõ elembõl számítjuk, s a sorozat elõre meg nem állapítható tagjától visszafelé kell kiírni az elemeket, a programozási nyelvünk csak olyan szövegkezelõ függvényeket ismer, amelyek a szöveg elsõ karakterét tudják megadni, illetve az elsõ elhagyásával keletkezett részt. 38
9 Rekurzió Az aktuális részsorozat elõtti elemet kell valahogyan visszakapni. Az átírás feltétele az, hogy az S és a T eljárás nem változtatja meg X értékét. Az S és a T eljárásnak lokális változói egyébként lehetnek, de ezek kezdõértékadásáról nekik maguknak kell gondoskodni! A lényeg tehát, hogy csak a paramétervisszaállításáról kell gondoskodni, hiszen a lokális változókat a rekurzív hívásig még nem használtuk. A sorozat megfordítása azt igényli, hogy az elemeket sorra tároljuk valami olyan adatszerkezetben, amelynél a beírással ellentétes sorrendben is elérhetjük az adatokat. A legegyszerûbb ilyen szerkezet a verem (de egy tömb is használható erre a célra). Ekkor a nemrekurzív változat a következõ lesz (N változó számolja a végrehajtások számát): N:=0 Verembe(X) X:=f(X); N:=N+1 T(X,Y) Ciklus I=1-től N-ig Veremből(X); [ leszálló szakasz] [ felszálló szakasz] Gyakran egy valódi sorozat feldolgozásáról van szó. Speciális esetben az S eljárás csak e sorozat aktuálisan elsõ elemével dolgozik, az f pedig elhagyja az elsõ elemét, s így a ciklus magok egyszerűsődhetnek: N:=0 Verembe(Elsõ(X)) X:=Elsõutániak(X) N:+1 T(X,Y) Verembõl(A) X:=Elejére(A,X) Verembe(X) X:=f(X); N:+1 T(X,Y) Verembõl(A); S(A,Y) Ha a sorozat elemszámát elõre meg tudjuk határozni, akkor az eljárás elsõ két sora így módosul: 39
10 Rekurzió és iteráció N:=elemszám(X) és a ciklusmagban (természetesen) nem kell gondoskodni N növelésérõl. Akkor van lehetõség veremnélküli ciklus alkalmazására, ha az f(x) függvénynek van inverze, azaz az X:=f(X) helyettesítést a rekurzív hívás helye után vissza lehet alakítani. Ha a sorozat elemeit számítani tudjuk az elõzõ, illetve a következõ elembõl, akkor még erre sincs szükség (f(x) adja az X utáni, f inverz(x) az X elõtti elemet): N:=0 X:=f(X); N:=N+1 T(X,Y) X:=f-inverz(X) Nézzünk példákat erre az átírásra is! 1. Egy szöveg kiírása betûnként, de fordítva (azaz hátulról elõre). Fordítva(X): Ha X nem üres akkor Fordítva(Elsõutániak(X)) Ki: Elsõ(X) Most a szöveg típusú változókra csak a fent használt kétféle mûveletet engedjük meg, valamint az elemszám meghatározást. Az átírási elv szerint a sorozat elemeit például egy veremben kell tárolni, majd fordított sorrendben kiírni. Fordítva(X): N:=elemszám(X) Verembe(Elsõ(X)); X:=Elsõutániak(X) Ciklus J=1-tõl N-ig Verembõl(A); Ki: A 2. Írjuk ki egy adott természetes számnál kisebb 2-hatványokat csökkenõ sorrendben! 40
11 Rekurzió A vizsgálandó sorozat elemei a 2-hatványok, a sorozat következõ tagját az aktuális elembõl 2-vel szorzással állíthatjuk elõ. A rekurzív megoldás (hívása, ha M-tõl visszafelé akarjuk kiírni a 2-hatványokat: Hatványok(1,M)): Hatványok(K,M): Ha K M akkor Hatványok(2*K,M); Ki: K A nemrekurzív változatban a sorozat aktuálist megelõzõ elemét 2-vel osztással kapjuk: Hatványok(K,M): N:=0 Ciklus amíg K M K:=2*K; N:=N+1 K:=K/2; Ki: K Végezetül felhívjuk a figyelmet a 2. függelékre, amely a fenti feladatokat megoldó programpárok futási idõit adtuk meg; ezek bizonyítják az iteratív megoldás gyorsabb, hatékonyabb voltát. Mit tehetünk, ha X egy soros állományban található? Ekkor a rekurzív eljárás is egy kicsit másképpen néz ki: Fordítva(X): Ha nem vége(x) akkor Olvas(X,A); Fordítva(X); Ki: A Itt egy A pufferváltozóra van szükségünk a sorozat feldolgozásához, amely a rekurzív eljárásban mindig újra és újra megjelenik. Az Olvas utasítás végzi el az f függvény feladatát és õrzi meg X elsõ elemét a pufferváltozóban. Átírása: Fordítva(X): N:=0 Ciklus amíg nem vége(x) Olvas(X,A); Verembe(A); N:=N+1 Ciklus J=1-tõl N-ig Verembõl(A); Ki: A 41
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
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ó Klasszikus példák Faktoriális n! Fibonacci-számok Fib n A rekurzió lényege: önhivatkozás n * n 1! ha n 0 1 ha n 0 0 ha n 0 1
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ó Klasszikus példák Faktoriális n! n * n 1! ha n 0 1 ha n 0 Fibonacci-számok Fib n 0 ha n 0 1 ha n 1 Fib n 1 Fib n 2 ha n 1 A
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ó Klasszikus példák Faktoriális n! Fibonacci-számok Fib n A rekurzió lényege: önhivatkozás n * n 1! ha n 0 1 ha n 0 0 ha n 0 1
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
Algoritmizálás, adatmodellezés tanítása 11. előadás. (Horváth Gyula előadása alapján)
Algoritmizálás, adatmodellezés tanítása 11. előadás (Horváth Gyula előadása alapján) Rekurzió Klasszikus példák Faktoriális n! Fibonacci-számok Fib n A rekurzió lényege: önhivatkozás n * n 1! ha n 0 1
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
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),
Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Rekurzió. Témakörök. Rekurzió alapelve. Rekurzió alapjai Rekurzív algoritmusok végrehajtása Visszalépéses keresés Programtranszformációk
Rekurzió szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Rekurzió alapjai Rekurzív algoritmusok végrehajtása Visszalépéses keresés Programtranszformációk 2 Rekurzió alapelve
INFORMATIKA javítókulcs 2016
INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.
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.
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
Információs Technológia
Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió
Ö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 Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy
Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj Divide & Conquer (,,Oszd meg és uralkodj ) paradigma Divide: Osszuk fel az adott problémát kisebb problémákra. Conquer: Oldjuk meg a kisebb
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
Kombinatorikai algoritmusok
Kombinatorikai algoritmusok (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Kombinatorikai algoritmusok A kombinatorika: egy véges halmaz elemeinek valamilyen szabály alapján történő csoportosításával,
Kombinatorikai algoritmusok. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Kombinatorikai algoritmusok (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Kombinatorikai algoritmusok A kombinatorika: egy véges halmaz elemeinek valamilyen szabály alapján történő csoportosításával,
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. -
Fibonacci számok. Dinamikus programozással
Fibonacci számok Fibonacci 1202-ben vetette fel a kérdést: hány nyúlpár születik n év múlva, ha feltételezzük, hogy az első hónapban csak egyetlen újszülött nyúl-pár van; minden nyúlpár, amikor szaporodik
Rekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
Feladatmegoldási stratégiák
Kumulatív összegzés Algoritmusok kumulatív összegzés Adott egy N elemű számsorozat, adjuk meg a sorozat azon [a,b] intervallumát, ahol az elemek összege maximális! Bemenet: N N, X N * Kimenet: a,b H *
Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás
Programozás alapjai 6. gyakorlat Futásidő, rekurzió, feladatmegoldás Háziellenőrzés Egészítsd ki úgy a simplemaths.c programot, hogy megfelelően működjön. A program feladata az inputon soronként megadott
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.
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
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
2018, Diszkrét matematika
Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes
Partíció probléma rekurzíómemorizálással
Partíció probléma rekurzíómemorizálással A partíciószám rekurzív algoritmusa Ω(2 n ) műveletet végez, pedig a megoldandó részfeladatatok száma sokkal kisebb O(n 2 ). A probléma, hogy bizonyos már megoldott
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
ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK
ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.
Általános algoritmustervezési módszerek
Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás
Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter
Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot
Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A
2015, Diszkrét matematika
Diszkrét matematika 4. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2015, őszi félév Miről volt szó az elmúlt előadáson? Számtartományok:
A programozás alapjai 1 Rekurzió
A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder
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
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
Informatikai tehetséggondozás:
Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: Rekurzió TÁMOP-4.2.3.-12/1/KONV 1. A faktoriális függvény A rekurzió, mint eszköz felbukkan specifikációs, algoritmikus, implementációs
29. Visszalépéses keresés 1.
29. Visszalépéses keresés 1. A visszalépéses keresés algoritmusa Az eddig megismert algoritmusok bizonyos értelemben nyílegyenesen haladtak elôre. Tudtuk, hogy merre kell mennünk, és minden egyes lépéssel
BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) 1. (5p) Tekintsük a következő alprogramot: Alprogram f(a): Ha a!= 0, akkor visszatérít: a + f(a - 1) különben visszatérít
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli A versenyzők figyelmébe: 1. A tömböket 1-től kezdődően indexeljük. 2. A rácstesztekre
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
Adatszerkezetek 1. Dr. Iványi Péter
Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja
A C# programozási nyelv alapjai
A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet
Algoritmusok és adatszerkezetek I. 1. előadás
Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási
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
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é,
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
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
Programozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
Hatékonyság 2. előadás
Hatékonyság 2. előadás Alapelv: a tárolt elemek száma vagy egy elemének mérete kevesebb legyen! Helyfoglalás=memória (kód+adat) + háttértár (kód+adat) 2.1 Sorozatok hosszcsökkentése 2.1.1 Sorozat kiküszöbölése
A 2008/2009 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában
Oktatási Hivatal A 2008/2009 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása INFORMATIKÁBÓL II. (programozás) kategóriában Kérjük a tisztelt tanár kollégákat, hogy a
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában
Oktatási Hivatal A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása INFORMATIKÁBÓL II. (programozás) kategóriában Kérjük a tisztelt tanár kollégákat, hogy a
Verem Verem mutató 01
A számítástechnikában a verem (stack) egy speciális adatszerkezet, amiben csak kétféle művelet van. A berak (push) egy elemet a verembe rak, a kivesz (pop) egy elemet elvesz a verem tetejéről. Mindig az
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
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban
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:
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:
A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.
Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)
Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában
Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet
7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát
Struktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
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
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
Optimalizációs stratégiák 1.
Optimalizációs stratégiák 1. Nyers erő, Oszd meg és uralkodj, Feljegyzéses, Dinamikus, Mohó 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
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.
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
Számsorozatok (1) First Prev Next Last Go Back Full Screen Close Quit
Számsorozatok (1) First Prev Next Last Go Back Full Screen Close Quit 1. Valós számsorozaton valós számok meghatározott sorrendű végtelen listáját értjük. A hangsúly az egymásután következés rendjén 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
A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex
A sorozat fogalma Definíció. A természetes számok N halmazán értelmezett függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet a valós számok halmaza, valós számsorozatról beszélünk, mígha az
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r
Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }
Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson
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
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 2016/2017 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 A 2016/2017 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 Kérjük a tisztelt tanár kollégákat, hogy a
Algoritmizálás, adatmodellezés tanítása 8. előadás
Algoritmizálás, adatmodellezés tanítása 8. előadás Elágazás és korlátozás A backtrack alkalmas-e optimális megoldás keresésére? Van költség, és a legkisebb költségű megoldást szeretnénk előállítani. Van
Gauss-Seidel iteráció
Közelítő és szimbolikus számítások 5. gyakorlat Iterációs módszerek: Jacobi és Gauss-Seidel iteráció Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 ITERÁCIÓS
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.
Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat
PM-07 p. 1/13 Programozási módszertan Dinamikus programozás: A leghosszabb közös részsorozat Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-07
Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)
Sorozatok I. DEFINÍCIÓ: (Számsorozat) A számsorozat olyan függvény, amelynek értelmezési tartománya a pozitív egész számok halmaza, értékkészlete a valós számok egy részhalmaza. Jelölés: (a n ), {a n }.
REKURZIÓ. Rekurzív: önmagát ismétlő valami (tevékenység, adatszerkezet stb.) Rekurzív függvény: függvény, amely meghívja saját magát.
1. A REKURZIÓ FOGALMA REKURZIÓ Rekurzív: önmagát ismétlő valami (tevékenység, adatszerkezet stb.) Rekurzív függvény: függvény, amely meghívja saját magát. 1.1 Bevezető példák: 1.1.1 Faktoriális Nemrekurzív
Oktatási segédlet 2014
Oktatási segédlet 2014 A kutatás a TÁMOP 4.2.4.A/2-11-1-2012- 0001 azonosító számú Nemzeti Kiválóság Program Hazai hallgatói, illetve kutatói személyi támogatást biztosító rendszer kidolgozása és működtetése
Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
Algoritmuselmélet Hashelés 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 9. előadás
Algoritmusok pszeudókód... 1
Tartalomjegyzék Algoritmusok pszeudókód... 1 Abszolút érték... 1 Hányados ismételt kivonással... 1 Legnagyobb közös osztó... 2 Páros számok szűrése... 2 Palindrom számok... 2 Orosz szorzás... 3 Minimum
Véletlen sorozatok ellenőrzésének módszerei. dolgozat
Eötvös Loránd Tudományegyetem Informatikai Kar Komputeralgebra Tanszék Véletlen sorozatok ellenőrzésének módszerei dolgozat Témavezető: Dr. Iványi Antal Miklós egyetemi tanár Készítette: Potempski Dániel
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
Dinamikus programozás II.
Dinamikus programozás II. Dinamikus programozás stratégiája A dinamikus programozás stratégiája 1. Az [optimális] megoldás szerkezetének tanulmányozása. 2. Részproblémákra és összetevőkre bontás úgy, hogy:
15. A VERSENYRENDEZÉS
15. A VERSENYRENDEZÉS A versenyrendezés (tournament sort) a maximum-kiválasztó rendezések közé tartozik, ugyanis az elemek közül újra és újra kiválasztja (eltávolítja és kiírja) a legnagyobbat. Az eljárás
Algoritmuselmélet 2. előadás
Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés
Gauss elimináció, LU felbontás
Közelítő és szimbolikus számítások 3. gyakorlat Gauss elimináció, LU felbontás Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 EGYENLETRENDSZEREK 1. Egyenletrendszerek
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 3 Orosz szorzás...3 Minimum
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ő
Algoritmusok pszeudókód... 1
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... 2 Minimum