Adatfeldolgozás 2. Szlávi Péter

Slides:



Advertisements
Hasonló előadás
– A nemzeti köznevelésről szóló évi CXC. törvény – A szakképzésről szóló évi CLXXXVII. törvény – A nevelési-oktatási intézmények működéséről.
Advertisements

A felhasználói interfész A felhasználói interfész az a felület, amellyel a szoftver az ember felé „fordul”; amellyel a felhasználó nap mint nap találkozik.
SNI-s ALKALMAZÓI VERSENY. SAJÁTOS NEVELÉSI IGÉNYŰ TANULÓK FŐVÁROSI INFORMATIKA TANULMÁNYI VERSENYE Magyar Gyula Kertészeti Szakközépiskola és Szakiskola.
ECM/DMS A GYAKORLATBAN E-SZÁMLA KIBOCSÁTÁS ÉS BEFOGADÁS E-SZÁMLA KIBOCSÁTÁS ÉS BEFOGADÁS
„Zaj vagy zene?”. Rezgés vagy lengés Definíció: A rezgés vagy lengés olyan mozgást jelent amely ismétlődik egy egyensúlyi pont körül. A rezgés és lengés.
A kifizetési kérelem összeállítása TÁMOP-3.2.9/B-08 Audiovizuális emlékgyűjtés.
1 Számítógép Hálózatok A hálózatok kialakulása, alapfogalmak Készítette: Csökmei István Péter ( CsIP ) Szegedi Tudományegyetem Természettudományi Kar levelező.
A KÖNYVTÁRELLÁTÁSI SZOLGÁLTATÓ RENDSZER HATÉKONY MŰKÖDTETÉSE ÉS A SZOLGÁLTATÁS NÉPSZERŰSÍTÉSE VI. KSZR MŰHELYNAP – ZALAEGERSZEG NOVEMBER 11. A KSZR.
A szaktanácsadás szolgáltatási terület dokumentációja Némethné Józsa Ágnes Intézményfejlesztési referens.
Nem csak szövegszerkeszt ő virtuózoknak Az Open Office.org 2.0 béta verzió Bándliné Utasi Mária Writer.
1 Számvitel alapjai Gazdálkodás:a társadalmi újratermelési folyamat szakaszainak (termelés, forgalom, elosztás, fogyasztás) megszervezésére, az ahhoz rendelkezésre.
KÉPZŐ- ÉS IPARMŰVÉSZET ISMERETEK ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA (középszintű) május-június.
A székesfehérvári fiatalok helyzete
Gazdasági informatika - bevezető
Fájlkezelés.
Az „első lépés” TÁMOP
A kérdőívek, a kérdőívszerkesztés szabályai
Programstruktúrák.
Montázs készítése.
AWK ismétlés AWK: adatvezérelt nyelv:
Scilab programozás alapjai
Adatok importálása, rendezése és szűrése
Észlelés és egyéni döntéshozatal, tanulás
Hol található biztonsági megállóhely a vonalszakaszon?
Hangtan „Zaj vagy zene?”.
Hipotézisvizsgálat.
A naptevékenységi ciklus vizsgálata a zöld koronavonal alapján
VEREM.
Logikai programozás 2..
Adatbázis-kezelés (PL/SQL)
Sokszögek modul Pitagórasz Hippokratész Sztoikheia Thalész Euklidesz
Algebrai specifikációk
INFOÉRA 2006 Véletlenszámok
Varianciaanalízis- ANOVA (Analyze Of VAriance)
2. Bevezetés A programozásba
Közigazgatási alapvizsga a Probono rendszerben
Grosz imre f. doc. Kombinációs hálózatok /43 kép
középfokú felvételi eljárás
Számítógépes Hálózatok
Számítógépes Hálózatok
CONTROLLING ÉS TELJESÍTMÉNYMENEDZSMENT DEBRECENI EGYETEM
ONAP ↓ HELYI ÓVODAI PROGRAM ÜTEMTERV TERVEZET
Készítette: Sinkovics Ferenc
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 csoportok tanulása, mint a szervezeti tanulás alapja
A Microsoft SharePoint testreszabása Online webhely
Összeállította: J. Balázs Katalin
Pénzügyi kontrolling bemutatása
A turizmus tendenciáinak vizsgálata Magyarországon
További rendező és kereső algoritmusok
1.5. A diszkrét logaritmus probléma
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 3. Szlávi Péter
Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Családi vállalkozások
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Felvételi a középfokú iskolákban a 2016/2017. tanévben
Áramlástan mérés beszámoló előadás
Bevezetés Tematika Számonkérés Irodalom
Algoritmusok.
A T-spline felületreprezentáció
Szállodai alaptevékenységek bizonylatai
Kórházi és ágazati gazdálkodást érintő informatikai fejlesztések és az azokban rejlő lehetőségek Horváth Tamás Vezérigazgató CompuTREND Zrt.
A tehetséggondozás kihívásai
Előadás másolata:

