Adatfeldolgozás 3. Szlávi Péter

Slides:



Advertisements
Hasonló előadás
ECM/DMS A GYAKORLATBAN E-SZÁMLA KIBOCSÁTÁS ÉS BEFOGADÁS E-SZÁMLA KIBOCSÁTÁS ÉS BEFOGADÁS
Advertisements

A képzett szakemberekért SZMBK KERETRENDSZER 2.1. előadás.
TÖRTÉNELEM ÉRETTSÉGI A VIZSGA LEÍRÁSA VÁLTOZÁSOK január 1-től.
Szabadtéri rendezvények. A TvMI vonatkozik: OTSZ szerinti szabadtéri rendezvényekre szabadtéri rendezvény: az 1000 főt vagy az 5000 m 2 területet meghaladó,
2011. évi zárás Készítette: Juhász Ágnes. 1. Zárást megelőző feladatok  Leltározás  Folyószámla egyeztetés (kapcsolt vállalkozásoktól egyenlegkérés)
Egységes, központi elektronikus nyilvántartás jön létre a korábbi széttagolt, és egymással nem kompatibilis, adathiányos korszerűtlen nyilvántartások.
TEROTECHNOLÓGIA Az állóeszközök újratermelési folyamata.
Helyi védett értékek bemutatása
Fájlkezelés.
Dobrik-Lupták Sára szeptember 19.
Számítógépes szimuláció
Az „első lépés” TÁMOP
Lieszkovszky József Pál (PhD hallgató, RGDI
Adatbázis normalizálás
Becslés gyakorlat november 3.
Doktori képzések és oklevelek a FIR-ben
TESZTSOR.HU REGISZTRÁCIÓ, VÁSÁRLÁS ÉS TESZTKITÖLTÉS ELKEZDÉSE
Scilab programozás alapjai

Háttértárak karbantartása
Észlelés és egyéni döntéshozatal, tanulás
Kockázat és megbízhatóság
Szervezetfejlesztés II. előadás
A naptevékenységi ciklus vizsgálata a zöld koronavonal alapján
Piaci kockázat tőkekövetelménye
VEREM.
Logikai programozás 2..
Adatbázis-kezelés (PL/SQL)
Algebrai specifikációk
INFOÉRA 2006 Véletlenszámok
Varianciaanalízis- ANOVA (Analyze Of VAriance)
2. Bevezetés A programozásba
Szerkezetek Dinamikája
Közigazgatási alapvizsga a Probono rendszerben
Business Mathematics
Grosz imre f. doc. Kombinációs hálózatok /43 kép
középfokú felvételi eljárás
Algoritmusok és Adatszerkezetek I.
Számítógépes Hálózatok
CONTROLLING ÉS TELJESÍTMÉNYMENEDZSMENT DEBRECENI EGYETEM
AVL fák.
Aritmetikai kifejezések lengyelformára hozása
Informatikai gyakorlatok 11. évfolyam
INFOÉRA Zsakó László Informatikai tanárszak problémái ELTE Informatikai Kar Juhász István-Zsakó László: Informatikai.
Kifejezések kiértékelése * Lengyel-forma
A villamos installáció problémái a tűzvédelem szempontjából
TÁMOP A pályaorientáció rendszerének tartalmi és módszertani fejlesztése – Regionális workshop Zétényi Ákos.
A TANULÁSMÓDSZERTAN ALAPJAI
Felszín alatti vizek kémiai állapotfelmérése
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Ez az előadás alcíme vagy a tárgy neve vagy a konferencia neve
Oktatóbemutató címe Előadó név
Frappáns novella a szeretetrŐl...
SZAKKÉPZÉSI ÖNÉRTÉKELÉSI MODELL I. HELYZETFELMÉRŐ SZINT FOLYAMATA 8
További rendező és kereső algoritmusok
Szövegfeldolgozás 2. Copyright, 1999 © Szlávi Péter Szlávi
A szállítási probléma.
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
Adatfeldolgozás 2. Szlávi Péter
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Áramlástan mérés beszámoló előadás
Edényrendezés - RADIX „vissza” - bináris számokra
A geometriai transzformációk
LIA Alapítványi Ált. Isk. és Szki. Piliscsabai Tagintézménye
Háttértárak Merevlemezek.
Algoritmusok.
A T-spline felületreprezentáció
Háttértárak Merevlemezek.
KONFERENCIA KAFFEE projekt Óvári Márta Köznevelési Főosztály
Intuitív szakértői módszerek
Előadás másolata:

Adatfeldolgozás 3. Szlávi Péter ELTE Informatika Szakmódszertani Csoport szlavi@ludens.elte.hu http://izzo.inf.elte.hu/~szlavi Copyright, 1999 © Szlávi Péter

Tartalom 1. Adatfeldolgozás problémája, alapfogalmak 1.1 Adatfeldolgozás típusfeladatai 1.2 Elemenkénti feldolgozhatóság 1.3 A Z=F(X) tétel 1.4 Típusfinomítás, struktúramegfeleltetés 2. Struktúramegfeleltetés konfliktusai 2.1 Tagolási konfliktus 2.2 Összefonódási konfliktus 2.3 Rendezetlenségi konfliktus 3. Időszerűsítés 3.1 Megoldása a Z=F(x) tétel alapján 3.2 Megoldása összefuttatással 2019.01.18. Adatfedolgozás

Tartalom 4. Külső rendezések 4.1 Négy munkafájlos rendezés 4.2 Három munkafájlos rendezés 4.3 Prioritási soros rendezés 2019.01.18. Adatfedolgozás

3. Időszerűsítés A feladat: Időszerűsítés: Régi x Módosító  Új Régi=TBeElem1*, Módosító=TBeElem2 * Új=TKiElem* Időszerűsítési funkciók: adott elem törlése adott elem javítása adott elem beszúrása Adott mező: „kulcs” (-mező) TBeElem1  TBeElem2 TBeElem1  TBeElem2   TBeElem=TKiElem : közös mező 2019.01.18. Adatfedolgozás

Időszerűsítés (folytatás) A ’Z=F(X)’ tétel alkalmazható? A „keresztbe kasul” hivatkozás miatt f: XxYZ : 2019.01.18. Adatfedolgozás

Időszerűsítés (folytatás) Konfliktus: Összefonódási (elsősorban) a bemeneti olda- lon, X és Y elemei között, továbbá az Y és Z elemei között. Feloldása: 1. Szétválogatás(ok) – X-Y „párba illeszkedő” (azonos kulcsú v. üres) elemei. 2. Ef: kulcs-szerinti rendezettség + párosítás (kulcs-szerint v. üres). 2019.01.18. Adatfedolgozás

Időszerűsítés (folytatás) Algoritmus: 1. Z=F(X) tétel alapján; 2. Összefuttatás tétel alapján. Típus Adatok=File(Elem) Módosítók=File(MódElem) Finomítás Elem=Rekord MódElem=Rekord (kulcs:? (módTip:Módosítás egyéb:?) tart:Elem) Módosítás=(Törlés, Javítás,Beszúrás) 2019.01.18. Adatfedolgozás

3.1 Megoldása a „Z=F(X)” tétel alapján A párosítás elvégezhető (az „Üres” elem bevezetésé-vel), ui. f: X×YZ : Az „Üres” elem bevezetése egy „gyenge” tagolási konfliktusra utal  virtuális típus mind a be-, mind a kimeneti oldalon. Ui. kell tudni X-Y-beli elempárt (esetleg üreset) olvasni, és kell tudni Z-belit (esetleg üreset) írni. X{Üres} × Y{Üres}  Z{Üres} 2019.01.18. Adatfedolgozás

3.1 Megoldása a „Z=F(X)” tétel alapján (folytatás) A feldolgozás vázlata: (X,Y) Þ Olvas Þ elempár Þ Feldolgoz Þ kielem Þ Ír Þ (ZSehová) Típus Elempár=Rekord Kielem=Rekord (bem:Rekord (üres:Logikai (kész:Logikai tart:Elem) tart:Elem) mód:Rekord (kész:Logikai tart:MódElem)) Fel lett dolgozva az elem. Nincs output-elem. Fel lett dolgozva az elem. 2019.01.18. Adatfedolgozás

3.1 Megoldása a „Z=F(X)” tétel alapján (folytatás) Implementáció: Eljárás Időszerűsítés (Változó X:Adatok,Y:Módosítók, Z:Adatok): Változó adpár:Elempár kiad:KiElem Nyitás(X,Y,...); Nyit(Z,...) Ciklus amíg nem Vége?(X,Y) Olvasás(X,Y,adpár) Feldolgoz(adpár,kiad) Írás(Z,kiad) Ciklus vége Zárás(X,Y); Zár(Z) Eljárás vége. 2019.01.18. Adatfedolgozás

3.1 Megoldása a „Z=F(X)” tétel alapján (folytatás) A következők beolvashatók. Eljárás Nyitás( Változó X:Adatok,Y:Módosítók): Nyit(X,…); adpár.bem.kész:=Igaz Nyit(Y,…); adpár.mod.kész:=Igaz Eljárás vége. Eljárás Zárás( Változó X:Adatok,Y:Módosítók): Zár(X); Zár(Y) 2019.01.18. Adatfedolgozás

3.1 Megoldása a „Z=F(X)” tétel alapján (folytatás) Eljárás Olvasás(Változó X:Adatok, Y:Módosítók, adpár:Elempár); Ha adpár.bem.kész akkor Ha nem Vége?(X) akkor Olvas(X,adpár.bem.tart) adpár.bem.kész:=Hamis [különben adpár.bem.kész:=Igaz] Elágazás vége Elágazás vége Ha adpár.mód.kész akkor Ha nem Vége?(Y) akkor Olvas(Y,adpár.mód.tart) adpár.mód.kész:=Hamis [különben adpár.mód.kész:=Igaz] Elágazás vége Elágazás vége Eljárás vége. X{Üres} × Y{Üres}  Z{Üres} X{Üres} × Y{Üres}  Z{Üres} 2019.01.18. Adatfedolgozás

3.1 Megoldása a „Z=F(X)” tétel alapján (folytatás) Eljárás Írás(Változó Z:Adatok, Konstans kiad:KiElem): Ha nem kiad.üres akkor Ír(Z,kiad.tart) [különben Ír(Sehová,kiad.tart)] Eljárás vége. Eljárás Feldolgoz(Változó adpár:Elempár,kiad:KiElem): Elágazás adpár.bem.kész esetén kiad:=KiElem(Hamis,adpár.mód.tart.tart) adpár.mód.kész:=Igaz adpár.mód.kész esetén kiad:=KiElem(Hamis,adpár.bem.tart) adpár.bem.kész:=Igaz adpár.bem.tart.kulcs<adpár.mód.tart.tart.kulcs esetén kiad:=KiElem(Hamis,adpár.bem.tart) adpár.bem.kész:=Igaz … X{Üres} × Y{Üres}  Z{Üres} X vége utáni beszúrás. Y vége: módosítás nélküli másolás. Meggondolandó az esetleges hibalehetőségek érzékelése. Legyen egy HibaLista fájl, amelybe összegyűjtjük a hibásnak érzékelt elemeket, szituációkat (hibafajta, hibás fájl és elemsorszám). Nincs módosítás: másolás. 2019.01.18. Adatfedolgozás

3.1 Megoldása a „Z=F(X)” tétel alapján (folytatás) … adpár.bem.tart.kulcs>adpár.mód.tart.tart.kulcs esetén kiad:=KiElem(Hamis,adpár.mód.tart.tart) adpár.mód.kész:=Igaz adpár.bem.tart.kulcs=adpár.mód.tart.tart.kulcs és adpár.mód.tart.módtip=Törlés esetén kiad:=KiElem(Igaz,akármi) adpár.mód.kész:=Igaz adpár.bem.kész:=Igaz adpár.bem.tart.kulcs=adpár.mód.tart.tart.kulcs és adpár.mód.tart.módtip=Javítás esetén kiad:=KiElem(Hamis,adpár.mód.tart.tart) adpár.mód.kész:=Igaz adpár.bem.kész:=Igaz Elágazás vége Eljárás vége. Beszúrás. Törlés. Meggondolandó az esetleges hibalehetőségek érzékelése. Legyen egy HibaLista fájl, amelybe összegyűjtjük a hibásnak érzékelt elemeket, szituációkat (hibafajta, hibás fájl és elemsorszám). Javítás. Ellenőrzések nincsenek! 2019.01.18. Adatfedolgozás

3.2 Megoldása az „Összefuttatás” tétel alapján Analógiák: 2019.01.18. Adatfedolgozás

3.2 Megoldása az „Összefuttatás” tétel alapján (folytatás) Ti. a bemeneti fájl kész-e? Ti. a módosító fájl kész-e? Típus Puffer=Rekord MódPuffer=Rekord (kész:Logikai (kész:Logikai tart:Elem) tart:MódElem) Eljárás Időszerűsítés(Változó X:Adatok, Y:Módosítók, Z:Adatok): Változó i:Puffer j:MódPuffer Nyit(X,...); ElőreOlvasX(X,i) Nyit(Y,...); ElőreOlvasY(Y,j) Nyit(Z,...) Csak módszertani okok miatt nem „ágyazzuk be” az előreolvasást a nyitásokba... A módszertani ok: a későbbiek során is fel-felbukkan az ElőreOlvasás, így jobb ha itt is látszik; mag azután most nem is egy „virtuális típus” bevezetéséről van szó. 2019.01.18. Adatfedolgozás

3.2 Megoldása az „Összefuttatás” tétel alapján (folytatás) … Ciklus amíg nem i.kész és nem j.kész Elágazás i.tart.kulcs<j.tart.tart.kulcs esetén Ír(Z,i.tart); ElőreOlvasX(X,i) i.tart.kulcs=j.tart.tart.kulcs esetén Ha j.tart.módTip=Javítás akkor Ír(Z,j.tart.tart) Elágazás vége ElőreOlvasX(X,i) ElőreOlvasY(Y,j) i.tart.kulcs>j.tart.tart.kulcs esetén Ír(Z,j.tart.tart); ElőreOlvasY(Y,j) Elágazás vége Ciklus vége … Emlékeztető: Puffer=Rekord (kész:Logikai tart:Elem) Elem=Rekord (kulcs:?,egyéb:?) MódPuffer=Rekord (kész:Logikai tart:MódElem) MódElem=Rekord (módTip:Módosítás tart:Elem) Módosítás=(…) 2019.01.18. Adatfedolgozás

3.2 Megoldása az „Összefuttatás” tétel alapján (folytatás) … Elágazás nem i.kész esetén Ciklus amíg nem i.kész Ír(Z,i.tart) ElőreOlvasX(X,i) Ciklus vége nem j.kész esetén Ciklus amíg nem j.kész Ír(Z,j.tart.tart) ElőreOlvasY(Y,j) Ciklus vége Elágazás vége Zár(X); Zár(Y); Zár(Z) Eljárás vége. Nyilván az elágazás gond nélkül elhagyható. Ismét a világosabb fogalmazás érdekében választjuk ezt az eggyel több vizsgálatot igénylő megoldást. 2019.01.18. Adatfedolgozás

3.2 Megoldása az „Összefuttatás” tétel alapján (folytatás) Eljárás ElőreOlvasX(Változó X:Adatok, i:Puffer): Ha Vége?(X) akkor i.kész:=Igaz különben i.kész:=Hamis; Olvas(X,i.tart) Eljárás vége. Eljárás ElőreOlvasY(Változó Y:Módosítók, j:MódPuffer): Ha Vége?(Y) akkor j.kész:=Igaz különben j.kész:=Hamis Olvas(Y,j.tart.tart) 2019.01.18. Adatfedolgozás

4. Külső rendezések Probléma az adatsorozat 1. terjedelmessége (nem fér a memóriába), 2. szekvencialitása (nincs közvetlen hozzáférés). Miért nem erőltethetők a belső rendezések? Elvileg is gyakorlatilag is reménytelen. Megoldásvázlat: ad 1. A memóriába beférő darabot belső rendezéssel rendezni, így kapunk egy futamot. ad 2. Egy szekvenciális módszerrel fokozatosan nö-velni a futamok hosszát, amíg egyetlen rendezett so-rozattá nem lesz, ez a módszer lehet az összefésülés. A „Miért nem…?”–hez: A legoptimistább esetben, amelynél találnánk „elvileg” működő algoritmust, lesújtó „gyakorlati” problémába ütköznénk: N2 elemolvasással jellemezhető a hatékonyság! 2019.01.18. Adatfedolgozás

4.1 Négy munkafájlos rendezés A lényeg: A rendezés (F): a bemenet futamokra szedése 2 munkafájlba (H), majd a fájlbeli futamok összefésülése (G). 1. A H megkonstruálása: Tagolási konfliktus  Virtuális típus: • futamonként egy-egy fájl (kivitelezhetetlen) • sok futam egy fájlban (virtuális fájlkezelés) F(X):=H•G(X) Típus [H-hoz] Bemenet=File(Elem) Kimenet=File(Futam) Elem=?  Futam=File(Elem) A Futam típushoz: persze mondhatnánk, hogy Tömb(1..??:Elem), hiszen úgyis a memóriában rendezzük, de mégsem, mert később a futamok hossza változni fog a fájlban. A futamonként egy fájlhoz: ez valójában a fájl méretétől függő számú fájlt jelent, ami alapfeltevésünknek (ti. a memóriaigény nem lehet arányos a fájl elemszámával) mondana ellent, hisz a fájlokhoz kisebb-nagyobb memóriatartomány szükségképpen tartozik. FutamFile 2019.01.18. Adatfedolgozás

4.1 Négy munkafájlos rendezés (folytatás) G=összefésülés  (legalább) 2 fájl kell hozzá • 2 fájlban választjuk szét a futamokat. A futamok felváltva: hol egyikbe, hol másikba… 2. A G megkonstruálása: Tagolási + rendezetlenségi konfliktus Típus [H-hoz] Bemenet=File(Elem) Kimenet=File(Futam)× File(Futam) Elem=?  Futam=File(Elem) Típus [G-hez] Bemenet=File(Futam)× File(Futam) Kimenet=File(Elem) Futam=File(Elem)  Elem=? 2019.01.18. Adatfedolgozás

4.1 Négy munkafájlos rendezés (folytatás) G mint futamokon értelmezett leképezés: Tehát 4 munkafájl szükséges a megvalósításhoz. X ,ha FutamSzám(X)=1  FutamSzám(Y)=0 G(X,Y):=  G(G1(X,Y)) ,egyébként (Öf(Xi,Yi),Üres),ha Xi,Yi páratlanadik futam G1:(Xi,Yi)  (Üres,Öf(Xi,Yi)),ha Xi,Yi párosadik futam Öf: összefésülés Típus [G1-hez] Bemenet=File(Futam)×File(Futam) Kimenet=File(Futam)×File(Futam) Futam=File(Elem)  {Üres} Elem=? 2019.01.18. Adatfedolgozás

4.1 Négy munkafájlos rendezés (folytatás) Példa a részletezés elé: Legyen X=(x1, ..., xN) a rendezendő sorozat; M1, M2, M3 és M4 a munkafájlok; a memóriá- ba k db fér be. Kezdetben M1..4=( ). 0. lépés: M1..2 előállítása: M1=(x1,...,xk, x2k+1,...,x3k, ...) M2=(xk+1,...,x2k, x3k+1,...,x4k, ...) 1. lépés: M1..2 összefésülése: M3=(x1,...,x2k, x4k+1,...,x6k, ...) M4=(x2k+1,...,x4k, x6k+1,...,x8k, ...) 2..i. lépés: M1..2 M3..4 szerepcserés összefésülése. Az i. lépésben a futamhossz: 2ik  max(i)=n: 2nkN  nlog2(N/k) … és mivel egy fájlpár összefuttatása során mind az N elemet újra kell olvasni (és írni), ezért a szükséges fájl-műveletek száma N*log2(N/k). (Azaz a –z elvileg is aligha létrehozható– belső rendezésből kiinduló megoldásnál becsült N2-nél jobb!) 2019.01.18. Adatfedolgozás

4.1 Négy munkafájlos rendezés (folytatás) Reprezentáció: Implementáció: Típus SFV=Tömb(1..4:SF) [SFV=Segédfájl-Vektor] SF=Rekord(fájl:Kimenet, db:Egész) [SF=Segédfájl] fájlbeli futamszám Eljárás NégyfájlosRendezés(Változó X:Bemenet, M:SFV, K:Egész): Szétrak(X,M,K) SoxorÖsszefésül(M,K) Töröl(M(2).fájl,M(3).fájl,M(4).fájl) Eljárás vége. Kezdő futamhossz 2019.01.18. Adatfedolgozás

4.1 Négy munkafájlos rendezés (folytatás) A H függvény kiszámítása. Eljárás Szétrak(Változó X:Bemenet, M:SFV, K:Egész): … [fájlnyitások] M(1).db:=0; M(2).db:=0; MI:=1 Ciklus amíg nem Vége?(X) FutamOlvasás(X,R,K) [R=puffer] FutamRendezés(R) FutamÍrás(M(MI).fájl,R); M(MI).db:+1; MI:=3-MI Ciklus vége … [fájlzárások] Eljárás vége. Eljárás SoxorÖsszefésül(Változó M:SFV, K:Egész): Ciklus Páronként(M,K) [(1,2)(3,4)] Csere(1,3) [„megcseréli” a fájlokat]; K:=2*K amíg M(1).db+M(2).db≠1 Ciklus vége Eljárás vége. hf hf hf A G függvény kiszámítása. 2019.01.18. Adatfedolgozás

4.1 Négy munkafájlos rendezés (folytatás) A G1 függvény kiszámítása. Eljárás Páronként(Változó M:SFV, Konstans K:Egész): … [fájlnyitások] HOVA:=3; HONNAN:=1 M(HOVA).db:=0; M(HOVA+1).db:=0 Ciklus I=1-től M(HONNAN+1).db-ig [a „rövidebbig”] Ha I Mod 2=1 akkor CÉL:=HOVA különben CÉL:=HOVA+1 KétFutamotÖsszefésül(M,K,HONNAN,CÉL); M(CÉL).db:+1 Ciklus vége Ha M(HONNAN).db>M(HONNAN+1).db akkor [utolsó egyke] Ha M(HONNAN).db Mod 2=1 akkor CÉL:=HOVA különben CÉL:=HOVA+1 Másol(M(HONNAN).fájl,M(CÉL).fájl); M(CÉL).db:+1 Elágazás vége … [fájlzárások] Eljárás vége. hf A „rövidebbig”-hez: világos, hogy ha nem azonos számú futamot tartalmaz a két fájl, akkor a kisebb végén van az „egyke”. hf 2019.01.18. Adatfedolgozás

4.2 Három munkafájlos rendezés A lényeg: Az előzőhöz hasonlóan a rendezés (F): a bemenet futamokra szedése 2 munkafájlba (H), majd a fájlbeli futamok összefésülése (G). A részletek megértéséhez egy példa: F(X):=H•G(X) Visszafelé követve a fájlokbeli futamszám alakulását 1. fájl 2. fájl 3. fájl 1 0 0 Végállapot 0 1 1 Összefésülés: (2,3)  1 1 0 2 Összefésülés: (3,1)  2 3 2 0 Összefésülés: (1,2)  3 0 5 3 Összefésülés: (2,3)  1 5 0 8 Összefésülés: (3,1)  2 2019.01.18. Adatfedolgozás

4.2 Három munkafájlos rendezés (folytatás) Megfigyelés: Az összefésülésben résztvevő fájlok ciklikusan következnek. A futamok száma az egymást követő Fibonacci- számok. Következmény: A kezdeti Fibonacci-futamszám „mesterséges” (0 hosszúságú) futamok hozzáillesztésével érhető el. Nem azonos hosszúak a futamok: tárolni kell a futamhosszat vagy egy futamvégjelet. 2019.01.18. Adatfedolgozás

4.2 Három munkafájlos rendezés (folytatás) A G, G1 megfontolása: l. korábban. Implementáció: Eljárás SoxorÖsszefésül(Változó M:SFV): Ciklus amíg M(1).db+M(2).db+M(3).db≠1 Páronként(M) [(1,2)3] CiklikusLéptetés(M) [1231] Ciklus vége Eljárás vége. 2019.01.18. Adatfedolgozás

4.3 Prioritási soros rendezés A lényeg: · a memóriában egy rendezett (prioritási) sor van, · a legkisebb elemét kiírjuk a munkafájlba, és · rendezettségnek (prioritásának) megfelelő helyre, beillesztjük következőként a beolvasott elemet. · Amikor a fájlt végigolvastuk, · a memóriában a legnagyobbak találhatók, és · a kiírt fájlban minden elem (legalább a memó-riabeli darabszám-1-gyel) közelebb kerül a vég-leges helyéhez. 2019.01.18. Adatfedolgozás

4.3 Prioritási soros rendezés (folytatás) Implemetáció: Eljárás PrSorosRendezés(Változó X:Bemenet,Y:Kimenet): Ciklus amíg … kell? … … [fájlnyitások] db:=0; ÜresPrSor Ciklus amíg nem Vége?(X) és db<K Olvas(X,adat); PrSorba(adat); db:+1 Ciklus vége Ciklus amíg nem Vége?(X) PrSorból(adat); Ír(Y,adat) Olvas(X,adat); PrSorba(adat) Ciklus vége Ciklus amíg nem ÜresPrSor? PrSorból(adat); Ír(Y,adat) Ciklus vége … [fájlzárások] Ciklus vége Eljárás vége. hf hf 2019.01.18. Adatfedolgozás