Algoritmusok és adatszerkezetek I. 2. előadás
|
|
- Botond Szilágyi
- 6 évvel ezelőtt
- Látták:
Átírás
1 Algoritmusok és adatszerkezetek I. 2. előadás
2 Verem Verem= speciális sorozattípus Műveletei: Üres, üres?, Verembe, Veremből, tető Üres: Verem üres?(verem): Logikai tető(verem): Elem {NemDef} Verembe(Verem,Elem): Verem {NemDef} Veremből(Verem,Elem): (Verem Elem) {NemDef} 2/40
3 Verem A műveletek specifikációja Üres(V): ef:, uf: V=() üres?(v): ef:, uf: üres?=v=() Verembe(V,e): ef: V=W, uf: V=(W,e) Veremből(V,e): ef: V=(W,f), uf: V=W és e=f Megjegyzés: ef nem üres?(v) tető(v): ef: V=(W,f), uf: tető=f Megjegyzés: ef nem üres?(v) 3/40
4 Verem Megvalósítás folytonos, szekvenciális ábrázolással Verem(Típus TElem): Konstans MaxMélység: Egész(???) Típus VeremElem=TElem Változó t: Tömb(1..MaxMélység: VeremElem) teteje: 0..MaxMélység Probléma: MaxMélység=???? 4/40
5 Verem Eljárás Üres(V): V.teteje:=0 Függvény üres?(v): üres?:=v.teteje=0 Függvény vége. Függvény tető(v): tető:=v.t(v.teteje) Függvény vége. 5/40
6 Verem Eljárás Verembe(V,e): V.teteje:=V.teteje+1 V.t(V.teteje):=e Eljárás Veremből(V,e): e:=v.t(v.teteje) V.teteje:=V.teteje-1 Meggondolandó: hibakezelés hol és mikor kell? 6/40
7 Verem Megvalósítás dinamikus láncolással Verem(Típus TElem): Típus VeremElem=Rekord(érték: TElem alatta: VeremElem'Mutató) Változó teteje: VeremElem'Mutató Magyarázat: a láncolásnak nincs szerepe a hatékonyság szempontjából (nincs beszúrás vagy törlés középen), csak a memória lefoglalási lehetőséget használjuk ki. 7/40
8 Verem Eljárás Üres(V): V.teteje:=Sehova Függvény üres?(v): üres?:=v.teteje=sehova Függvény vége. Függvény tető(v): tető:=tartalom(v.teteje).érték Függvény vége. Emlékeztető: Eljárás Üres(V): V.teteje:=0 Függvény üres?(v): üres?:=v.teteje=0 Függvény vége. Függvény tető(v): tető:=v.t(v.teteje).érték Függvény vége. 8/40
9 Verem Eljárás Verembe(V,e): Lefoglal(w,(e,V.teteje)) V.teteje:=w Eljárás Veremből(V,e): Eljárás Verembe(V,e): V.teteje:=V.teteje+1 V.t(V.teteje):=e Eljárás Veremből(V,e): e:=v.t(v.teteje) V.teteje:=V.teteje-1 e:=tartalom(v.teteje).érték; w:=v.teteje V.teteje:=tartalom(V.teteje).alatta Felszabadít(w) A lefoglalás másképpen: Lefoglal(w) tartalom(w).érték:=e tartalom(w).alatta:=v.teteje 9/40
10 Verem Megvalósítás dinamikus láncolással (hibakezeléssel) Verem(Típus TElem): Típus VeremElem=Rekord(érték: TElem alatta: VeremElem'Mutató) Változó teteje: VeremElem'Mutató hiba: Logikai 10/40
11 Verem Eljárás Üres(V): V.teteje:=Sehova; V.hiba:=hamis Itt kihasználjuk, hogy a lefoglalás sikertelensége esetén telik be a verem, amit a lefoglalás művelete állít be. Eljárás Verembe(V,e): Lefoglal(w,(e,V.teteje),V.hiba) V.teteje:=w 11/40
12 Verem Függvény tető(v): Ha v.teteje=sehova akkor V.hiba:=igaz különben tető:=tartalom(v.teteje).érték Függvény vége. Eljárás Veremből(V,e): Ha v.teteje=sehova akkor V.hiba:=igaz különben e:=tartalom(v.teteje).érték w:=v.teteje V.teteje:=tartalom(V.teteje).alatta Felszabadít(w) 12/40
13 Verem Speciális verem műveletek a FORTH nyelvből swap(v): a két felső elem cseréje ef: V=(W,e,f), uf: V=(W,f,e) dup(v): a felső elem duplikálása ef: V=(W,e), uf: V=(W,e,e) over(v): a felső alatti elem duplikálása a verem tetején ef: V=(W,e,f), uf: V=(W,e,f,e) rot(v): a felső három elem ciklikus léptetése ef: V=(W,e,f,g), uf: V=(W,f,g,e) 13/40
14 Verem Eljárás swap(v): e:=tartalom(v.teteje).érték w:=tartalom(v.teteje).alatta tartalom(v.teteje).érték:=tartalom(w).érték tartalom(w).érték:=e 14/40
15 Verem Eljárás dup(v): e:=tartalom(v.teteje).érték Lefoglal(w,(e,V.teteje)) V.teteje:=w 15/40
16 Verem Eljárás over(v): w:=tartalom(v.teteje).alatta e:=tartalom(w).érték Lefoglal(w,(e,V.teteje)) V.teteje:=w 16/40
17 Verem Eljárás rot(v): w:=tartalom(v.teteje).alatta x:=tartalom(w).alatta e:=tartalom(x).érték tartalom(x).érték:=tartalom(w).érték tartalom(w).érték:=tartalom(v.teteje).érték tartalom(v.teteje).érték:=e 17/40
18 Verem alkalmazás Egy kifejezés (,) és [,] zárójelpárokat tartalmaz. Ellenőrizzük a helyességét! Hibás esetek: x([y)] hibás párosítás x(a - nyitó zárójelnek nincs csukó párja x)a( - csukó zárójelnek nincs nyitó párja 18/40
19 Verem alkalmazás Függvény helyes(k): i:=1; h:=igaz; V:=üres Ciklus amíg i hossz(k) és h Ha K(i)= ( vagy K(i)= [ akkor Verembe(V,K(i)) különben ha K(i)= ) vagy K(i)= ] akkor Veremből(V,s) h:= K(i)= ) és s= ( vagy K(i)= ] és s= [ i:=i+1 Ciklus vége helyes:=h és nem V.hiba és üres?(v) 19/40
20 Sor Sor= speciális sorozattípus Műveletei: Üres, üres?, Sorba, Sorból, első Üres: Sor üres?(sor): Logikai első(sor): Elem {NemDef} Sorba(Sor,Elem): Sor {NemDef} Sorból(Sor,Elem): (Sor Elem) {NemDef} 20/40
21 Sor A műveletek specifikációja Üres(S): ef:, uf: S=() üres?(s): ef:, uf: üres?=s=() Sorba(S,e): ef: S=W, uf: S=(W,e) Sorból(S,e): ef: S=(f,W), uf: S=W és e=f Megjegyzés: ef nem üres?(s) első(s): ef: S=(f,W), uf: első=f Megjegyzés: ef nem üres?(s) 21/40
22 Sor Megvalósítás folytonos, szekvenciális ábrázolással Sor(Típus TElem): Konstans MaxHossz: Egész(???) Típus SorElem=TElem Változó t: Tömb(1..MaxHossz: SorElem) első,utolsó,db: 0..MaxHossz A tömböt ciklikusan kezeljük: ha a végére értünk és az elején már szabadult fel hely, ott folytatjuk a kitöltést. Probléma: MaxHossz=???? 22/40
23 Sor Eljárás Üres(S): S.első:=1; S.utolsó:=0; S.db:=0 Függvény üres?(s): Üres?:=S.db=0 Függvény vége. Függvény első(s): első:=s.t(s.első) Függvény vége. 23/40
24 Sor Eljárás Sorba(S,e): Ha S.utolsó=Maxhossz akkor S.utolsó:=1 különben S.utolsó:=S.utolsó+1 S.db:=S.db+1; S.t(S.utolsó):=e Eljárás Sorból(S,e): e:=s.t(s.első); S.db:=S.db-1 Ha S.első=Maxhossz akkor S.első:=1 különben S.első:=S.első+1 S.utolsó S.első 24/40
25 Sor Megvalósítás dinamikus láncolással Sor(Típus TElem): Típus SorElem=Rekord(érték: TElem köv: SorElem'Mutató) Változó eleje,vége: SorElem'Mutató Megjegyzés: Itt sem használunk középre beszúrást, középről törlést, azaz a láncolást csak a tömbméret korlát elhagyása miatt használjuk. 25/40
26 Sor Eljárás Üres(S): S.eleje:=sehova; S.vége:=sehova Függvény üres?(s): Üres?:=S.eleje=sehova Függvény vége. Függvény első(s): első:=tartalom(eleje).érték Függvény vége. Emlékeztető: Eljárás Üres(S): S.első:=1; S.utolsó:=0 S.db:=0 Függvény üres?(s): Üres?:=S.db=0 Függvény vége. Függvény első(s): első:=s.t(s.első) Függvény vége. 26/40
27 Sor Eljárás Sorba(S,e): Lefoglal(újvége,(e,sehova)) Ha S.vége=sehova akkor S.eleje:=újvége különben tartalom(s.vége).köv:=újvége S.vége:=újvége 27/40
28 Sor Eljárás Sorból(S,e): e:=tartalom(s.eleje).érték újeleje:=tartalom(s.eleje).köv Felszabadít(S.eleje) S.eleje:=újeleje Ha S.eleje=sehova akkor S.vége:=sehova 28/40
29 Sor Megvalósítás dinamikus láncolással (hibakezeléssel) Sor(Típus TElem): Típus SorElem=Rekord(érték: TElem köv: SorElem'Mutató) Változó eleje,vége: SorElem'Mutató hiba: Logikai 29/40
30 Sor Eljárás Üres(S): S.eleje:=sehova; S.vége:=sehova; S.hiba:=hamis Függvény első(s): Ha S.eleje=sehova akkor S.hiba:=igaz különben első:=tartalom(s.eleje).érték Függvény vége. 30/40
31 Sor Eljárás Sorba(S,e): Lefoglal(új,(e,sehova),S.hiba) Ha S.vége=sehova akkor S.eleje:=új különben tartalom(s.vége).köv:=új S.vége:=új 31/40
32 Sor Eljárás Sorból(S,e): Ha S.eleje=sehova akkor S.hiba:=igaz különben e:=tartalom(s.eleje).érték újeleje:=tartalom(s.eleje).köv Felszabadít(S.eleje) S.eleje:=újeleje Ha S.eleje=sehova akkor S.vége:=sehova 32/40
33 Sor alkalmazás Példa: Egy vasútvonal két állomásán egy nap feljegyeztük, az összes egyik irányba áthaladó vonat indulási, illetve érkezési idejét (idő szerinti sorrendben). Adjuk meg az áthaladt vonatok menetidőit a két állomás között! (Nincs előzés.) Ötlet: A korábban érkező adatot egy sorban várakoztatjuk addig, amíg a párja meg nem érkezik. 33/40
34 Sor alkalmazás Forgalom: Nyit(f); Nyit(g); Üres(S) Ciklus amíg nem vége?(f) Olvas(f,adat) Ha adat.állomás=1 akkor Sorba(S,adat.idő) különben Sorból(S,előző) Ír(g,adat.idő-előző) Ciklus vége Zár(f); Zár(g) 34/40
35 Sor alkalmazás Példa: Egy egyirányú utcában két jelzőlámpánál figyelik az áthaladó autókat: mikor haladt át a lámpánál. Az adatok megfigyelési idő szerinti sorrendben érkeznek. N db autót figyeltek meg. Csoportosítsuk az adatokat, hogy az első lámpánál történt megfigyelések időbeli sorrendjüket megtartva előzzék meg a második lámpánál megfigyelt adatokat! (Az utcában előzés nincs.) Ötlet: Az 1-es lámpa adatai azonnal írhatók az eredménybe, a 2-es lámpa adatait egy átmeneti sorban tároljuk, s a végén írjuk az eredménybe. A sor ha a mérete indokolja persze lehet háttértáron is. 35/40
36 Sor alkalmazás Ötlet: Az 1-es lámpa adatai azonnal írhatók az eredménybe, a 2- es lámpa adatait egy átmeneti sorban tároljuk, s a végén írjuk az eredménybe. A sor ha a mérete indokolja persze lehet háttértáron is. A bemenet és a kimenet is forgalom típusú adatok fájlja, és a sorban is ilyeneket tárolunk: Forgalom=Rekord(lámpa: {1,2}, idő: Egész) Változó S: Sor(Forgalom) 36/40
37 Sor alkalmazás Forgalom: Nyit(f); Nyit(g); Üres(S) Ciklus amíg nem vége?(f) Olvas(f,adat) Ha adat.lámpa=1 akkor Ír(g,adat) különben Sorba(S,adat) Ciklus vége Ciklus amíg nem üres?(s) Sorból(S,adat); Ír(g,adat) Ciklus vége Zár(f); Zár(g) 37/40
38 Kétvégű sor Kétvégű sor= speciális sorozattípus Műveletei: Üres, üres?, Sorelejére, Sorvégére, első, Sorelejéről, Sorvégéről Üres: Sor Sorelejére(Sor,Elem): Sor {NemDef} Sorvégére(Sor,Elem): Sor {NemDef} Sorelejéről(Sor,Elem): (Sor Elem) {NemDef} Sorvégéről(Sor,Elem): (Sor Elem) {NemDef} üres?(sor): Logikai első(sor): Elem {NemDef} 38/40
39 Kétvégű sor A műveletek specifikációja Üres(S): ef:, uf: S=() üres?(s): ef:, uf: üres?=s=() Sorelejére(S,e): ef: S=W, uf: S=(e,W) Sorvégére(S,e): ef: S=W, uf: S=(W,e) Sorelejéről(S,e): ef: S=(f,W), uf: S=W és e=f Sorvégéről(S,e): ef: S=(W,f), uf: S=W és e=f első(s): ef: S=(f,W), uf: első=f 39/40
40 Algoritmusok és adatszerkezetek I. 2. előadás vége
Algoritmusok és adatszerkezetek I. 2. előadás
Algoritmusok és adatszerkezetek I. 2. előadás Verem Verem= speciális sorozattípus Műveletei: Üres, üres?, Verembe, Veremből, tető Üres: Verem üres?(verem): Logikai tető(verem): Elem {NemDef} Verembe(Verem,Elem):
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
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,
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
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Algoritmusok és adatszerkezetek I. 3. előadás
Algoritmusok és adatszerkezetek I. 3. előadás Kupac A kupac olyan véges elemsokaság, amely rendelkezik az alábbi tulajdonságokkal: 1. Minden elemnek legfeljebb két rákövetkezője (leszármazottja) lehet.
ADATSZERKEZETEK (VEREM, SOR)
ADATSZERKEZETEK (VEREM, SOR) 1. ADATSZERKEZET FOGALMA Az adatszerkezet egymással kapcsolatban álló adatok összessége, amelyen meghatározott, az adatszerkezetre jellemző műveletek végezhetők el. Az adatok
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é,
Aritmetikai kifejezések lengyelformára hozása
Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási
Adatszerkezetek I. 1. előadás
Adatszerkezetek I. 1. előadás Adatok jellemzői ismétlés 1. Azonosító Az a jelsorozat, amellyel hivatkozhatunk a tartalmára, amely által módosíthatjuk tartalmát. 2. Hozzáférési jog Adatokat módosítani,
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
Adatszerkezetek II. 1. előadás
Adatszerkezetek II. 1. előadás Gráfok A gráf fogalma: Gráf(P,E): P pontok (csúcsok) és E P P élek halmaza Fogalmak: Irányított gráf : (p 1,p 2 ) E-ből nem következik, hogy (p 2,p 1 ) E Irányítatlan gráf
Hatékonyság 2. előadás
Hatékonyság 2. előadás Alapelv: a tárolt elemek száma vagy egy elemének mérete kevesebb legyen! Helyfoglalás=memória (kód+adat) + háttértár (kód+adat) 2.1 Sorozatok hosszcsökkentése 2.1.1 Sorozat kiküszöbölése
Adatszerkezetek I. 4. előadás
Adatszerkezetek I. 4. előadás Kupac A kupac olyan véges elemsokaság, amely rendelkezik az alábbi tulajdonságokkal: 1. Minden elemnek legfeljebb két rákövetkezője (leszármazottja) lehet. Azaz bináris fának
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
Adatszerkezetek I. 9. előadás
Adatszerkezetek I. 9. előadás Nem bináris fák A fa rekurzív adatszerkezet jellemzői: sokaság: azonos típusú elemekből áll; akár 0 db elemet tartalmazhat; Üres: rekurzív nullelem, kitüntetett konstans;
Adatszerkezetek II. 2. előadás
Adatszerkezetek II. 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra
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
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
Szövegfeldolgozás II.
Szövegfeldolgozás II. Szövegfeldolgozási alapfeladatok Tömörítés: egy szöveget vagy szövegfájlt alakítsunk át úgy, hogy kevesebb helyet foglaljon (valamint alakítsuk vissza)! Keresés: egy szövegben vagy
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
HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
Absztrakt adatstruktúrák A bináris fák
ciós lámpa a legnagyobb élettartamú és a legjobb hatásfokú fényforrásnak tekinthető, nyugodtan mondhatjuk, hogy a jövő fényforrása. Ezt bizonyítja az a tény, hogy ezen a területen a kutatások és a bejelentett
Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)
Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában
Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Fák 3. előadás. (Horváth Gyula anyagai felhasználásával)
Fák 3. előadás (Horváth Gyula anyagai felhasználásával) Fák Bináris fa "fordított" ábrázolása, a levelektől vissza: Ha a bináris fa elemei címezhetőek is (pl. sorszámuk van), akkor elképzelhető egy olyan
Verem Verem mutató 01
A számítástechnikában a verem (stack) egy speciális adatszerkezet, amiben csak kétféle művelet van. A berak (push) egy elemet a verembe rak, a kivesz (pop) egy elemet elvesz a verem tetejéről. Mindig az
A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása
A verem (stack) A verem egy olyan struktúra, aminek a tetejére betehetünk egy új (vagy sorban több) elemet a tetejéről kivehetünk egy (vagy sorban több) elemet A verem felhasználása Függvény visszatérési
Algoritmizálás és adatmodellezés tanítása 9. előadás
Algoritmizálás és adatmodellezés tanítása 9. előadás Szöveges típusok (ismétlés) karakter típus szöveg típus szövegfájl típus (input, illetve output szövegfájl) 2018. 01. 2/30 Karakterábrázolás fix kódhossz
Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1
Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG 1 A fenti
Algoritmusok és adatszerkezetek I. 5. előadás
Algoritmusok és adatszerkezetek I. 5. előadás Táblázat A táblázat olyan halmazféleség, amelyben az elemeket kulcsértékkel azonosítjuk. A szokásos halmazműveletekből azonban csak néhányat definiálunk rá:
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
Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása
1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu
Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember
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
Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter
Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot
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.
Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17
Gráfok 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra bejárása nem
Adatszerkezetek 1. előadás
Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk
Adatszerkezetek és algoritmusok
2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók
Rekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30.
15. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30. Edényrendezés Tegyük fel, hogy tudjuk, hogy a bemenő elemek (A[1..n] elemei) egy m elemű U halmazból kerülnek ki, pl. " A[i]-re
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),
Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs
Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember
Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Formális modellek használata és értelmezése Formális modellek
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Zárthelyi mintapéldák Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Elméleti kérdések Indokolja meg, hogy az A (X Stop F Start) kifejezés szintaktikailag helyes kifejezés-e CTL illetve
Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3
Láncolt Listák Adatszerkezetek Adatszerkezet: Az adatelemek egy olyan véges halmaza, amelyben az adatelemek között szerkezeti összefüggések vannak Megvalósítások: - Tömb, Láncolt lista, Fa, Kupac, Gráf,
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
5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E
5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus
Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok
Programozási alapismeretek 1. előadás
Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A
Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor
Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt
Programozás I gyakorlat
Programozás I. - 2. gyakorlat Változók, kiiratás, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24, 2007 1 tar@dcs.vein.hu
Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1
Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG Gyakorlatvezető
A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 217/218 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai 1. feladat: Csatornák (24 pont) INFORMATIKA II. (programozás) kategória Egy város csomópontjait csatornahálózat
Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A
Web-programozó Web-programozó
Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,
Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs
Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán
... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban
4. VEREM. Üres: V Verembe: V E V Veremből: V V E Felső: V E
4. VEREM A mindennapokban is találkozunk verem alapú tároló struktúrákkal. Legismertebb példa a névadó, a mezőgazdaságban használt verem. Az informatikában legismertebb veremalkalmazások az eljáráshívások
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
Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok
Algoritmusok és adatszerkezetek 2.
Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen
Adatszerkezetek I. 6. előadás
Adatszerkezetek I. 6. előadás Táblázat A táblázat olyan halmazféleség, amelyben az elemeket kulcsértékkel azonosítjuk. A szokásos halmazműveletekből azonban csak néhányat definiálunk rá: Üres: Táblázat
Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése
Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Dr. Kallós Gábor 2014 2015 1 Az Ordó jelölés Azt mondjuk, hogy az f(n) függvény eleme az Ordó(g(n)) halmaznak, ha van olyan c konstans (c
Véges állapotú gépek (FSM) tervezése
Véges állapotú gépek (FSM) tervezése F1. A 2. gyakorlaton foglalkoztunk a 3-mal vagy 5-tel osztható 4 bites számok felismerésével. Abban a feladatban a bemenet bitpárhuzamosan, azaz egy időben minden adatbit
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
Táblázatok fontosabb műveletei 1
Táblázatok fontosabb műveletei 1 - - Soros táblázat procedure BESZÚR1(TÁBLA, újelem) - - beszúrás soros táblázatba - - a táblázatot egy rekordokat tartalmazó dinamikus vektorral reprezentáljuk - - a rekordok
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,
C++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
C programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar
PROGRAMOZÁS tantárgy Gregorics Tibor egyetemi docens ELTE Informatikai Kar Követelmények A,C,E szakirány B szakirány Előfeltétel Prog. alapismeret Prog. alapismeret Diszkrét matematika I. Óraszám 2 ea
6. LISTÁK ábra. A lista absztrakt adatszerkezet (ADS)
6. LISTÁK Az előző fejezetekben megismerkedtünk a láncolt ábrázolással. Láttuk a verem és a sor, valamint előre tekintve a keresőfa pointeres megvalósításának a lehetőségét és előnyeit. A láncolt ábrázolással
Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
A 2008/2009 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában
Oktatási Hivatal A 2008/2009 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása INFORMATIKÁBÓL II. (programozás) kategóriában Kérjük a tisztelt tanár kollégákat, hogy a
Flex tutorial. Dévai Gergely
Flex tutorial Dévai Gergely A Flex (Fast Lexical Analyser) egy lexikáliselemz -generátor: reguláris kifejezések sorozatából egy C/C++ programot generál, ami szövegfájlokat képes lexikai elemek sorozatára
Programtervezés. Dr. Iványi Péter
Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű
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
Mutatók és mutató-aritmetika C-ben március 19.
Mutatók és mutató-aritmetika C-ben 2018 március 19 Memória a Neumann-architektúrában Neumann-architektúra: a memória egységes a címzéshez a természetes számokat használjuk Ugyanabban a memóriában van:
A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:
A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.
Programozás I. zárthelyi dolgozat
Programozás I. zárthelyi dolgozat 2013. november 11. 2-es szint: Laptopot szeretnénk vásárolni, ezért írunk egy programot, amelynek megadjuk a lehetséges laptopok adatait. A laptopok árát, memória méretét
Láncolt listák. PPT 2007/2008 tavasz.
Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Láncolt listák elvi felépítése Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Láncolt
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é,
Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15
Matlab alapok Baran Ágnes Elágazások, függvények Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15 Logikai kifejezések =, ==, = (két mátrixra is alkalmazhatóak, ilyenkor elemenként történik
Tuesday, March 6, 12. Hasító táblázatok
Hasító táblázatok Halmaz adattípus U (kulcsuniverzum) K (aktuális kulcsok) Függvény adattípus U (univerzum) ÉT (értelmezési tartomány) ÉK (érték készlet) Milyen az univerzum? Közvetlen címzésű táblázatok
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
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r
Java II. I A Java programozási nyelv alapelemei
Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve
Adatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
Szekvenciális hálózatok és automaták
Szekvenciális hálózatok a kombinációs hálózatokból jöhetnek létre tárolási tulajdonságok hozzáadásával. A tárolás megvalósítása történhet a kapcsolás logikáját képező kombinációs hálózat kimeneteinek visszacsatolásával
Programozási nyelvek Python
Programozási nyelvek Python A nyelv története és jellemzői 2 A nyelv története Tervező Guido van Rossum (1956, Hollandia) Befolyásoló nyelvek ABC (pl. blokkok jelölése behúzással); Modula-3; C; C++; Unix
Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:
Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...
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
Rendezések. Összehasonlító rendezések
Rendezések Összehasonlító rendezések Remdezés - Alapfeladat: Egy A nevű N elemű sorozat elemeinek nagyság szerinti sorrendbe rendezése - Feltételezzük: o A sorozat elemei olyanok, amelyekre a >, relációk
Java II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)
Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben) Felhasználói dokumentáció Feladat: Adjuk meg két N elemű vektor skalárszorzatát! Skalárszorzat : X, Y : N i 1 x i * y i Környezet: IBM