Adatfeldolgozás 2. 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

2. Struktúramegfeleltetés konfliktusai Mikor van „konfliktus”? Ha nem egyesíthető természetes módon szuperstruktúrák hierarchiájává a bemeneti és kimeneti adatok finomítás-struktúrája. Konfliktus fajták: tagolási összefonódási rendezetlenségi 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Tagolási konfliktus: a lényeg: általános megoldás: virtuális típus bevezetése 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Összefonódási konfliktus: a lényeg: általános megoldás: szétválogatás 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Speciális összefonódási konfliktus: a lényeg: a két „keveredő” sorozat elemeit egymás mögé kell elhelyezni megoldás: kiválogatás (X) + kiválogatvaHozzáírás(Y) (egymásutánírás) 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Speciális összefonódási konfliktus: a lényeg: a két párosan „keveredő” sorozat elemeit csak a második megérkezésekor lehet feldolgozni (előzés nincs!) megoldás: szétválogatás + párosítás/másolás (szétválogatás:sorokban várakoztatás + másolás) 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Speciális összefonódási konfliktus: a lényeg: a két egykén vagy párosan „keveredő” sorozat elemeit csak a második megérkezésekor lehet feldolgozni, de a követési távolság (ismert) nem nagy (a pár része az elsőnek, előzés van; pl. hálózaton a csomagok). megoldás: pufferbe másolás + időszerűsítés 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Rendezetlenségi konfliktus: a lényeg: általános megoldás: (külső) rendezés 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Speciális rendezetlenségi konfliktus: a lényeg: fordított sorrend megoldás: (külső) „veremkezelés” 2019.01.18. Adatfedolgozás

