A tényleges mérőszám függ az adat méretétől, illetve a feltétel összetettségétől.
|
|
- Oszkár Szekeres
- 8 évvel ezelőtt
- Látták:
Átírás
1 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. - gyorsabbá tehető - memóriaigénye csökkenthető - programkódja egyszerűbbé tehető. A programok ilyen szempontból történő vizsgálatát hatékonyságvizsgálatnak nevezzük. A hatékonyabbra írás alapfeltétele a program helyes működése, hiszen egy rosszul működő program esetében nincs értelme hatékonyságról beszélni. A hatékonyságvizsgálat már az algoritmuskészítés idején megjelenik, de gyakran az elkészült forráskód hatékonysága is javítható. A hatékonyság vizsgálata több szempontból is fontos, pl. - szűkös erőforrások esetén - költségkímélés céljából - a gyakorlati használhatóság miatt 2. A HATÉKONYSÁGVIZSGÁLAT SZEMPONTJAI 2.1 Végrehajtási idő - Mérése: o a tényleges programfutási idővel. Ez gép, illetve nyelvfüggő lehet! o absztrakt időegységben. Különböző időegységeket rendelhetünk a jellemző műveletekhez: aritmetikai műveletek, értékadás, feltételek kiértékelése. Általában az értékadást, és a feltétel kiértékelést tekintjük időigényes műveletnek. A tényleges mérőszám függ az adat méretétől, illetve a feltétel összetettségétől. Ugyanazon program (tényleges, ill. absztrakt) végrehajtási ideje az egyes futások alkalmával különböző lehet, pl. egy rendezési algoritmus futási ideje általában függ az adatok előrendezettségétől. Ezért beszélhetünk minimális, maximális, ill. átlagos futási időről. 2.2 Helyfoglalás (memóriában, háttértárakon) Két formáját vizsgáljuk: - A program által használt adatok helyfoglalása - A forráskód, illetve a lefordított programkód, futtatható állomány mérete. 1
2 Sokak szerint a helyfoglalás problémája kevésbé lényeges, hiszen memória és háttértár van bőven. Ennek azonban gyakran ellentmond a mindennapok tapasztalata. 2.3 Bonyolultság Fajtái: - Logikailag bonyolult a program, ha a feladat megoldásához speciális ismeretek is szükségesek (pl. grafikában: mátrix-számítás, interpolációk stb.) - Szerkezetileg bonyolult a program, ha sok döntési csomópontot, illetve egymásba ágyazott struktúrát, esetleg többszörös rekurziót tartalmaz. A szerkezeti bonyolultság jól mérhető (pl. a döntési csomópontok száma, egymásba ágyazott struktúrák mélysége) - Adatszerkezetileg bonyolult a program, ha töbszörösen egymásba ágyazott típusdefiníciókat tartalmaz. Fontos tudnunk, hogy a hatékonyság három említett dimenziója általában egymás ellen dolgozik, azaz mindegyik egyszerre nem javítható. Gyakran az időbeli hatékonyság növekedéséért memóriával, vagy bonyolultabb kóddal fizetünk. 3. A HATÉKONYSÁGVIZSGÁLAT SZINTJEI 3.1 Globális hatékonyság A globális hatékonyság növelése az algoritmus hatékonyabbá tételét jelenti, ez tehát valójában a programtervezés része. Egy program tényleges hatékonyságát alapvetően a globális hatékonyság határozza meg. 3.2 Lokális hatékonyság A programkód egyszerű transzformációit jelenti, általában a program működésének megértése nélkül, mechanikusan is elvégezhető. Jelentősége kisebb, mint a globális hatékonyságé, de nem elhanyagolható. A továbbiakban ezért elsősorban a globális hatékonyságot javító módszerekkel foglalkozunk. 2
3 4. A VÉGREHAJTÁSI IDŐ CSÖKKENTÉSE A program végrehajtási idejét lényegében a ciklusok, illetve a rekurzív eljárások határozzák meg. Azok a programsorok, amelyek csak egyszer kerülnek végrehajtásra, nem sokban befolyásolják a program futási idejét. Ezért a legfontosabb feladat a ciklusok végrehajtási idejének a csökkentése, amely történhet - a ciklusmag végrehajtási számának, illetve - a ciklusmag végrehajtási idejének a csökkentésével. 4.1 A ciklusmag végrehajtási számának a csökkentése, módszerek A ciklus által vizsgált sorozat elemszámának a csökkentése Példa: Döntsük el egy pozitív egész számról, hogy prím-e! A megoldást az eldöntés tételének alkalmazásával adjuk meg Megfeleltetés: [m..n]<->[2..n-1] T(I) <-> I osztója N-nek Függvény Prim(N:egész):logikai I:=2 Ciklus amíg (I<=N-1) és nem (I osztója N-nek) I:=I+1 Prim:=(I>N-1) Függvény vége A megoldás időben sokkal hatékonyabbá tehető, ha felismerjük, hogy elég N feléig, sőt N gyökéig vizsgálni. A hatékonyabbra írt megoldás: Függvény Prim(N:egész):logikai I:=2 Ciklus amíg (I*I<=N) és nem (I osztója N-nek) I:=I+1 Prim:=(I*I>N) Függvény vége Megjegyzés: Az I*I <=N feltétel egyenértékű az I <= Gyök(N) feltétellel, de lokálisan hatékonyabb, mert a szorzás gyorsabb művelet, mint a gyökvonás A vizsgált sorozat(ok) speciális tulajdonságainak a kihasználása Gyakran hatékonyabb megoldáshoz vezet, ha kihasználjuk a vizsgált, ill. feldolgozandó sorozat(ok) valamely speciális tulajdonságát, pl. rendezettségét. - Rendezett sorozatban lineáris keresés helyett alkalmazhatjuk a logaritmikus keresést. - Rendezett sorozatok unióját, metszetét az egyszerű unió, metszet algoritmus helyett öszszefuttatással végezhetjük 3
4 Mindkét esetben lényegesen csökken a ciklusok végrehajtásának száma. (A ciklusmagokban minden esetben két-két elem összehasonlítása történik) A bemenő adatok átrendezése a feldolgozás igényeinek megfelelően Gyakoriság szerinti keresés. Ha egy sorozatban többször kell lineárisan keresnünk, akkor javíthatjuk a keresések átlagos végrehajtási idejét, ha a már keresett elemeket a sorozatban előre léptetjük, azaz minden keresés után megcseréljük az előtte lévővel. Sok keresés után a gyakran keresett elemeket így szinte azonnal megtaláljuk Ciklus indexeléssé transzformálása (eldöntés, keresés esetén) - Prímeldöntés feladata: vegyünk fel egy logikai értékeket tartalmazó P vektort, amely a prím sorszámok esetén igaz, egyébként hamis értékeket tartalmaz. (Ezt elvégezhetjük pl. az Eratosztenészi-szita módszerével) Ekkor Prim(N)=P(N). Akkor célszerű alkalmazni, ha egy feladatban sokszor kell a prímeldöntést elvégeznünk. - Tegyük fel, hogy egy osztály tanulóit úgy osztották be, hogy az ABC minden betűjével pontosan egy név kezdődjön, pl. Adorján, Ábel, Bakos, Czipauer stb. Ekkor a tanulók adatait tartalmazó vektorban a név szerinti keresés rendkívül egyszerű: a Nev nevű tanuló sorszáma: Pos(Nev[1],MagyarABC), tehát minden létező név 1 lépésben megtalálható Matematikai összefüggések felhasználása 1. Példa: határozzuk meg két pozitív egész szám legnagyobb közös osztóját! 1. megoldás: elvégezzük a számok prímtényezős felbontását, majd a közös prímtényezőket az előforduló kisebbik hatványon összeszorozzuk. Hatékonysága nem jó, mivel a prímtényezős felbontás hosszadalmas. 2. megoldás: Euklideszi algoritmussal lényegesen csökkenthető a lépések száma Pl DIV 2940 = 5 (Maradék 150) 2940 Div 150 =19 (Maradék 90) 150 Div 90 = 1 (Maradék 60) 90 Div 60 = 1 (Maradék 30) 60 Div 30 = 2 (Maradék 0) Tehát a legnagyobb közös osztó az utolsó nem 0 maradék: Példa: Adjuk össze az egész számokat A és B között. Hatékony megoldás: összegzés tétel helyett alkalmazzuk a számtani sorozat összegképletét. 4
5 4.2 A ciklusmag végrehajtási idejének a csökkentése, módszerek E módszerek lényege: a ciklusmagban lévő időigényes műveleteket gyorsabb műveletekre cseréljük Elágazás indexeléssé transzformálása Például - Betűszámlálás szövegben: 26 irányú elágazás helyett: Inc(DB[C])+1]), karakter típusú index: DB: Tömb[ A.. Z ]:egész - Korosztályok szerinti számlálás: 0-6, 6-14, 14-18, 18-24: 4 irányú elágazás helyett: Inc(Db[Kor[I] div 2+1]), a végén az első 3 rekesz összege adja a 6 évesig terjedő korosztályba tartozók számát, a második 4 rekesz összege a 6-14 évesek számát, stb Kivételes eset kiküszöbölése 1. példa: Keressük egy vektor első T tulajdonságú elemét! Alapmegoldás: lineáris keresés Hatékonyabban: A feladatot megoldhatjuk kiválasztással is, ha az utolsó elem után elhelyezünk egy T tulajdonságú elemet. Ha a kiválasztás a hozzáfűzött elemet adja meg, akkor az eredeti vektorban nincs T tulajdonságú elem. Így egyszerűbb bentmaradási feltételt kell vizsgálni a ciklusban, tehát egy ciklusmag végrehajtási ideje csökken. 2. példa: adott egy M*N-es mátrix, 0, és 1 elemekkel feltöltve. Határozzuk meg, hogy A[I,J]- nek hány egyes szomszédja van! Hatékony megoldás: a mátrixot körbevesszük 0-kal, így nem kell a szélen lévő elemek esetében időigényes vizsgálatokat végeznünk. Két egymásba ágyazott ciklussal összeadjuk az A[I,J]-t körbevevő 3*3-as részmátrix elemeit, majd kivonjuk belőle A[I,J]-t Ciklus szétválasztása Ciklus i:=1-től N-ig Ha I<=K akkor B[I]:=X-A[I] különben B[I]:=X+A[I] Elágazás vége Hatékonyabban: a ciklusban lévő feltétel alapján kettéoszthatjuk az 1..N intervallumot, ezért a ciklus ketté választható úgy, hogy a ciklusmagok már ne tartalmazzanak feltételt. Ciklus i:=1-től K-ig B[I]:=X-A[I] 5
6 Ciklus i:=k+1-től N-ig B[I]:=X+A[I] Adatok előfeldolgozása Feladat: Rendezzük egy mátrix sorait a sorösszeg szerint növekvően! 1. megoldás: pl. minimumkiválasztásos rendezéssel: Ciklus I:=1-től M.Sor-1-ig Ind:=I Ciklus J:=I+1-től M.Sor-ig Ha SorOsszeg(M,J)<SorOsszeg(M,Ind) Akkor Ind:=J Elágazás vége Ha Ind>I akkor SorCsere(M,I,Ind) Hibája, hogy feleslegesen, többször is kiszámolja ugyanazt a sorösszeget! Hatékonyabb megoldás: rendezés előtt meghatározzuk mindegyik sor összegét egy S vektorban, a feltétel így SorOsszeg(M,J)<SorOsszeg(M,Ind) helyett S[J]<S[Ind] lesz. Ekkor a SorCsere mellett az S megfelelő elemeit is cserélni kell! Az adatmozgások számának a csökkentése Példa: Beillesztéses rendezés esetén az elemek cseréje helyett léptetünk Az adatmozgások kiküszöbölése 1. Példa. Kiválogatás: ha a kiválogatott elemekre később nincs szükség, nem tároljuk őket, hanem azonnal feldolgozzuk. 2. Példa: Az előző mátrixos feladat megoldása még hatékonyabbá tehető, ha a sorok cseréjét csak adminisztráljuk, egy mutató tömbben. (Indexvektoros rendezés) Ciklus I:=1-től M.Sor-ig S[I]:=SorOsszeg(M,I) H[I]:=I Cv. 6
7 Ciklus I:=1-től M.Sor-1-ig Ind:=I Ciklus J:=I+1-től M.Sor-ig Ha S(H[J])<S(H[Ind]) Akkor Ind:=J Elágazás vége Ha Ind>I akkor Csere(H[I],H[Ind]) /Csak az indexeket cseréljük! 4.3 Más alapelvű megoldás keresése Gyakran hatékonyabb megoldáshoz jutunk, ha egy feladatot más alapelven kísérelünk megoldani. Példa. - Bin(n,k) : Fakt(N)/(Fakt(K)*(Fakt(N-K)) helyett rekurzív képlettel is megoldható (ld. a rekurziónál) Hatékonysági észrevételek: - Az eredeti képlet csak kis N esetén működik, mert a Fakt függvény gyorsan nő - A képletnek egyszerűsíthető: N*(N-1)* (N-K+1)/Fakt(K)-ra. - A új képlet kiszámításakor a szorzásokat és az osztásokat felváltva és valós típussal célszerű elvégeznünk, emiatt a számítás lassú Hatékonyabb megoldás: (más elven) - Rekurzív függvény gondolata alapján a részeredmények tárolásával hatékony nemrekurzív algoritmus írható. (ld. rekurzió témaköre) 7
8 5. A HELYFOGLALÁS CSÖKKENTÉSE 5.1 Az adatok mennyiségének a csökkentése Az indexes változók (vektor, mátrix) kiküszöbölése Példa: Fibonacci sorozat N. elemének kiszámolása (N>=2 esetén) Függvény Fib(N:egész):egész Változó F:Tömb[1..Max]:egész F[0]:=0 F[1]:=1 Ciklus I:=2-től N-ig F[I]:=F[I-1]+F[I-2] Fib:=F[N] Függvény vége Hatékonyabban: vektor helyett 3 segédváltozóval Függvény Fib(N:egész):egész Változó F0,F1,FI:egész F0:=0 F1:=1 Ciklus I:=2-től N-ig FI:=F0+F1 FI:=F1 F1:=F0 Fib:=FI Függvény vége Adatok speciális tulajdonságainak a kihasználása - Szimmetrikus mátrix esetén elég a mátrix főátló feletti részét, és a főátlót tárolni. (Pl. sorfolytonosan, vektorban. Pl Tárolása vektorban:
9 Ekkor az elem sorszámából ki kell számolnunk, hogy hányadik sor hányadik elem, pl.. 5. sorszámú elem, a -2 a 2. sor 2. eleme. (Kell írnunk egy címkiszámító függvényt, ami az időbeli hatékonyságot rontja) Hasonlóan valósítható meg a háromszögmátrixok tárolása is. (Valamely átló alatt/fölött csupa 0 elemet tartalmazó mátrixok.) - Hézagosan kitöltött struktúrák, pl. olyan mátrix, amelynek csak a főátlójában van 0-tól különböző elem. (Diagonális mátrix) Tárolása: vektorban Adatterületek megosztása Példa. - Szétválogatás helyben, ill. egy vektorban. A T tulajdonságú elemeket a vektor elejére, a nem T tulajdonságúakat a vektor végére tesszük. - Ha egy algoritmus egyszerre két vermet használ, akkor a két verem (statikus megvalósítás) esetén egy vektorban is ábrázolható. Akkor érdemes ezt csinálni, ha az egyik veremből kivett elemet gyakran tesszük át a másik verembe, azaz az összes tárolandó elem száma nagyjából állandó. Lehetséges megoldása: az egyik veremmutató kezdőértéke 0, a másiké N+1, és amikor az egyik nő, akkor a másik csökken. - Egy alsó és egy felső háromszög mátrix tárolása egy négyzetes mátrixban Helytakarékos típusok használata - Nevek tárolása esetén string helyett pl. string[40] - Nemek (illetve bármely két állapotú érték tárolása) esetén szövegkonstans ( férfi, nő ), ill. számkód (1, 2) helyett logikai érték. - Szöveges állományban az ismétlődő szóközök helyett Tab karakter. - Hónapok neve helyett elég a sorszám tárolása. - Számítható adatok elhagyása: pl. egy személyi adatokat tartalmazó vektorban nem kell egyszerre tárolni a születési dátumot, és az életkort (redundancia kiküszöbölése) Természetesen, amennyiben helytakarékosság céljából az eredeti adatot kisebb helyigényű adattal helyettesítjük, meg kell oldanunk a kódolás-dekódolás problémáját, pl. a hónap sorszámából elő kell tudnunk állítani a nevét, és viszont Rekurzió átírása iterációvá A rekurzív algoritmusok gyakran többszörösen hajtanak végre egy-egy számítást, illetve tevékenységet, ezáltal a részeredemények veremben történő tárolása miatt az ilyen algoritmusok rejtett memóriaigénye nagy. Ezt kiküszöbölhetjük, ha átírjuk az algoritmust iteratívvá. 9
10 5.1.6 Dinamikus memóriakezelés A dinamikus memóriakezelés alkalmazásával megoldható, hogy a használt adatok menynyiségével arányos mértékben foglaljuk le a memóriát. Pl. egy dinamikusan megvalósított lista adatszerkezet átlagos memóriaigénye (beleértve a mutatók tárolásához szükséges helyet is) kisebb, mint az ugyanolyan típusú elemeket tároló statikus lista memóriaigénye. 5.2 A programkód méretének a csökkentése A forráskód, ezáltal a futtatható állomány méretének a csökkentése - Többszöri kódleírás helyett alkalmazzunk függvényt. (-> Időben ez kevésbé hatékony; a meghívás és a paraméterátadások miatt). - Adatok előzetes feldolgozása. Ha egy programrészben többször kell ugyanazt a számítást elvégeznünk, akkor előre kiszámítjuk, és a továbbiakban az eredményt tároló változót használjuk fel. A kód méretének csökkentése mellett a végrehajtási időt is csökkenti. - Programkód adattá transzformálása. o A felhasználónak szánt szövegeket, üzeneteket fájlban tárolhatjuk (<-> Időbeli hatékonyság) o Az ábrákat programból történő rajzolása helyett előre megrajzoljuk, fájlban tároljuk. (-> Időben is hatékonyabb) A lefordított kód méretének a csökkentése: - DLL-ek alkalmazása esetén a programhoz dinamikusan (futási időben) szerkesztődnek hozzá bizonyos rutinok, ezzel az EXE mérete csökken. Ugyanazt a DLL állományt több program is használhatja. 6. BONYOLULTSÁG CSÖKKENTÉSE 6.1 Az algoritmus bonyolultságának a csökkentése Szerkezeti bonyolultság csökkentése: a feltételek, ill. struktúrák számának és öszszetettségének a csökkentése. - Kivételes esetek kiküszöbölése. Már tárgyalt módszer. A végrehajtási idő mellett a bonyolultságot is csökkenti. Példa: szavak (azaz, szókezdetek) számlálása esetén kivételes eset az első szó. Megoldás: egy szóköz fűzése a szöveg elejére. (-> Elhagyhatjuk az első karaktert vizsgáló feltételeket) - Funkciók elhagyása. Sokszor a programozási tételekkel megadott megoldás nem a leghatékonyabb, mert ezek nem veszik figyelembe az adott feladat specialitásait. 10
11 Példa: kiválogatás esetén gyakran nem kell tárolnunk az eredményt, csak ki kell íratnunk. Ezzel (az idő, helyfoglalás mellett) bonyolultság szempontjából is hatékonyabb megoldást kapunk, ugyanis nincs külön ciklus a válogatásra, ill. a kiírásra Logikai bonyolultság csökkentése: - Típusabsztrakció. Ha egy algoritmusban valamely részlet visszavezethető valamely speciális adatszerkezet alkalmazására, akkor a logikai bonyolultságot csökkenthetjük. Példa: a Hanoi-tornyai feladatban a tornyok vermeknek felelnek meg, és egy korong áthelyezése egy egyszerű Veremből, ill. Verembe műveletet jelent. 6.2 Az adatszerkezet bonyolultságának a csökkentése - Pl. sok vektor helyett rekordot tartalmazó vektor alkalmazása. - Típusdefiníciók esetén ne alkalmazzunk túlságosan mély egymásba ágyazást! - Típusabsztrakcióval (új típusok bevezetésével) az adatszerkezet bonyolultsága is csökkenthető, hiszen így elrejtjük a programozó elől az adott típus kezelésének a részleteit. 7. LOKÁLIS HATÉKONYSÁG NÖVELÉSE - Gyorsabb adattípusok használata, pl. valós helyett egész. - Helytakarékos típus választása: pl. integer helyett shortint. - Gyorsabb műveletek választása: o Szorzás helyett összeadás: pl. 2*a helyett a+a o Függvényhívás helyett művelet: I<=gyök(n) helyett I*I<=N o Kifejezés egyszerűsítése: pl. ½*a helyett 0.5*a - Nyelv lehetőségeinek alkalmazása: pl. többirányú elágazás helyett érték szerinti elágazás - A programkód egyszerű transzformációi: o Ciklustól független utasítások kiemelése a ciklusból. Példa: Ciklusba írt SetColor(Red) o Elágazás minden ágán szereplő utasítások kiemelése. Ha minden ág ugyanúgy kezdődik (végződik), akkor az ismétlődő sorokat ki lehet emelni az elágazás elé (mögé). o Azonos szerkezetű ciklusok összevonása Jellemzően számlálós ciklussal, a tesztelős ciklus esetében körültekintően kell alkalmazni. o Azonos feltételű elágazások összevonása 11
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észletesebbenProgramozá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észletesebbenAdatbá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észletesebbenHaté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
RészletesebbenHaté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észletesebbenBá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észletesebbenEgyszerű 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észletesebbenProgramozá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észletesebbenAlgoritmusok é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
Részletesebben9. 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észletesebbenInformá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észletesebbenRekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
RészletesebbenRekurzí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
Ö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észletesebbenAlkalmazott 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
RészletesebbenAdatszerkezetek. 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észletesebbenFelvé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észletesebbenREKURZIÓ. 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
RészletesebbenVá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észletesebbenRekurzió. (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észletesebbenAdatszerkezetek Tömb, sor, verem. Dr. Iványi Péter
Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot
RészletesebbenProgramozá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
RészletesebbenProgramozá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észletesebbenRendezé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észletesebbenProgramozá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észletesebbenAlgoritmizá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
RészletesebbenProgramozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
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 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észletesebbenSpeciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
RészletesebbenPá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észletesebbenProgramozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
RészletesebbenBevezeté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észletesebbenAdatszerkezetek 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
RészletesebbenAlgoritmizá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észletesebbenStruktú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
RészletesebbenBevezeté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észletesebbenALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK
ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.
RészletesebbenElő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észletesebbenA C# programozási nyelv alapjai
A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet
RészletesebbenAlgoritmizá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észletesebbenAlgoritmizá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észletesebbenA 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.
RészletesebbenTö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észletesebbenPá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észletesebbenWeb-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észletesebbenPROGRAMOZÁ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észletesebben10. gyakorlat Struktúrák, uniók, típusdefiníciók
10. gyakorlat Struktúrák, uniók, típusdefiníciók Házi - (f0218) Olvass be 5 darab maximum 99 karakter hosszú szót úgy, hogy mindegyiknek pontosan annyi helyet foglalsz, amennyi kell! A sztringeket írasd
RészletesebbenAdatszerkezetek 1. Dr. Iványi Péter
Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk
RészletesebbenVisszalépéses kiválogatás
elépő a tudás közösségébe Informatika szakköri segédanyag Heizlerné akonyi iktória, Horváth Győző, Menyhárt László, Szlávi Péter, Törley Gábor, Zsakó László Szerkesztő: Abonyi-Tóth Andor, Zsakó László
RészletesebbenProgramozá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észletesebbenBevezeté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észletesebbenBrósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.
Számelmélet I. DEFINÍCIÓ: (Osztó, többszörös) Ha egy a szám felírható egy b szám és egy másik egész szám szorzataként, akkor a b számot az a osztójának, az a számot a b többszörösének nevezzük. Megjegyzés:
Részletesebben5. Rekurzió és iteráció (Rekurzív programok átírása nemrekurzívvá)
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
RészletesebbenVá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észletesebbenA 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észletesebbenKé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észletesebbenHaladó 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észletesebbenProgramozá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észletesebbenAlkalmazott 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észletesebbenKö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.
RészletesebbenAdatszerkezetek 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
RészletesebbenÉrdekes informatika feladatok
A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket
RészletesebbenA 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
RészletesebbenGauss-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
RészletesebbenBevezeté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észletesebbenBevezeté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észletesebbenI. 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észletesebbenProgramozá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észletesebbenInformatikai tehetséggondozás:
Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: isszalépéses kiválogatás TÁMOP-4.2.3.-12/1/KON isszalépéses kiválogatás 1. Az összes lehetséges sorrend Sokszor előfordul feladatként,
RészletesebbenA PhysioBank adatmegjelenítő szoftvereinek hatékonysága
A PhysioBank adatmegjelenítő szoftvereinek hatékonysága Kaczur Sándor kaczur@gdf.hu GDF Informatikai Intézet 2012. november 14. Célok, kutatási terv Szabályos EKG-felvétel: P, Q, R, S, T csúcs Anatómiai
RészletesebbenKiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése
Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Dr. Kallós Gábor 2014 2015 1 Az Ordó jelölés Azt mondjuk, hogy az f(n) függvény eleme az Ordó(g(n)) halmaznak, ha van olyan c konstans (c
RészletesebbenAlgoritmizá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észletesebbenNUMERIKUS MÓDSZEREK I. TÉTELEK
NUMERIKUS MÓDSZEREK I. TÉTELEK Szerkesztette: Balogh Tamás 014. január 19. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add el! - Így
RészletesebbenGyakorló feladatok Gyakorló feladatok
Gyakorló feladatok előző foglalkozás összefoglalása, gyakorlató feladatok a feltételes elágazásra, a while ciklusra, és sokminden másra amit eddig tanultunk Változók elnevezése a változók nevét a programozó
RészletesebbenRekurzió. 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észletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 31. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 31. Városok közötti távolság Feladat: két város nevének beolvasása, városok közötti távolság megjelenítése. Kilépés azonos városok
RészletesebbenLá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észletesebben1. 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észletesebbenFelvé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
RészletesebbenInformá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ó
RészletesebbenAlkalmazott 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észletesebbenAlgoritmusok é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
RészletesebbenAz informatika kulcsfogalmai
Az informatika kulcsfogalmai Kulcsfogalmak Melyek azok a fogalmak, amelyek nagyon sok más fogalommal kapcsolatba hozhatók? Melyek azok a fogalmak, amelyek más-más környezetben újra és újra megjelennek?
RészletesebbenInformatikai tehetséggondozás:
Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: isszalépéses keresés TÁMOP-4.2.3.-12/1/KON A visszalépéses keresés (backtrack) a problémamegoldás igen széles területén alkalmazható
RészletesebbenMűveletek mátrixokkal. Kalkulus. 2018/2019 ősz
2018/2019 ősz Elérhetőségek Előadó: (safaro@math.bme.hu) Fogadóóra: hétfő 9-10 (H épület 3. emelet 310-es ajtó) A pontos tárgykövetelmények a www.math.bme.hu/~safaro/kalkulus oldalon találhatóak. A mátrix
RészletesebbenKOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA MATEmATIkA I 6 VI KOmPLEX SZÁmOk 1 A komplex SZÁmOk HALmAZA A komplex számok olyan halmazt alkotnak amelyekben elvégezhető az összeadás és a szorzás azaz két komplex szám összege és szorzata
RészletesebbenA programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai
A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási
RészletesebbenBBTE 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
RészletesebbenA 2011/2012 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 2011/2012 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
RészletesebbenProgramozas 1. Strukturak, mutatok
Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség
RészletesebbenA 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.
RészletesebbenOperá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észletesebbenRendezé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észletesebbenProgramozá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
RészletesebbenRekurzió. (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
RészletesebbenBevezetés a programozásba I.
Elágazás Bevezetés a programozásba I. 2. gyakorlat, tömbök Surányi Márton PPKE-ITK 2010.09.14. Elágazás Elágazás Eddigi programjaink egyszer ek voltak, egy beolvasás (BE: a), esetleg valami m velet (a
RészletesebbenAlgoritmusok 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észletesebbenALGEBRAI KIFEJEZÉSEK, EGYENLETEK
ALGEBRAI KIFEJEZÉSEK, EGYENLETEK AZ ALGEBRAI KIFEJEZÉS FOGALMÁNAK KIALAKÍTÁSA (7-9. OSZTÁLY) Racionális algebrai kifejezés (betűs kifejezés): betűket és számokat a négy alapművelet véges sokszori alkalmazásával
RészletesebbenKupac 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.
RészletesebbenTartalom 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