Feltételezés: A file strukturálisan helyes, tanszékenként nem üres, de az adott listázási feladatban kikötött számút nem haladja meg.

Hasonló dokumentumok
Az Összegfokozatos listázás téma 2. gyakorlata

Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések

Közismereti informatika 2.zh T-M szakirány

A feladat. A főprogram

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

Táblázatok fontosabb műveletei 1

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

SZÁMÍTÓGÉPI GRAFIKA VÁGÁS

NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozás alapjai. 5. előadás

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Programozás alapjai. 7. előadás

BASH script programozás II. Vezérlési szerkezetek

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Adatszerkezetek I. 1. előadás

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

A C programozási nyelv VI. Parancssori argumentumok File kezelés

1. A feladatról. 2. Az áramkör leírása. Mechatronika, Optika és Gépészeti Informatika Tanszék D528. Léptetőmotor vezérlése

Maximum kiválasztás tömbben

ELTE SAP Excellence Center Oktatóanyag 1

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

Programozás(A szakirány) II. beadandó feladat Farkas András HP6S15 1. csoport Veszprémi Anna / Hudoba Péter

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

DOKUMENTÁCIÓ KÉSZÍTETTE: Naszári László I. évf. levelező Informatika tanári szak 2003.

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

Az első fájlos program

2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér

3. ZH-ban a minimum pontszám 15

Informatika terméktervezőknek

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Algoritmizálás + kódolás C++ nyelven és Pascalban

S z á m í t ó g é p e s a l a p i s m e r e t e k

Operációs rendszerek gyak.

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

The modular mitmót system. DPY kijelző kártya C API

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

6. A Pascal nyelv utasításai

A feladat címe, rövid emlékeztetje

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

Delphi programozás IV.

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

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

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

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Programozási tételek általánosítása 2. Szlávi Péter 2015

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Programozás Minta programterv a 2. házi feladathoz 1.

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Operációs Rendszerek II. labor. 2. alkalom

Megoldott feladatok. Informatika

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Komputeralgebra Rendszerek

Funkcionális Nyelvek 2 (MSc)

Apple Swift kurzus 3. gyakorlat

Programozási alapismeretek 2009/2010

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Operációs rendszerek gyak.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Az első tömbös program

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Termelő-fogyaszt. fogyasztó modell

INFORMATIKAI ALAPISMERETEK

Rekurzió(k) - iteráció(k) Gyakorlati összefoglaló Tartalom... 2 Alap rekurzív példák... 3 Tételek rekurzív és iteratív megoldásai...

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Delphi programozás III.

Szkriptnyelvek. 1. UNIX shell

Demográfiai modellek (folytatás)

3. Gyakorlat Ismerkedés a Java nyelvvel

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Java II. I A Java programozási nyelv alapelemei

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

A C programozási nyelv II. Utasítások. A függvény.

8.4 Többszálú alkalmazások készítése

INFORMATIKAI ALAPISMERETEK

Adatbányászati szemelvények MapReduce környezetben

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

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

Java gyakorlat feladatai e s megolda sai ( )

Haladó DBMS ismeretek 1

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás II. 2. Dr. Iványi Péter

Átírás:

Program Osszegfokozatok;KERET Feladat: Az alábbi szerkezet file beolvasása és kilistázása úgy, hogy közben a megfelel$ "struktúraváltásokkor" ki kell egészíteni az ún. összegfokozat rekorddal. Összegfokozat tartalmazza: Az aktuális struktúrát azonosító mez$k értékeit (de csak azokat) és az ebbe a struktúrába tartozó elemek számát v. összegét... (hogy mit, az feladatfügg$). Bevezet$, "el$feladatok": 1. Síma, lapozott lista. 2. A file-t úgy kilistázni, hogy az egy tanszéken dolgozók kiférjenek egy lapra (a tanszék nyitórekorddal együtt). Ef: nincs tanszék, ahol többen dolgoznának, mint a képerny$sorok száma-1. File-szerkezet: 1. szint: EGYETEM szintkód, név, rektori hivatal cím, tel.szám karok 2. szint: KAR szintkód, név, dékáni hivatal cím, tel.szám tanszékek (tanszéki egységek) 3. szint: TANSZÉKEK szintkód, név, tanszékcím, tel.szám dolgozók 4. szint: DOLGOZÓ szintkód, név, lakcím, tel.szám, fizetés,... Feltételezés: A file strukturálisan helyes, tanszékenként nem üres, de az adott listázási feladatban kikötött számút nem haladja meg. Megjegyzés: A file csupa azonos típusú elemb$l áll. Ezért a struktúranyitó elemek kiegészülnek --"tartalom nélküli"-- mez$kkel, amelyeket föl lehet használni az összegfokozatok utólagos tárolására. Uses Newdelay,Crt; $i Randnev.inc Type TSzint=(Dolgozo,Tanszek,Kar,Egyetem,Ures); Const KSzint:Array [TSzint] of String=(' ','T','K','E','');kiirandó szintkodh=1; nevh=28; cimh=26; telh=9; fizuh=6; kiíráshossz Type TElem=Record szintkod:tszint; nev:string[nevh]; cim:string[cimh]; tel:string[telh]; fiz:longint; Type TFile=File of TElem; TMegnyitasMod=(Letrehozas,Olvasas); 1