2. Struktúramegfeleltetés konfliktusai (folytatás) Speciális rendezetlenségi konfliktus: a lényeg: csoportokban rossz sorrendben, de a csoportok helyes sorrendben (a csoportméret ismert, nem túl nagy). megoldás: pufferbe másolás + belső rendezés 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus Feloldás: a típusok „összebékítése” virtuális típus(ok) bevezetésével. Típusmódosítás: Reprezentációmódosítás Implementálás Virtuális elem olvasása (bemeneti oldalon) Virtuális elem írása (kimeneti oldalon) Sokszor még: nyitás és zárás „szertartása”, a vég érzékelése is. 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) Példa: Fájl nyomtatása lapozottan (fej=Fájlnév, láb=lapsorszám). Megoldás: Típus Bemenet=File(TElem) Kimenet=File(TLap) TElem=?  TLap=Rekord( fej: TFej törzs: TSorok láb: TLáb) Konfliktus!!! Feloldása: virtuális típus a bemeneti oldalon. Reprezentáció: Bemenet’=File(VLap) VLap=TLapnyiDbElem  TUtolsóLap [Unió] Az világos, hogy TLapnyiDbElem és TUtolsóLap  TSorok 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) Implementáció: Konstans DB:Egész(?) Típus TSorok=Tömb(1..DB:TSor) TSor= … sor … Eljárás VLapOlvasás(Változó X:Bemenet, s:TSorok): i:=0 Ciklus amíg i<DB és nem Vége?(X) Olvas(X,adat); i:+1; s(i):=f(adat) Ciklus vége Ciklus j=i+1-től DB-ig s(j):=ÜresSor Ciklus vége Eljárás vége. f: TElemTSor A maradék kitöltése. Világos utalás arra, hogy a VLap unióként lett definiálva, ti. i<DB feltétel mellett jelent egyáltalán végrehajtást. 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) A Kimenet típus implementálandó, hiszen TLap típus nem standard típus. Implementáció: Eljárás LapÍrás(Változó Z:SzövegFile Konstans s:TSorok): FejlécNyomtatás Ciklus i=1-től DB-ig SorÍr(Z,s(i)) Ciklus vége LáblécNyomtatás [lapsz:+1 és kiírás] Eljárás vége. A teljes feladat megoldása: Nyit(X,…); Nyitás(Z) [lapsz:=0] Ciklus amíg nem Vége?(X) VLapOlvasás(X,sor); LapÍrás(Z,sor) Ciklus vége Zár(X); Zár(Z) TLap=Rekord( fej: TFej törzs: TSorok láb: TLáb) Hf Hf Hf 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) Példa: SzövegFile sorokra tördelése (szó nem törhet el; végjelek nincsenek a szövegben). Megoldás: Típus Bemenet=File(Karakter) Kimenet=File(TSor) Karakter  TSor=(Szó x SzóElválasztó)* Szó=(Karakter\{‘ ‘}\VégJelek)* SzóElválasztó={‘ ‘}* Konfliktus!!! Feloldása: virtuális típus a bemeneti oldalon. Reprezentáció: Bemenet’=File(TSor) TSor=(Szó  SzóElválasztó)* [Típusinvariáns: s:TSor  Hossz(s)SorHossz] Kimenet  File(Karakter)  SzövegFile 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) Implementáció: Típus TSor=Szöveg [Típusinvariáns: …] Konstans MaxSHossz:Egész(?) [Sorhossz] Előreolvasási technika!!! Változó szó,elv:Szöveg [előreolvasott szó/elv.] Eljárás SorNyitás(Változó X:Bemenet): Nyit(X,…) SzóOlvasás(X,szó,elv) [Vége?(X)  szó/elv=’’] Eljárás vége. Elvárás a majdan megírandó SzóOlvasás eljáráshoz! 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) Eljárás SorOlvasás(Változó X:Bemenet, sor:TSor): sor:=’’ [szó+elv előreolvasva] Ciklus amíg nem Vége?(X) és Hossz(sor)+Hossz(szó+elv)MaxSHossz sor:+szó+elv SzóOlvasás(X,szó,elv) Ciklus vége Ha Hossz(sor)+Hossz(szó)MaxSHossz akkor sor:+szó SzóOlvasás(X,szó,elv) [Vége?(X)  szó/elv=’’] Elágazás vége Eljárás vége. Elvárás a majdan megírandó SzóOlvasás eljáráshoz! Elválasztók a sor végéről elhagyhatók 2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) Eljárás SzóOlvasás(Változó …): … Eljárás SorZárás(Változó …): … A Kimenet típus könnyen implementálható, hiszen a TSor típus, bár nem „standard” típus, de Szöveg leszár- mazott. Implementáció: Eljárás SorÍrás(Változó Z:SzövegFile Konstans s:TSor): SorÍr(Z,s) Eljárás vége. Hf Hf TSor=(Szó x SzóElválasztó)* Szöveg Hf a kimeneti típushoz tartozó többi művelet.  2019.01.18. Adatfedolgozás

2.1 Tagolási konfliktus (folytatás) A teljes feladat megoldása: SorNyitás(X); Nyit(Z,…) Ciklus amíg nem Vége?(X) SorOlvasás(X,sor); SorÍrás(Z,sor) Ciklus vége SorZárás(X); Zár(Z) 2019.01.18. Adatfedolgozás

2.2 Összefonódási konfliktus A probléma: Két vagy több sorozat keveredése úgy, hogy a részso- rozatok elemei a feldolgozásnak megfelelő sorrendben vannak. (A feldolgozáshoz a részsorozatok azonos sorszámú elemei alkotnak „egységet”.) Feloldás: Szétválogatás, majd „párhuzamos” feldolgozás. Speciális feladatok: 2.2.1 Szétválogatás és egymásutánírás 2.2.2 Szétválogatás és párosítás 2.2.1 Szétválogatás és időszerűsítés 2019.01.18. Adatfedolgozás

2. 2 Összefonódási konfliktus (folytatás) 2. 2 2.2 Összefonódási konfliktus (folytatás) 2.2.1 Szétválogatás és egymásutánírás Példa: Egy egyirányú utcában két jelzőlámpánál figyelik az átha- ladó autókat: mikor haladt át a lámpánál. Az adatok meg- figyelési idő szerinti sorrendben érkeznek. N db autót fi- gyeltek 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.) Megoldás: Típus Bemenet=File(Forgalom) Kimenet=File(Forgalom) [Idő szerint rendezve] [Lámpa+Idő szerint rendezve] Forgalom=Rekord Forgalom=Rekord (Lámpa:{1,2} (Lámpa:{1,2} Idő:Egész) Idő:Egész) 2019.01.18. Adatfedolgozás

