Programozási tételek specifikációja
|
|
- Katalin Fazekasné
- 6 évvel ezelőtt
- Látták:
Átírás
1 Programozási tételek specifikációja Alapvető fogalmak és jelölések: H halmaz tetszőleges (véges) halmaz a szokásos halmaz műveletekkel és konstanosokkal (,,,,,,\,, Számosság) logikai értékek halmaza: {Igaz,Hamis} a szokásos műveletekkel (,,,, ), kvantorokkal (, ) és indivíduum változokkal, halmazokkal természetes számok halmaza {0,,...} a szokásos műveletekkel (+,-, *,Div,Mod) egész számok halmaza {.., -, 0,,...} a szokásos műveletekkel (+,-, *,Div,Mod) valós számok halmaza a szokásos műveletekkel (+,-,*,/,^) karakterek halmaza {,,, A,, z, } szövegek halmaza H-Sorozat H-beli elemek -esek ( ), amelyen alapműveletként értelmezzük az i. elem (i {..}) kiválasztását: si:= az S sorozat i. eleme 2, valamint az eleme relációt: x S, ha i: x=s i, és a sorozathossz függvényt, ekkor Hossz(S)= H halmaz H-beli -elemű sorozatok halmaza H * halmaz H-beli véges sorozatok halmaza, azaz H * = (i=0.. ) H i () H * üres sorozat S=() Hossz(S) [x..y] index-intervallum [x..y]:={x,x+,...,y-,y} x,y I[x..y] index-sorozat I[x..y]:=(x,x+,...,y-,y) y-x, ha y x I[x..y]:=(), egyébként F(H,S) függvényhalmaz F(H,S):={ f : f:h S } H-ból S-be képez Rendezés( H) H F(HxH, ) rendezési reláció (infix jelölésű bináris függvény) ha lehet: H helyett H halmaz RendezettHalmaz (H) S H * sorozat RendezettSorozat (S) S H * sorozat HalmazFölsorolás(S) X&Y konkatenációja X és Y sorozatoknak X Y X sorozat részsorozata Y sorozatnak ha a H: a a (reflexív), a,b,c H: a b és b c a c (tranzitív), a,b H: a b és b a a=b (antiszimmetrikus) a,b H: a b vagy b a (teljes) ha h,j H: h j vagy h j (ha H véges maximális, minimális eleme) ha RendezettHalmaz (H) és i [..): s i s i+ ha i,j [..]: i j s i s j X&Y:=(x,...,x,y,...,y M), ahol =Hossz(X) és M=Hossz(Y) x X: y Y: x=y és i,j [..Hossz(X)]: i<j: x i,x j X k,l [..Hossz(Y)]: k<l: (x i=y k és x j=y l) Pl. i H: T(i) logikai kifejezésben az i individuumváltozó, a H az individuumhalmaz. A kifejezést így értjük: létezik olyan H-beli i elem, amelyre teljesül a T predikátum. 2 Vegyük észre a jelölési finomságot : a sorozatot nagybetűvel, de annak valamely elemét kisbetűvel fogjuk jelölni.
2 R\r sorozat r H, R H : HalmazFölsorolás(R) P(R) az R H Permutációhalmaza X,Y a Z felbontása (X,Y,Z sorozatok) T i:h i [..K] H-partícionálása ha r R R\r H - és R=R &(r)&r 2 R\r=R &R 2 ha r R R\r R P(R):={S H : = S=R, > S=s&S és s R és S P(R\s)} ha Z=X&Y x H: (i=..k) T i(x)=igaz és (T i(x) T j(x)=hamis (i j)) Definíció: Az F:H * S * feladat elemenként feldolgozható, x H * x,x x-felbontásra igaz, hogy F(x)&F(x)=F(x). Lemma: Ha az F:H * S * feladat elemenként feldolgozható, akkor f:h S függvény, hogy f(h i)=s i i [..]. 2
3 Tételek szerkezete: bemenet, kimenet, előfeltétel, utófeltétel A függvényként (is) szerepeltetés célja, hogy már ránézésre is kitünjön, mely sémák (absztrakt algoritmusok) melyekkel kombinálódhatnak. Ez később nagy segítségünkre lesz a bonyolultabb feladatok megoldásánál. Megállapodások: A tételeket mint függvényeket is megadjuk (a fejsorban, az ún. szignatúrában), amelynek argumentuma tartalmazza azokat a kellékeket, amelyek a szükséges bemenetei, ill. az értékét, amely halmazba képez. A tétel-függvény paramétereinek sorrendje megegyezik a Be -részben szereplő adatok sorrendjével. A kimenet halmaza megegyezik a Ki -részben felsorolt adatok értékhalmazának direktszorzatával. A sorozatokat gyakorta két adattal írjuk le: a hosszával és az elemeket tartalmazó adatszerkezettel. E jelöléssel hívjuk föl a figyelmet arra, hogy pusztán ilyen szintaktikai természetű dolog (mint a paraméterek, ill. eredményhalmazok száma és mibenléte) is segítségünkre lehet a tételek összeépítésénél. A tétel-függvény szignatúrájának és a Be + Ki -résznek a kapcsolatát segíti értelmezni a 0.-ként említett tétel színezése. Szívesebben adunk meg egy sorozatot H * -beliként (H helyett), mivel a specifikációban legkevésbé így köti meg a kezünket (nem utal a leírás tömbre vagy más fixhosszúságú szerkezetre). Ekkor viszont a sorozat és hossza mint rendszerint megjelenő bemeneti információ kapcsolat nélkül marad; ezt a hiányzó információt kell beilleszteni az előfeltételbe, felhasználva a sorozatokra előredefiniált Hossz függvényt. A tétel-függvényben éppen ezen megfontolásból nem tüntetjük föl a sorozatok elemszámát szimbolizáló paramétereket. 0. Másolás(H *,F(H,S)):S * Be:, X H *, f:h S Ki: Y S * Ef: Hossz(X)= a feladat elemenként feldolgozható az f függvénnyel Hossz(Y)= i [..]: y i=f(x i). Sorozatszámítás(H *,F(H *,H)):H lehetne még Sorozatszámítás(H *,F(H *,H 2)):H 2 Be: Ki: Ef:, X H *, F:H * H S H Hossz(X)= ( f:h H H f 0 H): ( F((x,..,x ))=f(f(x,..,x -),x ) F(())=f 0 h H:f(f 0,h)=h ) S=F(X). Sorozatszámítás(H *,H,F(H H,H)):H lehetne még Sorozatszámítás(H *,S,F(H 2 H,S)):H 2 Be: Ki: Ef: Def:, X H *, f:h H H, f 0 H S H Hossz(X)= h H:f(f 0,h)=h S=F(X) F:H * H F((x,..,x ))=f(f(x,..,x -),x )) F(())=f 0 ) 2. Eldöntés(H *,F(H,L)):L Ki: VA L Ef: Hossz(X)= VA i [..] : T(x i) 3. Kiválasztás(H *,F(H,L)): Ki: SORSZ Ef: Hossz(X)= i [..]: T(x i) SORSZ [..] T(x SORSZ) 3
4 4. (Lineáris) keresés(h *,F(H,L)):L L Ki: VA L, SORSZ Ef: Hossz(X)= VA i [..] : T(x i) VA SORSZ [..] és T(x SORSZ) 5. Megszámolás(H *,F(H,L)): Ki: DB Ef: Hossz(X)= DB = i T ( x i ) 6a. Maximum-kiválasztás(H *,F(H H,L)): (index) Be:, X H *, F(H H,L) Ki: MAXI Ef: Hossz(X)= Rendezés( RendezettHalmaz (H) MAXI [..] i [..]: x MAXI x i 6b. Maximum-kiválasztás(H *,F(H H,L)):H Be:, X H *, F(H H,L) Ki: MAX H Ef: Hossz(X)= Rendezés( RendezettHalmaz (H) MAX X i [..]: MAX x i 7a. Kiválogatás(H *,F(H,L)): * (index-sorozat) Ki: DB, Y * Ef: Hossz(X)= Uf : Uf 2: DB= i T ( x DB= i T ( x i ) i ) Y [..] DB ( T(x yi ) i [..DB] ) HalmazFölsorolás(Y) Y [..] DB ( T(x yi ) i [..DB] ) Y 7b. Kiválogatás(H *,F(H,L)):H * (értéksorozat) Ki: DB, Y H * Ef: Hossz(X)= DB= i T ( x i ) Y H DB Y X T(y i) i [..DB] 8. BelsőRendezés(H *,F(H H,L)):H * Be:, X H *, F(H H,L) Ki: X' H * (X új értéke) Ef: Hossz(X)= Rendezés( X' P(X) RendezettSorozat (X') 4
5 9. IndexesRendezés(H *,F(H H,L)): * (index-sorozat) Be:, X H *, F(H H,L) Ki: F * (felsoroló vektor) Ef: Hossz(X)= Rendezés( X=X' F P((,2,,)) RendezettSorozat (X F) (azaz i,j [..]: (i<j) x fi x fj f i f j) második változat: Be: Ki: Ef:, X H *, F(H H,L) S * (sorrend-vektor) Hossz(X)= Rendezés( X=X' S P((,2,,)) i,j [..]: (i<j) x i x j s i s j 0. Szétválogatás(H *,F i(h,l) (i=..k)):(h * ) K Be: Ki: Ef:, X H *, K, T i:h L (i=..k) DB i, Y i H * (i=..k) Hossz(X)= K 2 T i (i=..k) H partícionálása DB i= Y i H DB i Y i X j [..DB i]: T i(y ij ) (i=..k) j Ti ( x j ) Megjegyzések:. Alapvariációja : indexsorozatokkal történő szétválogatás Szétválogatás(H *,F i(h,l) (i=..k)):( * ) K 2. Kétfelé szétválogatás: (T :=T, T 2:= nem-t) Szétválogatás(H *,F(H,L)):( H * ) 2 a. Külön, két outputsorozatba b. Helyben: elválasztó indextől balra a T-, jobbra a nem-t-tulajdonságúakat. Metszet(H *,H * ):H * Be:, X H *, M, Y H * Ki: DB, Z H * [pontosabban Z H DB, DB min(,m)] 3 Ef: Hossz(X)= HalmazFölsorolás(X) Hossz(Y)=M HalmazFölsorolás(Y) DB = Z H DB HalmazFölsorolás(Z) i xi Y ( z i X z i Y i [..DB] ) 2. Egyesítés(H *,H * ):H * Be:, X H *, M, Y H * Ki: DB, Z H * [pontosabban Z H DB, DB +M] Ef: Hossz(X)= HalmazFölsorolás(X) Hossz(Y)=M HalmazFölsorolás(Y) M DB = + Z H DB HalmazFölsorolás(Z) j y X j ( z i X z i Y i [..DB] ) 3 Ez a megjegyzés a deklaráció szempontjából lehet fontos. 5
6 3. Összefuttatás(H *,H *,F(H H,L)):H * Be: Ki: Ef:, X H *, M, Y H *, F(HxH,L) DB, Z H * [pontosabban Z H DB, DB +M] Rendezés( Hossz(X)= HalmazFölsorolás(X) Hossz(Y)=M HalmazFölsorolás(Y) RendezettSorozat (X) RendezettSorozat (Y) M DB = + Z H DB HalmazFölsorolás(Z) RendezettSorozat (Z) j y X j ( z i X z i Y i [..DB] ) Keresések Új fogalmak: L H * lehetségesek sorozata az eredeti X egy alkalmasan választott rész-sorozata: L X. : H * hossz sorozat hossza (elemszáma) : H * H * szűkítés L H * : (L)=L L > L : H * elemkiválasztás L H * : (L) [..L] Ezen fogalmakkal az általános keresés tétel megfogalmazása: L:=X Ciklus amíg L >0 és nem T(X( (L))) L:= (L) Van:= L >0 Ha Van akkor Sorsz:= (L) ézzük a lineáris keresés tétel újrafogalmazását! L:={x i: i [e..]} (elejétől végig, e: ahol tartunk=..+) L azonosítható, sőt helyettesíthető is az első elemének indexével: L:=L(e) e (L(e)):=x e (első elem) (L(e)):= {x i i [e+..]} {x i i [e..]} L(e) :=-e+ L:=X [i:=,.-nél kezdődik a... sorozat] Ciklus amíg L >0 [i, azaz még van hol keresni] és nem T(X( (L))) [T(X(i)), azaz az i. olyan-e] L:= (L( (L))) [i:=i+, a következőnél kezdődik a... sorozat] Van:= L >0 [i, azaz lenne még hol keresni, de megvan] Ha Van akkor SORSZ:= (L).sorsz [SORSZ:=e] A közismert keresésekben az alábbi értelmezésű függvényeket szoktuk használni:. ((x i,...,x j)):=i (első) 2. u((x i,...,x j)):=j (utolsó) 3. k((x i,...,x j)):=(i+j) DIV 2 (középső) 4. ((x i,...,x j)):=(x i+,...,x j) (első elem nélkül) 5. u((x i,...,x j)):=(x i,...,x j-) (utolsó elem nélkül) 6'. k<((x i,...,x j)):=(x l,...,x m) (x i,...,x j), ahol l=i és m=(i+j DIV 2)- 6". k>((x i,...,x j)):=(x l,...,x m) (x i,...,x j), ahol l=(i+j DIV 2)+ és m=j 7. <((x i,...,x j)):=(x' l,...,x' k) (x i,...,x j) x' m<x i m [l..k] (elsőnél kisebbek) 6
7 4. LineárisKeresésRendezetben(H *,H,F(H H,L)):L L Be:, X H *, y H, T y:h L (T y(h) h=y h H), F(H H,L) Ki: VA L, SORSZ Ef: Hossz(X)= Rendezés( RendezettSorozat (X) VA i [..] : x i=y VA SORSZ [..] x SORSZ=y Absztrakt algoritmus: L:={x i: i [e..]} (elejétől végig, e: ahol tartunk=..+) Az e a sorozat elejét jelöli, amelyben még lehet a keresett. Figyelem: az L sorozat még annak előtte, hogy az. eleméhez érnénk, véget érhet! (Ha x>y bekövetkezett.) L azonosítható, sőt helyettesíthető is az első elemének indexével: L:=L(e) e (L(e)):= (L(e)):=e (a mindenkori első elem) (L(e)):={x i: i [e+..]}, ha x e y () (L(e)):={x i: i [+..]}, ha x e>y (2) () és (2) {x i: i [e..]} L(e):=-e+ (L(e)>0 -e+>0 e) e:= Ciklus amíg e és X(e) y Elágazás X(e)<y esetén e:=e+ X(e)>y esetén e:=+ Elágazás vége Van:= e Ha Van akkor SORSZ:=e Vegyük észre:. a ciklusból kilépünk, ha 'nem e vagy X(e)=y' teljesül; <e találunk nagyobbat: X(e)>y (l. definícióját) vagy egyszerűen a sorozat végére érünk: +=e 2. Így a ciklusfeltételre következő igaz: e és X(e) y nem (X(e)>y vagy +=e) és X(e) y X(e) y és +>e és X(e) y +>e és X(e)<y e és X(e)<y 3. Ezen átalakítás után a ciklusmagban fölöslegessé vált az elágazás, hiszen az első ág triviálisan igaz, a másik meg sohasem igaz. 4. Ezzel viszont a kilépés okát már nem jelzi egyértelműen az ' e' feltétel (hiszen az L sorozat üresre állítását nem végzi el senki): egybemosódott a sikeres és az értelmetlen keresést meggátoló kilépés. A sikerességet jelenti az ' e és X(e)=y' feltétel teljesülése. Vagyis: e:= Ciklus amíg e és X(e)<y e:=e+ Van:= e és X(e)=y Ha Van akkor SORSZ:=e 5. Egyszerűsödik az algoritmus, ha sikerül egyszerűsíteni e szétválás érzékelése. A trükk mindössze annyi, hogy az utolsó elem előtt kilépünk, s ennek vizsgálatára redukáljuk a problémát: e:= Ciklus amíg e és X(e)<y e:=e+ Van:=X(e)=y Ha Van akkor SORSZ:=e 7
8 5. LogaritmikusKeresés(H *,H,F(H H,L)):L L Be:, X H *, y H, T y:h L (T y(h) h=y h H), F(H H,L) Ki: VA L, SORSZ Ef: Hossz(X)= Rendezés( és RendezettSorozat (X) elem:h H szelekciós függvény: elem(x,i)=x i VA i [..] : x i=y VA SORSZ [..] x SORSZ=y Absztrakt algoritmus: L:={x i: i [e..v]} (a mindenkori eleje, vége, kezdetben: (,)) L azonosítható, sőt helyettesíthető is az első és az utolsó elemének indexével: L:=L(e,v) (e,v) (L(e,v)):= k(l(e,v)):=(e+v) DIV 2 (középső elem) (L(e,v)):= k (L(e,v)), ha x L(e,v)<y () (L(e,v)):= k (L(e,v)), ha x L(e,v)>y (2) L(e,v) :=v-e+ ( L(e,v) >0 v-e+>0 v e) (e,v):=(,) Ciklus amíg v e és X((e+v) DIV 2) y Elágazás X((e+v) DIV 2))>y esetén (e,v):=(e,((e+v) DIV 2)-) X((e+v) DIV 2))<y esetén (e,v):=(((e+v) DIV 2)+,v) Elágazás vége Van:=v e Ha Van akkor SORSZ:=(e+v) DIV 2 Az egyszerűbb leírhatóság érdekében tároljuk az (L(e,v))-dik (=(e+v) DIV 2) elem indexrészét a k változóban, e leválasztás viszont a külön kiszámolást jelenti! Másrészt az 'X(k) y' feltétel kétirányúra egyszerűsíti a ciklusmagot. Így az alábbi algoritmus marad: (e,v):=(,); k:=(e+v) DIV 2 Ciklus amíg v e és X(k) y Ha X(k)>y akkor v:=k- különben e:=k+ k:=(e+v) DIV 2 Van:=v e Ha Van akkor SORSZ:=k 6. VisszalépésesKeresés((H * H * 2...),F(H H 2...,L)):L L * Be: K, M * (K hosszú méretsorozat), Y i H * i ( i [..K]) (M i elemszámú lehetőségsorozatok), K i l: H j L i = j (lehetőségek összeférése), Ki: VA L, X * (az összeférő lehetőségek indexeinek sorozata) Ef: K 2 Hossz(M)=K HalmazFölsorolás(Y i) i [..K] j [..K], i [..j] l(h,...,h j) l(h,...,h i) VA Z Y Y 2... Y K: l(z) VA y ( x i) Y i és l( y (,..., ) i x ) y ( x k) k Absztrakt algoritmus: K L: A keresett megoldás a x i Y i K-dimenziós tér egy pontja, amely kielégíti az l-t. Ennek megadását az X-tömb végzi az Y i-beli komponensek indexeinek felsorolásával. A megoldás keresése során e teret kell 8
9 ügyesen bejárnunk, lehetőleg úgy, hogy ne kelljen mind az M *...*M K pontjának vizsgálatát elvégeznünk. Ezt úgy tesszük, hogy szisztematikusan szűkítjük a teret egyre szűkülő alterek uniójára, azáltal, hogy újabb és újabb komponensét kötjük meg a leendő megoldásnak. Kezdetben csak az. dimenzióban lesz kötött érték. Ekkor tehát a térnek azt a K- dimenziós alterét szemeltük ki további vizsgálatra, amelynek. komponense éppen a rögzített érték. A vizsgálatra szoruló pontok halmaza még a teljes tér. Amikor kiderül a komponensek konkretizálása során, hogy a koncentrált altér nem tartalmazhatja a megoldást, akkor a teljes alteret elvetve vesszük a szomszédos (valamelyik soron következő, azaz a megfelelő Y i-beli későbbi elem által meghatározott) alteret. Ezek után az L a következő indexsorozatok halmaza: az (,,..., ), első elemek sorozatától az (m,m 2,...,m K) utolsó sorozatig tart. (Az m i= Y i.) (Formális okok miatt egészítsük ki a fenti teret olyan elemekkel is, amelyek bármely koordinátája a 0 is lehet.) Ezt a halmazt tesszük pontok sorozatává az és függvények segítségével. A gondolatmenetből nyilvánvaló, hogy a pontfelsorolás alapja az L-beli sorozatok kezdőszeletei lesznek. Az aktuális L azonosítására mód van a kiinduló sorozat nem triviális (azaz rögzített) elemeket tartalmazó kezdőszelete által: L:=L(x,x 2,...x i) (az x i-k az indexeket jelentik), elvárjuk, hogy L(x,x 2,...x i)=l(x,x 2,...x i,0,...,0). Vegyük észre az L alábbi tulajdonságait!. Az összes lehetőség L halmaza: L(,,...,). 2. Monoton csökkenés: a. L(x,...,x i) L(x,...,x i+) x i+ [..m i+], azaz előrehaladáskor nem csökken a vizsgálatban szereplők száma; b. L(x,...,x i) L(x,...,x' i-) x' i- (x i-..m i-]. azaz visszalépéskor éppen annyival csökken, ahány dimenziós alteret sikerült kizárni a további vizsgálatból, pontosabban éppen az {(x,...,x i-,x'i,...,x'k) : j (i..k] x'j [..m j] } alteret, ami elemszáma m ; c. L(x,...,x i) L(x,...,x' i) x' (x i..m i], azaz többszörös visszalépés után az átlépett alterekbeli elemekkel csökkenthető a vizsgálat; d. a b. és a c.-ből következik, hogy a legkisebb L(x,...,x i) az L(), amely az L(x m )-ből való visszalépés után adódik. Ebben 0 darab elem van. Az L-mérték nyomon követését végzi a. függvény, így elkerülhetetlen ennek matematikai megragadása. yilvánvaló lehetőség lenne az előbbiekre építve a még ki nem szórt pontok számával mérni. Ennél lényegesen egyszerűbb mód is van. A d. figyelembe vételével az L üressé válását észlelhetjük az éppen a lerögzített elemek számának figyelésével: amikor az 0-ra csökken, akkor ürült ki a tér is. Az értelmezése következik: (L(x,...,x i)):=(x,...x i,0,...,0) ézzük a meghatározását! L( x,..., xi, xi (L(x,...,x i)):=, ( L( x,..., xi K j i j ),0)),i K l( x,..., x, x ), i l( x,..., x, x ) * j [.. i) : z i i i i ( x.. m ]: l( x,..., z ) * j j j j Magyarázatok, jelölések, megállapodások és megállapítások:. * x' v jelentése: x' v (x v..m v] és az első olyan..., illetve ha x' v korábbi értéke (azaz x' v=0), akkor x' v [..m v] és olyan. 2. Természetesen a második ágra csak az első ág feltételének nem teljesülése esetén kerülhet sor. 3. Az i jelölje a vizsgált megoldássorozat nem triviális kezdőszeletének hosszát! Ekkor L>0 i. 4. A keresett elemig akkor jutunk, amikor i>k. 5. incs meg a keresett elem (azaz L= ), ha i<. 6. (Mint nyilvánvaló:) az L-t az i és az X együtt határozzák meg! Így pl. L:=X i:=: X:=0 9
10 Az algoritmus: Típus Keresett=Rekord(van:Logikai,melyik:Egész) i:= [i. kezdőszeletnél tartunk] X(..):=0 [még nincs rögzített] Ciklus amíg i és i K ker:=jóelem(i) [az i.-ig lehetséges-e a kiválasztás?] Elágazás I K és ker.van esetén X(i):=ker.melyik; i:+ i esetén X(i):=0; i:- Elágazás vége Van:=i [X-ben található a megoldás, ha létezik] Mivel a ciklusban csak i és i K esetben vagyunk, s csak ekkor történhet az i növelése, vagy csökkentése, ezért a kétirányú elágazás helyett írható Ha-típusú elágazás is, egyszerűbb feltétellel. Így kapjuk: i:= [i. kezdőszeletnél tartunk] X(..):=0 [még nincs rögzített] Ciklus amíg i és i K ker:=jóelem(i) [az i.-ig lehetséges-e a kiválasztás?] Ha ker.van akkor X(i):=ker.melyik; i:+ különben X(i):=0; i:- Van:=i [X-ben található a megoldás, ha létezik] Függvény JóElem(i:Egész): Keresett [i.-ig nem triviális sorozat megoldás-e?] j:=x(i)+ Ciklus amíg j M(i) és nem Lehetséges(i,j) j:+ JóElem.van:=j M(i) Ha JóElem.van akkor JóElem.melyik:=j Függvény vége. Függvény Lehetséges(i,j:Egész): Logikai [i. komponens összefér-e az eddigiekkel?] Lehetséges:=l(Y()(X()),...,Y(i-)(X(i-)), Y(i)(j)) Függvény vége. A visszalépéses keresés (backtrack) elvének beépítése más tételekbe Mindössze annyi az észreveendő, hogy. L>0 i 2. T( (L)) i K 3. (L, (L)) keresett:=jóelem(i) Ha keresett.van akkor X(i):=keresett.melyik; i:+ különben X(i):=0; i:- Így pl. a megszámolás tétel variánsa a következő lesz. Annyi előzetes átalakításra szükség van, hogy a megszámolás tétel számlálásos ciklusát amíg -osra kell átírni. Db:=0 i:=; X(..K):=0 0
11 Ciklus amíg i Ha i>k akkor Db:+; i:- [visszalép a K. komponenshez] keresett:=jóelem(i) Ha keresett.van akkor X(i):=keresett.melyik; i:+ különben X(i):=0; i:-... vagy a maximum-kiválasztás... (Itt feltételezzük, hogy rendezés az L téren, ami X megoldásokat összevethetővé tesz. Az egyszerűség kedvéért föltesszük, hogy az L legkisebb eleme az (0,...,0).) i:=; X(..K):=0 Max:=X [az eddigi legnagyobb, legjobb megoldás] Ciklus amíg i Ha i>k akkor Ha Max<X akkor Max:=X i:- [visszalép a K. komponenshez] Elágazás vége keresett:=jóelem(i) Ha keresett.van akkor X(i):=keresett.melyik: i:+ különben X(i):=0 : i:- Van:=i [Max-ban található a megoldás, ha létezik]
PROGRAMOZÁSMÓDSZERTAN
PROGRAMOZÁSMÓDSZERTAN 2. ELŐADÁS 2004 (VÁZLAT) 1. SPECIFIKÁCIÓ 1.1. Alapvető matematikai jelölések Lásd http://izzo.inf.elte.hu/szlavi honlapon a Prtetel.doc -ban (vagy a Prtetel.pdf-ben)! H halmaz tetszőleges
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, 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
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
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 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 és adatmodellezés tanítása 3. előadás
Algoritmizálás és adatmodellezés tanítása 3. előadás Szövegfájl Fájl típus A szövegfájl karakterek sorozata: input fájl Műveletei: nyit, zár, olvas, vége? output fájl Műveletei: nyit, zár, ír Pap Gáborné,
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
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. 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
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
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
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,
PROGRAMOZÁSMÓDSZERTAN
PROGRAMOZÁSMÓDSZERTAN 4. ELŐADÁS 2004 (VÁZLAT). A TÉTELEK SZIGNATÚRÁJÁRÓL.. Formája és célja Induljunk ki egy ismert tételből: Megszámolás(H *,F(H, )): Be: N N, X H *, T:H L Ki: Ef: Db N ez most nem érdekes
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,
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
Algoritmizálás, adatmodellezés tanítása 7. előadás
Algoritmizálás, adatmodellezés tanítása 7. előadás Oszd meg és uralkodj! Több részfeladatra bontás, amelyek hasonlóan oldhatók meg, lépései: a triviális eset (amikor nincs rekurzív hívás) felosztás (megadjuk
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,
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
Ö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,
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
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
17. előadás: Vektorok a térben
17. előadás: Vektorok a térben Szabó Szilárd A vektor fogalma A mai előadásban n 1 tetszőleges egész szám lehet, de az egyszerűség kedvéért a képletek az n = 2 esetben szerepelnek. Vektorok: rendezett
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.
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
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
Funkcionálanalízis. n=1. n=1. x n y n. n=1
Funkcionálanalízis 2011/12 tavaszi félév - 2. előadás 1.4. Lényeges alap-terek, példák Sorozat terek (Folytatás.) C: konvergens sorozatok tere. A tér pontjai sorozatok: x = (x n ). Ezen belül C 0 a nullsorozatok
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
Ö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
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
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
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,
Algoritmizálás, adatmodellezés tanítása 2. előadás
Algoritmizálás, adatmodellezés tanítása 2. előadás Másolás függvényszámítás Bemenet: N N, X H N, g:h G, F: G N G, f: G * xg G Kimenet: Y G N Előfeltétel: Utófeltétel: i(1 i N) Y=F(g(X 1 ),, g(x N )) f
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
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
2014. szeptember 24. és 26. Dr. Vincze Szilvia
2014. szeptember 24. és 26. Dr. Vincze Szilvia Mind a hétköznapi, mind a tudományos életben gyakran előfordul, hogy bizonyos halmazok elemei között kapcsolat figyelhető meg. A kapcsolat fogalmának matematikai
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é,
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
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
Egészrészes feladatok
Kitűzött feladatok Egészrészes feladatok Győry Ákos Miskolc, Földes Ferenc Gimnázium 1. feladat. Oldjuk meg a valós számok halmazán a { } 3x 1 x+1 7 egyenletet!. feladat. Bizonyítsuk be, hogy tetszőleges
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á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
Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.
Algoritmuselmélet NP-teljes problémák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 13. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet
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
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
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
Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása
Oktatási Hivatal Országos Középiskolai Tanulmányi Verseny / Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása. Oldja meg a valós számok legbővebb részhalmazán a egyenlőtlenséget!
Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.
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 kimeneti adatot
Logika es sz am ıt aselm elet I. r esz Logika 1/36
1/36 Logika és számításelmélet I. rész Logika 2/36 Elérhetőségek Tejfel Máté Déli épület, 2.606 matej@inf.elte.hu http://matej.web.elte.hu Tankönyv 3/36 Tartalom 4/36 Bevezető fogalmak Ítéletlogika Ítéletlogika
Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1
Halmazelmélet 1. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Halmazelmélet p. 1/1 A halmaz fogalma, jelölések A halmaz fogalmát a matematikában nem definiáljuk, tulajdonságaival
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
Halmaz típus Értékhalmaz:
Halmaz, multihalmaz 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)}
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,
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,
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
ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha
ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig
HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:
Gábor Miklós HHF0CX 5.7-16. Vegyük úgy, hogy a feleségek akkor vannak a helyükön, ha a saját férjeikkel táncolnak. Ekkor már látszik, hogy azon esetek száma, amikor senki sem táncol a saját férjével, megegyezik
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:
Boros Zoltán február
Többváltozós függvények differenciál- és integrálszámítása (2 3. előadás) Boros Zoltán 209. február 9 26.. Vektorváltozós függvények differenciálhatósága és iránymenti deriváltjai A továbbiakban D R n
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
Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1
Elsőrendű logika szintaktikája és szemantikája Logika és számításelmélet, 3. gyakorlat 2009/10 II. félév Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1 Az elsőrendű logika Elemek egy
3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa
A változó fogalma Definíció Legyen A = A 1 A 2... A n állapottér. A pr Ai projekciós függvényeket változóknak nevezzük: : A A i pr Ai (a) = a i ( a = (a 1, a 2,..., a n ) A). A változók jelölése: v i =
DISZKRÉT MATEMATIKA RENDEZETT HALMAZOKKAL KAPCSOLATOS PÉLDÁK. Rendezett halmaz. (a, b) R a R b 1. Reflexív 2. Antiszimmetrikus 3.
Rendezett halmaz R A x A rendezési reláció A-n, ha R Másképpen: (a, b) R a R b 1. Reflexív 2. Antiszimmetrikus 3. Tranzitív arb for (a, b) R. 1. a A ara 2. a,b A (arb bra a = b 3. a,b,c A (arb brc arc
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
Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.
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 kimeneti adatot
Algoritmizálás, adatmodellezés tanítása 6. előadás
Algoritmizálás, adatmodellezés tanítása 6. előadás Tesztelési módszerek statikus tesztelés kódellenőrzés szintaktikus ellenőrzés szemantikus ellenőrzés dinamikus tesztelés fekete doboz módszerek fehér
Informatikai 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ó
Analízis I. Vizsgatételsor
Analízis I. Vizsgatételsor Programtervező Informatikus szak 2008-2009. 2. félév Készítette: Szabó Zoltán SZZNACI.ELTE zotyo@bolyaimk.hu v.0.6 RC 004 Forrás: Oláh Gábor: ANALÍZIS I.-II. VIZSGATÉTELSOR 2006-2007-/2
Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján
Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján Számsorozatok, vektorsorozatok konvergenciája Def.: Számsorozatok értelmezése:
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),
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
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
Számláló rendezés. Példa
Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a
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. 5. Előadás: Tömbök
Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az
Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei
A Gauss-Jordan elimináció, mátrixinvertálás Gauss-Jordan módszer Ugyanazzal a technikával, mint ahogy a k-adik oszlopban az a kk alatti elemeket kinulláztuk, a fölötte lévő elemeket is zérussá lehet tenni.
Informatikai tehetséggondozás:
Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: Visszalépéses keresés korlátozással TÁMOP-4.2.3.-12/1/KONV A visszalépéses keresés (backtrack) a problémamegoldás igen széles területén
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
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)}
GPK M1 (BME) Interpoláció / 16
Interpoláció Matematika M1 gépészmérnököknek 2017. március 13. GPK M1 (BME) Interpoláció 2017 1 / 16 Az interpoláció alapfeladata - Példa Tegyük fel, hogy egy ipari termék - pl. autó - előzetes konstrukciójának
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 1 I. HALmAZOk 1. JELÖLÉSEk A halmaz fogalmát tulajdonságait gyakran használjuk a matematikában. A halmazt nem definiáljuk, ezt alapfogalomnak tekintjük. Ez nem szokatlan, hiszen
Beadható feladatok. 2006. december 4. 1. Add meg az alábbi probléma állapottér-reprezentációját!
Beadható feladatok 2006. december 4. 1. Feladatok 2006. szeptember 13-án kitűzött feladat: 1. Add meg az alábbi probléma állapottér-reprezentációját! Adott I 1,..., I n [0, 1] intervallumokból szeretnénk
Programozási alapismeretek 11. előadás
Programozási alapismeretek 11. előadás Tartalom Rendezési feladat specifikáció Egyszerű cserés rendezés Minimum-kiválasztásos rendezés Buborékos rendezés Javított buborékos rendezés Beillesztéses rendezés
út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.
1 Az utazó ügynök problémája Utazó ügynök feladat Adott n számú város és a városokat összekötő utak, amelyeknek ismert a hossza. Adott továbbá egy ügynök, akinek adott városból kiindulva, minden várost
5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás
Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:
Számjegyes vagy radix rendezés
Számláló rendezés Amennyiben a rendezendő elemek által felvehető értékek halmazának számossága kicsi, akkor megadható lineáris időigényű algoritmus. A bemenet a rendezendő elemek egy n méretű A tömbben
Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.
Nagyságrendek Kiegészítő anyag az Algoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 018. február 1. Az O, Ω, Θ jelölések Az algoritmusok
Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26
1/26 Logika és számításelmélet I. rész Logika Negyedik előadás Tartalom 2/26 Az elsőrendű logika szemantikája Formulák és formulahalmazok szemantikus tulajdonságai Elsőrendű logikai nyelv interpretációja
Nagy Gábor compalg.inf.elte.hu/ nagy
Diszkrét matematika 1. középszint 2017. ősz 1. Diszkrét matematika 1. középszint 5. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra
Formális nyelvek - 9.
Formális nyelvek - 9. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Véges
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
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
Algoritmusok helyességének bizonyítása. A Floyd-módszer
Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk
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.
Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.
Programkonstrukciók Definíció Legyen π feltétel és S program A-n. A DO A A relációt az S-ből a π feltétellel képezett ciklusnak nevezzük, és (π, S)-sel jelöljük, ha 1. a / [π] : DO (a) = { a }, 2. a [π]
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