Const LaphOssz=20; $i osszfok.inc -- ebben találhatók a lényeg szemponjából kevésbé fontos általános konstansok, változók, eljárások, függvények. Pl. Var sor:byte, ami a képerny$re kiirt sorok számát tartalmazza Procedure ElemKi kiír egy elemet a fejléchez igazodva (izlésesen) Procedure Lapoz, ami lapot töröl, és fejlécet ír ki, sor-t nulláz Procedure BillreVar, ami billenyty-lenyomásra vár Procedure Megnyit file-t, megfelelo modon Procedure General adatfile-t a fenti szerkezetben Procedure Lezar file-t Procedure Inic, ami inicalizßlja a kiýrßst (~MegnyitLista) Listázó rutinok: 1. Listaz -- egyszerü (természetes) virtális típus bevezetésével 2. ListazMaskent -- (általánosítható) virtális típus bevezetésével (útban a tanszékenkétni listázás felé) 3. TanszTordListaz -- listázás 'tanszék dologozók együtt maradásával' feltétellel Procedure Listaz(Var f:tfile); Input: TBeLap=TFile * BeNyit=Megnyitas, * Beolvas=Read, KiNyit,Kiir,Kizár * Kiir=ElemKi, * Kizár=BillreVar, ha kell; képernyöt töröl) Típus-reprezentációk: Var sor:byte; <-- osszfok.inc Típus-implementációk: Procedure Kizarképernyö:TKilap; If sor>0 then BillreVar; ClrScr 2

A megoldás: Var elem:telem; Listaz Megnyit(f,Olvasas); Lapozképernyö; While not Eof(f) do Read(f,elem); ElemKi(képernyö,elem); Lezar(f); Kizarképernyö EndListaz; ----------------------------------------------------------------- Procedure ListazMaskent(Var f:tfile); Input: TBeLap=Rekord(db:Egész, sorok:tömb(1..maxtszdolg+1:telem)) Elöfeltétel => MaxTszDolg+1=LapHossz * BeNyit=Megnyitas+belap-puffer inicializálás, * Beolvas=puffernyi olvasás, KiNyit,Kiir(belap-puffer!),Kizár * Kiir=belap-puffer kiírása + várakozás + Lapoz + puffer inicializálása * Kizár=ClrScr) Típus-reprezentációk: Type TBeLap=Record db:byte; sorok:array [1..LapHossz] of TElem; Var egytanszek:tbelap; sor:byte; <-- osszfok.inc Típus-implementációk: Procedure BeNyit(Var f:tfile); Megnyit(f,Olvasas); 3

Procedure Beolvas(Var f:tfile ;Var egytanszek:tbelap); While Not Eof(f) and (egytanszek.db<laphossz) do Inc(egyTanszek.db); Read(f,egyTanszek.sorok[egyTanszek.db]); Procedure KiirVar képernyö:tképernyö, Var egytanszek:tbelap; Var i:integer; For i:=1 to egytanszek.db do ElemKi(képernyö,egyTanszek.sorok[i]); nem használom ki, hogy figyeli a sorok számát BillreVar; Lapoz; A megoldás: ListazMaskent Benyit(f); Lapozképernyö; While not Eof(f) do Beolvas(f,egyTanszek); Kiirképernyö,egyTanszek; Lezar(f); ClrScr EndListazMaskent; ----------------------------------------------------------------- Procedure TanszTordListaz(Var f:tfile); Input: bemeneti egység vagy egy tanszék összes dolgozója a nyitóval vagy valami más elem a bementi eleme határát csak el$reolvasási technikával tudjuk megtalálni TBeEgyseg=Rekord(db:Egész, e:telem [az elöreolvasott], sorok:tömb(1..maxtszdolg+1:telem)) Elöfeltétel => MaxTszDolg+1=LapHossz * BeNyit=Megnyitas+belap-puffer inicializálás+elöreolvasás * Beolvas=egységolvasás elöreolvasással, KiNyit,Kiir(belap-puffer!),Kizár * Kiir=belap-puffer kiírása+sor-állítás, ha még kifér 4