2. 2 Összefonódási konfliktus (folytatás) 2. 2 2.2 Összefonódási konfliktus (folytatás) 2.2.1 Szétválogatás és egymásutánírás Eljárás ForgalomCsoportosítás(Változó X:Bemenet Z:Kimenet): Változó Y:File(Forgalom) [segédfájl] adat:Forgalom Nyit(X,…); Nyit(Y,…); Nyit(Z,…) i:=0 Ciklus amíg i<N Olvas(X,adat) Ha adat.lámpa=1 akkor Ír(Z,adat); i:+1 különben Ír(Y,adat) Ciklus vége Zár(Y); Nyit(Y,…) Ciklus amíg nem Vége?(Y) Olvas(Y,adat); Ír(Z,adat) Ciklus vége Ciklus amíg nem Vége?(X) Olvas(X,adat); Ír(Z,adat) Ciklus vége Zár(X); Zár(Z); Zár(Y) Eljárás vége. Z(xX| x.lámpa=1) Y(xX| x.lámpa=2  x.idő<zN.idő) Az első lámpával végeztünk, a má-sodik eddigi adatai az eredménybe má-solhatók. Z+Y Z+(xX| x.lámpa=2  x.idő>zN.idő) X-ben már csak a második lámpa ada-tai maradhattak, egy-szerűen másolhatók. 2019.01.18. Adatfedolgozás

Egy alkalmas „belső állapotváltozás” tipizálása: 2.2 Összefonódási konfliktus (folytatás) 2.2.2 Szétválogatás és párosítás 1. példa: Egy vasútvonal két állomásán egy nap feljegyeztük, az ösz- szes egyik irányba áthaladó vonat indulási, illetve érkezési idejét (idő szerinti sorrendben). Adjuk meg az áthaladt vo- natok menetidőit a két állomás között! (Nincs előzés.) Megoldás: Típus Bemenet=File(Állomás) Kimenet=File(Vonat) Állomás=Rekord Vonat=Egész [menetidő] (sorszám:{1,2},idő:TIdő) Egy alkalmas „belső állapotváltozás” tipizálása: Bemenet=File(Állomás)TSor Kimenet=File(Vonat)TSor Állomás=Rekord Vonat=Egész (sorszám:{1,2},idő:TIdő) TSor=Sor(Vonat [1. idő]) TSor=Sor(Vonat [1. idő]) Miért nem kell vonatazonosító? Miért nem kell vonatazonosító? 2019.01.18. Adatfedolgozás

Két tipikus állapotváltozás: Előtte Utána 2.2 Összefonódási konfliktus (folytatás) 2.2.2 Szétválogatás és párosítás Két tipikus állapotváltozás: Előtte Utána BeFile  TSor  KiFile BeFile  TSor  KiFile ((1,x),(y,z),...) (s1,...,su) (v1,...,vk) ® ((y,z),...) (s1,...,su,x) (v1,...,vk) ((2,x),(y,z),...) (s1,...,su) (v1,...,vk) ® ((y,z),...) (s2,...,su) (v1,...,vk,x–s1) Eljárás Vonatidők(Változó X:Bemenet,V:Kimenet): … [fájlnyitások] SorInicializálás Ciklus amíg nem Vége?(X) Olvas(X,adat) Ha adat.sorszám=1 akkor Sorba(adat.idő) különben Sorból(t) Ír(V,adat.idő-t) Ciklus vége … [fájlzárások] Eljárás vége. 2019.01.18. Adatfedolgozás

2. 2 Összefonódási konfliktus (folytatás) 2. 2 2.2 Összefonódási konfliktus (folytatás) 2.2.2 Szétválogatás és párosítás 2. példa: Egy vasútvonal két állomásán egy nap feljegyeztük, az ösz- szes, mindkét irányba áthaladó vonat indulási, illetve érke- zési idejét (idő szerinti sorrendben). Adjuk meg az áthaladt vonatok menetidőit a két állomás között! (Előzés nincs, csak egy sínpár van.) Megoldás: Az „extraprobléma”, hogy nem 2, hanem 4 részsorozat ke- veredik ((oda+vissza)*(indulás+érkezés)). Ötlet: azt kell vissza- tartani, amelyikben előbbre haladtunk, azaz érzékelni kell, hogy ez melyik. Ciklus amíg nem Vége?(X) Olvas(X,adat) Ha SorÜres? akkor tip:=adat.sorszám Ha adat.sorszám=tip akkor Sorba(adat.idő) különben Sorból(t) Ír(V,adat.idő-t) Ciklus vége 2019.01.18. Adatfedolgozás

