Programozási tételek specifikációja

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

Download "Programozási tételek specifikációja"

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

ELEMI PROGRAMOZÁSI TÉTELEK

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

Részletesebben

Egyszerű programozási tételek

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

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

Programozási tételek. Dr. Iványi Péter

Programozási tételek. Dr. Iványi Péter Programozási tételek Dr. Iványi Péter 1 Programozási tételek A programozási tételek olyan általános algoritmusok, melyekkel programozás során gyakran találkozunk. Az algoritmusok általában számsorozatokkal,

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

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,

Részletesebben

PROGRAMOZÁSMÓDSZERTAN

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

Részletesebben

Térinformatikai algoritmusok Elemi algoritmusok

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

Részletesebben

Térinformatikai algoritmusok Elemi algoritmusok

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Algoritmizálás, adatmodellezés 1. előadá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

Részletesebben

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10. Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,

Részletesebben

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!

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

Részletesebben

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

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

Részletesebben

17. előadás: Vektorok a térben

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

Részletesebben

Egyszerű programozási tételek

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

Részletesebben

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan

Részletesebben

Funkcionálanalízis. n=1. n=1. x n y n. n=1

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

Részletesebben

Adatszerkezetek II. 10. előadás

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

Részletesebben

Összetett programozási tételek

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

Részletesebben

Algoritmusok és adatszerkezetek I. 4. előadás

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

Részletesebben

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

Részletesebben

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. 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,

Részletesebben

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

Algoritmizálás, adatmodellezés tanítása 2. előadás Algoritmizálás, adatmodellezés tanítása 2. előadás 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

Részletesebben

Struktúra nélküli adatszerkezetek

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

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

PROGRAMOZÁSI TÉTELEK

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

Részletesebben

2014. szeptember 24. és 26. Dr. Vincze Szilvia

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Egészrészes feladatok

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

Részletesebben

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez Pásztor Attila Algoritmizálás és programozás tankönyv az emeltszintű érettségihez 3. ADATTÍPUSOK...26 3.1. AZ ADATOK LEGFONTOSABB JELLEMZŐI:...26 3.2. ELEMI ADATTÍPUSOK...27 3.3. ÖSSZETETT ADATTÍPUSOK...28

Részletesebben

Programozási alapismeretek 3. előadás

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

Részletesebben

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

Részletesebben

Programozási Módszertan definíciók, stb.

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

Részletesebben

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

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

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

Részletesebben

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása

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!

Részletesebben

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.

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

Részletesebben

Logika es sz am ıt aselm elet I. r esz Logika 1/36

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

Részletesebben

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

Részletesebben

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 3. gyakorlat PLanG: 2011.09.27. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok

Részletesebben

Halmaz típus Értékhalmaz:

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)}

Részletesebben

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 (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,

Részletesebben

Kombinatorikai algoritmusok

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,

Részletesebben

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

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

Részletesebben

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

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

Részletesebben

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

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

Részletesebben

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

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

Részletesebben

Boros Zoltán február

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

Részletesebben

Programozási módszertan. Mohó algoritmusok

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

Részletesebben

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

Részletesebben

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

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 =

Részletesebben

DISZKRÉT MATEMATIKA RENDEZETT HALMAZOKKAL KAPCSOLATOS PÉLDÁK. Rendezett halmaz. (a, b) R a R b 1. Reflexív 2. Antiszimmetrikus 3.

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

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

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

Részletesebben

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.

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

Részletesebben

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

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

Részletesebben

Informatikai tehetséggondozás:

Informatikai tehetséggondozás: Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: 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észletesebben

Analízis I. Vizsgatételsor

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

Részletesebben

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai

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

Részletesebben

Számláló rendezés. Példa

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

Részletesebben

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

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

Részletesebben

Bevezetés a programozásba. 5. Előadás: Tömbök

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

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

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

Részletesebben

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

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.

Részletesebben

Informatikai tehetséggondozás:

Informatikai tehetséggondozás: Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: 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

Részletesebben

Adatszerkezetek 1. Dr. Iványi Péter

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

Részletesebben

Multihalmaz, intervallumhalmaz

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

Részletesebben

GPK M1 (BME) Interpoláció / 16

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

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

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

Részletesebben

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

Részletesebben

Programozási alapismeretek 11. előadás

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

Részletesebben

ú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.

ú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

Részletesebben

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

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:

Részletesebben

Számjegyes vagy radix rendezés

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

Részletesebben

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

Részletesebben

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

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

Részletesebben

Nagy Gábor compalg.inf.elte.hu/ nagy

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

Részletesebben

Formális nyelvek - 9.

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Algoritmusok helyességének bizonyítása. A Floyd-módszer

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

Részletesebben

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! 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.

Részletesebben

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 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 [π]

Részletesebben

Algoritmusok és adatszerkezetek I. 1. előadás

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

Részletesebben