ha nem fér ki, akkor + várakozás + Lapoz + puffer inicializálása * Kizár= várakozás + ClrScr) Típus-reprezentációk: Type TBeEgyseg=Record db:byte; e:telem;az elöreolvasott elemek:array [1..LapHossz] of TElem; Var egytanszek:tbeegyseg; sor:byte; <-- osszfok.inc Típus-implementációk: Procedure BeNyit(Var f:tfile); Megnyit(f,Olvasas); Read(f,egyTanszek.e); Procedure Beolvas(Var f:tfile ;Var egytanszek:tbelap); Ef: NOT Eof(f) AND e=elöreolvasott elem egytanszek.db:=1; egytanszek.elemek[1]:=egytanszek.e; Read(f,egyTanszek.e); While Not Eof(f) and (egytanszek.e.szintkod=dolgozo) do Inc(egyTanszek.db); egytanszek.elemek[egytanszek.db]:=egytanszek.e; Read(f,egyTanszek.e); Uf: Eof(f) => egytanszek[1..egytanszek.db]+e=egy egység AND NOT Eof(f) => e=következö nem dolgozó elem If Eof(f) then Inc(egyTanszek.db); egytanszek.elemek[egytanszek.db]:=egytanszek.e; Uf: egytanszek[1..egytanszek.db]=egy egység AND Eof(f) => e=üres AND NOT Eof(f) => e=következö nem dolgozó elem Procedure KiirVar képernyö:tképernyö, Var egytanszek:tbelap; Var i:integer; If sor+egytanszek.db>laphossz then BillreVar; Lapoz; For i:=1 to egytanszek.db do ElemKi(képernyö,egyTanszek.elemek[i]); nem használom ki, hogy figyeli a sorok számát, csak, hogy kiírja és a 5

Procedure Kizarképernyö:TKilap; If sor>0 then BillreVar; ClrScr A megoldás: TanszTordListaz BeNyit(f); Lapoz; While not Eof(f) do Beolvas(f,egyTanszek); Kiirképernyö,egyTanszek; KiZar; EndTanszTordListaz; sor-t növeli ----------------------------------------------------------------- Procedure OsszFokosListaz(Var f:tfile); Input: bemeneti egység vagy egy tanszék összes dolgozója a nyitóval vagy valami más elem a bementi eleme határát csak el$reolvasási technikával tudjuk megtalálni TBeEgyseg=Rekord(db:Egész, e:telem [az elöreolvasott], elemek:tömb(1..maxtszdolg+1:telem)) Elöfeltétel => MaxTszDolg+1=LapHossz * BeNyit=Megnyitas+belap-puffer inicializálás+elöreolvasás * Beolvas=egységolvasás elöreolvasással, KiNyit,Kiir(belap-puffer!),Kizár * Kiir=belap-puffer kiírása+sor-állítás, ha még kifér ha nem fér ki, akkor + várakozás + Lapoz + puffer inicializálása * Kizár= várakozás + ClrScr) OsszFokosListaz ide kell valami EndOsszFokosListaz; 6

Var egy:tfile; Inic; HighVideo; Writeln(Kozepre('File-létrehozás',80)); NormVideo; Megnyit(egy,Letrehozas); General(egy); Lezar(egy); HighVideo; Writeln(Kozepre('Síma listázás',80)); NormVideo; Sima listázás: Listaz(egy); HighVideo; Writeln(Kozepre('Síma listázás -- másként',80)); NormVideo; Sima listázás, másként: ListazMaskent(egy); HighVideo; Writeln(Kozepre('Tanszékre tördelt listázás',80)); NormVideo; TanszékreTördeltListázás: TanszTordListaz(egy); HighVideo; Writeln(Kozepre('Összegfokozatos listázás',80)); NormVideo; Összfokos listázás: OsszFokosListaz(egy); End. 7