Egy alkalmas „belső állapotváltozás” tipizálása: 2.2 Összefonódási konfliktus (folytatás) 2.2.3 Szétválogatás és időszerűsítés 1. példa: Egy számítógéphálózaton az üzeneteket csomagokra bontva kül- dik. Minden csomag tartalmaz (a csomagsorszám mellett) egy ellenőrző összeget. Ha a vevő valamelyiket hibásnak találja, ak- kor annak megismétlését kéri a küldőtől. A csomagok jó sorrend- ben érkeznek (a javítók is egymáshoz képest). A vevő feladata az üzenetek csomagjainak javítások utáni helyes sorrendbe állítása. Megoldás: (az előzőhöz hasonlóan) … Egy alkalmas „belső állapotváltozás” tipizálása: Bemenet=File(Üzenet)TSor Kimenet=File(Üzenet)TSor Üzenet=Rekord Üzenet=Rekord (sorsz:Egész (sorsz:Egész tart:Szöveg,ell:TEll) tart:Szöveg,ell:TEll) TSor=Sor(Üzenet) TSor=Sor(Üzenet) 2019.01.18. Adatfedolgozás

Tipikus állapotváltozások: Előtte Utána 2.2 Összefonódási konfliktus (folytatás) 2.2.3 Szétválogatás és időszerűsítés (i:Egész /jó-e:{,}) az i. csomag jó-e Tipikus állapotváltozások: Előtte Utána BeFile  TSor  KiFile BeFile  TSor  KiFile ((i/),x2,...) (x2,...) () ® () (z1,...,zk) (z1,...,zk,(i/)) ((i/),x2,...) (x2,...) ((i/),se,...su,(j/),...) ® ((j/),...) (z1,...,zk) (z1,...,zk,(i/),se,...,su) ((i/),x2,,...) (x2,...) ((j/),...,sm) ij (i>j) ® ((j/),…,sm,(i/)) (z1,...,zk) (z1,...,zk) ((i/),x2,...) (x2,...) (...,sm) i(...,sm) ® (…,sm,(i/)) (z1,...,zk) (z1,...,zk) ((i/),x2,...) (x2,...) (...,sm) i(...,sm) ® (…,sm) (z1,...,zk) (z1,...,zk) jók jók 2019.01.18. Adatfedolgozás

2. 2 Összefonódási konfliktus (folytatás) 2. 2 2.2 Összefonódási konfliktus (folytatás) 2.2.3 Szétválogatás és időszerűsítés Eljárás Üzenetek(Változó X:Bemenet, V:Kimenet): … [fájlnyitások] SorInicializálás(s) Ciklus amíg nem Vége?(X) Olvas(X,a) Ha a.ell= akkor JóÜz(a,s,V) különben HibásÜz(s,a) Ciklus vége … [fájlzárások] Eljárás vége. Eljárás JóÜz(Konst. ad:Üzenet, Vált. s:TSor,V:Kimenet): Elágazás Üres?(s) esetén Ír(V,ad) ad.sorsz=Első(s).sorsz [azaz javító csomag] esetén Sorból(s,x); Ír(V,ad) SorÜrítés(s,V) egyéb esetben Sorba(s,ad) Elágazás vége Az ‘a’ megfelelő? 2019.01.18. Adatfedolgozás

Az ‘Első(s)’ megfelelő? 2.2 Összefonódási konfliktus (folytatás) 2.2.3 Szétválogatás és időszerűsítés Eljárás HibásÜzenet(Vált. s:TSor, Konst. ad:Üzenet): Ha ad.sorszÏs akkor Sorba(s,ad) IsmétlésKérés(ad.sorsz) Eljárás vége. Eljárás SorÜrítés(Változó s:TSor, V:Kimenet): Ciklus amíg nem Üres?(s) és Első(s).ell= Sorból(s,ad); Ír(V,ad) Ciklus vége Az ‘Első(s)’ megfelelő? 2019.01.18. Adatfedolgozás

Egy alkalmas „belső állapotváltozás” tipizálása: 2.2 Összefonódási konfliktus (folytatás) 2.2.3 Szétválogatás és időszerűsítés 2. példa: … mint előbb, de a csomagok sorrendje is megváltozhat ... Megoldás: (az előzőhöz hasonlóan) … Egy alkalmas „belső állapotváltozás” tipizálása: Bemenet=File(Üzenet)TSor Kimenet=File(Üzenet)TSor Üzenet=Rekord Üzenet=Rekord (sorsz:Egész (sorsz:Egész tart:Szöveg,ell:TEll) tart:Szöveg,ell:TEll) TSor=PrSor(Üzenet) TSor=PrSor(Üzenet) További ötlet: … ha jön egy új csomag, akkor a prioritási sorba beillesztjük őt, a sor elején levő jókat lehet kiszedni… 2019.01.18. Adatfedolgozás

2.3 Rendezetlenségi konfliktus A probléma: A sorozat elemeinek rossz sorrendje. Feloldás: Rendezés. Speciális feladatok: 2.3.1 Megfordítás 2.3.2 Részleges rendezetlenség 2019.01.18. Adatfedolgozás

2.3 Rendezetlenségi konfliktus (folytatás) 2.3.1 Megfordítás A probléma: A bemenet pontosan ellenkező sorrendű, mint a –kí- vánatos– kimenet. A megoldás: Veremként „működő” fájl. Modul FVerem(Típus TElem): Reprezentáció Változó f:DirektFile(TElem) Implemetáció Eljárás Üres(Változó v:Verem) Verembe(Változó v:Verem Konstans e:TElem) … Függvény Üres?(Konstans v:Verem): Logikai Inicializálás … Modul vége. Típus TElem=? Eljárás Megfordít (Változó X:Bemenet Y:Kimenet): Változó v:FVerem(TElem) … [fájlnyitások] Üres(v) Ciklus amíg nem Vége?(X) Olvas(X,adat); Verembe(v,adat) Ciklus vége Ciklus amíg nem Üres?(v) Veremből(v,adat); Ír(Y,adat) Ciklus vége … [fájlzárások] Eljárás vége. 2019.01.18. Adatfedolgozás

2.3 Rendezetlenségi konfliktus (folytatás) 2.3.1 Megfordítás Egy másik megoldás: Memóriabeli verem+szekvenciális fájl. Modul FVerem(Típus TElem): Reprezentáció Változó v:Verem(TElem) [memóriában] f:SzekvFile(TElem) Implemetáció Eljárás Üres(Változó v:Verem) Verembe(Változó v:Verem Konstans e:TElem) … Függvény Üres?(Konstans v:Verem): Logikai Inicializálás … Modul vége. Típus TElem=? Eljárás Megfordít (Változó X:Bemenet Y:Kimenet): Változó v:FVerem(TElem) … [fájlnyitások] Üres(v) … hf. … [fájlzárások] Eljárás vége. Ötlet: amikor a memóriabeli verem betelik, akkor egy szekvenciális fájlba mint futamot írjuk ki (értsd: egy futam=egy fájl  több fájl; „szabályos” nevek- kel: pl. VeremXXXX.dat, X=számjegy.)… 2019.01.18. Adatfedolgozás

2. 3 Rendezetlenségi konfliktus (folytatás) 2. 3 2.3 Rendezetlenségi konfliktus (folytatás) 2.3.2 Részleges rendezetlenség A probléma: A bemeneti adatok (memóriában tartható, de nem ismert elemszámú) csoportokat alkotnak. A csoportok egymásután helyes sorrendben vannak, de csoporton belül rendezetlenül. Rendezzük az egészet! Típus TElem=? Eljárás CsoportosanRendez (Változó X:Bemenet Y:Kimenet): Változó t:Tömb(1..MaxN:TElem) e:TElem [előreolvasott] … [fájlnyitások] … hf. … [fájlzárások] Eljárás vége. Ötlet: előreolvasási technikával csoportonként (t,e)- be olvassuk, t-ben rendezzük, majd kiírjuk. Az ol- vasás és rendezés egyszerre is végezhető a „beszú- rásos rendezés” elvével. 2019.01.18. Adatfedolgozás