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



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

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

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

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

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

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

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

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

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

A Pascal programozási nyelvben minden programnak a következő szerkezete van:

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

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

INFORMATIKAI ALAPISMERETEK

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

Programozás alapjai Free Pascal

INFORMATIKAI ALAPISMERETEK

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

BATCH Programozás. Tartalomjegyzék

INFORMATIKAI ALAPISMERETEK

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Maximum kiválasztás tömbben

Az első fájlos program

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

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

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

Szerző. Természetesen aktualizálandó adatok.

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

Regionális forduló november 18.

1. Jelölje meg az összes igaz állítást a következők közül!

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

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

Programozási alapismeretek 1. előadás

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

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

Programozási segédlet

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

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

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

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

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

INFORMATIKAI ALAPISMERETEK

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

NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM

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

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Szkriptnyelvek. 1. UNIX shell

Az első program. 1. Első lépés A feladat Specifikáció Algoritmus Kód Második lépés...

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.

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

Programtervezés. Dr. Iványi Péter

Konzolalkalmazások gyors tesztelése

Programozási alapismeretek 3. előadás

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

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

C programozás. 1 óra Bevezetés

Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. II. (programozás) kategória

A legfontosabb DOS parancsok

Neumann János Tehetséggondozó Program Gráfalgoritmusok II.

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

Kirakós játék. Döntő február 22. Alakzatok (katalógus) DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2013/2014

ELEMI PROGRAMOZÁSI TÉTELEK

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

1. feladat: A decimális kódokat az ASCII kódtábla alapján kódold vissza karakterekké és megkapod a megoldást! Kitől van az idézet?

Webprogramozás szakkör

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.

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Delphi programozás I.

INFORMATIKAI ALAPISMERETEK

Tájékoztató. Használható segédeszköz: -

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

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

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

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

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

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

INFORMATIKAI ALAPISMERETEK

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

Programozás alapjai 9.Gy: Struktúra 2.

A feladat. A főprogram

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

Programozás I. gyakorlat

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

Informatika feladatmegoldó verseny. Kiss Elemér Szakkollégium február 19. Dr. Kovács Lehel István

INFORMATIKAI ALAPISMERETEK

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

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

O er e á r ci c ós ó s R en e d n sz s er e e r k e I. G akorlá l s

6. A Pascal nyelv utasításai

WEBrendelés modul Felhasználói kézikönyv

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

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

ReszlAd fájl, kitöltési útmutató:

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

A C# programozási nyelv alapjai

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

Átírás:

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

Holtverseny 2 Feladat: Egy iskolában egyéni és összetett tanulmányi versenyt tartottak. A versenyeken összesen N tanuló vett részt. A versenyek száma M. Rendelkezésre áll a tanulók neve és elért pontszáma egy-egy szekvenciális fájlban. Összesített versenyben csak azon tanulók eredményét értékelik, akik az összes egyéni versenyen indultak és elérték a versenyeken adott minimális pontszámot. Készíts Pascal programot, mely eldönti, hogy az összetett verseny győztese holtversenyben győzött- e! FELHASZNÁLÓI DOKUMENTÁCIÓ Feladat: Megállapítani, hogy a versenyzők összesítésben elért eredményei alapján kihirdethetünk- e abszolút győztest, vagy az aranyérmen több versenyző is osztozik. Környezet: IBM PC, legalább MS DOS 5.0 operációs rendszer. Használat: A program holtv6.exe néven található az A:\ meghajtón, amely nevének leírásával indítható. Az A:\ - n kell lenni a v1.txt, v2.txt vn.txt fájloknak is, melyek az egyes versenyek eredményeit tartalmazzák Indítás után a következő képet kapjuk: A kérdésre 1-nél nagyobb egész szám begépelésével kell válaszolni. Addig nem enged továbblépni, amíg jó adatot nem közlünk a géppel. A hibára hangjelzés is figyelmeztet.

Holtverseny 3 A következőkben a program egyik extra szolgáltatását láthatjuk, melynek során megtudhatjuk kik kerültek be az összetett versenybe, tehát kik vettek részt minden versenyen olyan eredménnyel, hogy versenyenként túlszárnyalták az ott megkövetelt minimumpontszámot. Valamely gomb megnyomására a következő versenyző nevét és az összes versenyben elért pontszámát olvashatjuk. Miután végignéztük a döntősöket Megtudhatjuk, hogy holtverseny alakult- e ki, vagy sem. Másik extra szolgáltatása a programnak, hogy tudatja velünk a győztes(ek) maximális pontszámát, illetve holtverseny esetén, megtudhatjuk a nyertesek neveit is. Keletkezik a program használatakor egy, vagy két új fájl. Egyiknek ny0.txt, másiknak ny1.txt a neve. A fájlok átmeneti tárként szolgálnak a program futása közben. A program lefutása után letörölhetőek.

Holtverseny 4 Fontos szabályok a v1.txt..vn.txt fájlok elkészítéséhez: A fájlok elnevezése: Minden verseny eredményeit v betűvel kezdődő, majd a verseny sorszámára utaló maximum 7 jegyű számmal folytatódó txt kiterjesztésű fájlnevű állományban kell tárolni. Pl.: v01.txt, v1024.txt. A fájlok tartalma Minden fájlt egy számmal kezdünk, melyben az adott verseny minimális pontszámát adjuk meg. <ENTER>-t ütünk, A továbbiakban a versenyző neve, <ENTER>, elért pontszáma <ENTER> kövelkezik A fájlok elhelyezése A versenyekről készült össze fájlt ugyanabba a könyvtárba kell elhelyezni, ahol a holtv6.exe állomány van. Hibalehetőségek: Az első lehetséges hiba: a versenyek mennyiségét rosszul adjuk meg. A program addig kérdezi újból és újból a felhasználót, amíg az 1- nél nagyobb egész számot nem gépel be. Sem karaktert, sem tört számot nem fogad el. Hiányzik, nem olvasható, vagy nem felel meg valamely versenyhez tartozó a fájl a tartalmi, formai követelményeknek. Hibaüzenet jelenik meg hangjelzés kíséretében, melyben megtudjuk, melyik volt az első hibás fájl. A program ezek után valamely gomb megnyomására kilép. A felhasználónak kell gondoskodni arról, hogy megfelelő helyen és állapotban rendelkezésre álljanak a bemenő adatok.

Holtverseny 5 FEJLESZTŐI DOKUMENTÁCIÓ Feladat: Megállapítani, hogy a versenyzők összesítésben elért eredményei alapján kihirdethetünk- e abszolút győztest, vagy az aranyérmen több versenyző is osztozik. Specifikáció: Bemenet: M N, mini N, szöveg szekenciálisfájl M, pont N Kimenet: holtverseny_e L Előfeltétel: M>1 Utófeltétel: nyer= szöveg M {1 i M} és nyer.pont>=mini {1 i M} Maxpont nyer.pont[i] {minden i=1 től fájlonkéni elemszámig} Holtverseny_e= i: maxpont=nyer.pont[i] { i=1 től nyer file elemszámáig} Fontosabb konstansok, változók: Konstans: Kepmeret=2;... Képernyőre listázás esetén hány sort jelenítsen meg Globális változók: fbe1 szöveg...metszetképzés: egyik bemenő halmaz fájlneve fbe2 szöveg... metszetképzés: másik bemenő halmaz fájlneve fki szöveg...metszetképzés: eredmény halmaz fájlneve si :szöveg... karakterré alakított ciklusváltozó (a metszetképzésekhez) fájlok azonosításához pj, pozy egész... segédváltozó képernyőn való pozícionáláshoz maxpont egész...a versenyeken elért maximális pontszám i, ii egész... ciklusváltozók m, egész... versenyek száma holtverseny_e...holtverseny alakult-e ki hiba logikai... Fájlműveletek, vagy beolvasás esetén volt-e hiba Lokális változók: filea, szekvenciális fájl... metszetképzés: egyik bemenő halmaz logikai azonosítója fileb szekvenciális fájl...metszetképzés: másik bemenő halmaz logikai azonosítója filem szekvenciális fájl... metszetképzés: eredmény halmaz logikai azonosítója mini1 egész... versenyenkénti minimumpontszám mini2 egész... versenyenkénti minimumpontszám elem1 szöveg...metszetképzés: versenyző neve egyik halmaz - ban (amihez hasonlítom) pont1 egész...a fenti versenyző által elért pontszám elem2 szöveg... metszetképzés: versenyző neve másik halmaz - ban (amit hasonlítok) pont2 egész...a fenti versenyző által elért pontszám st szöveg...maximum-kiválasztás: nyertes (?) neve pont egész... maximum-kiválasztás: nyertes (?) pontszáma fmax szekvenciális fájl...utolsó metszetképzés: eredmény halmaz -ának logikai azonosítója megjegyzés: a halmaz kifejezés nem egészen helytálló, mert az így jelölt állományok eleminek van sorrendisége.

Holtverseny 6 Algoritmus program osszetettben_a_gyoztes_holtversenyben_gyozott_e; {főprogram} kezdete beolvas; fbe1:='v1.txt'; fbe2:='v2.txt'; fki:='m1.txt'; elsőmetszet_kivalogatassal; {kivételes eset kiemelés. A metszetbe először bekerülő eredmények esetén a mindkét halmaz elemeinél meg kell vizsgálni elérték-e a minimumpontot. Az ezek után keletkezett metszetben már csk olyan versenyzők vannek, akik elérték a minimum pontot. A többi metszet képzésekor csak az újonnan vizsgálandó halmaz elemeire kell ezt a vizsgálatot elvégezni. } ha hiba akkor kilépés a programból; ciklus i:=3 m -ig {be1} ii:=i mod 2 ; str(ii,si) ; fbe1:='m'+si+'.txt'; {be2} str(i,si) ; fbe2:='v'+si+'.txt'; {ki } ii:=abs((i mod 2)-1); str(ii,si) ; fki :='m'+si+'.txt'; metszet_kivalogatassal; ciklus vége; xy pozició a képernyőn(20,5);pozy:=7; ki('bekerült az összesített versenybe:'); filetoscreen(fki); maximumkivalasztas(fki,holtverseny_e,fbe1); xy pozició a képernyőn(22,10);pozy:=15; ha holtverseny_e akkor holtverseny különben ki(' Nem holtversenyben'); ki('abszolút győztes: ',fbe1); ki('pontszáma: : ',maxpont); elágazás vége; vár_egy_billentyűleütésre; program vége. eljárás beolvas; ciklus hiba:=hamis; ki('hány versenyt rendeztek? M= ');be(m); Ha ((Helyes a kiírás, beolvasás) vagy (m<=1)) akkor Ki(<hangjeljés> 'Rossz adat! 1-nél nagyobb egész számot kérek'); hiba:=igaz; Elágazás Vége; amíg ((nem hiba) és (M>1));

Holtverseny 7 eljárás elsőmetszet_kivalogatassal; változók filea,fileb,filem:text; elem1,elem2:szöveg; mini1,mini2,pont1,pont2:egész; hiba:=hamis; rendeld_össze(filea,fbe1);file megnyitása olvasásra (filea); be(filea,mini1); datavalid(fbe1); rendeld_össze(filem,fki); új_fájl(filem); ki(filem,mini1); rendeld_össze(fileb,fbe2); ciklus be(filea,elem1); be(filea,pont1); datavalid(fbe1); file megnyitása olvasásra (fileb); be(fileb,mini2);datavalid(fbe2) ; ciklus be(fileb,elem2); be(fileb,pont2); datavalid(fbe2); ha elem1=elem2 akkor ha pont2>=mini2 és pont1>=mini1 akkor ki(filem,elem1); ki(filem,pont1+pont2); elágazás vége; elágazás vége; amíg fájlvége(fileb); amíg fájlvége(filea); file_zárása(filea); file_zárása(fileb); file_zárása(filem); eljárás metszet_kivalogatassal; változók filea,fileb,filem:text; elem1,elem2:szöveg; mini1,mini2,pont1,pont2:egész; hiba:=hamis; rendeld_össze(filea,fbe1);file megnyitása olvasásra (filea); be(filea,mini1); datavalid(fbe1); rendeld_össze(filem,fki); új_fájl(filem); ki(filem,mini1); rendeld_össze(fileb,fbe2); ciklus be(filea,elem1); be(filea,pont1); datavalid(fbe1); file megnyitása olvasásra (fileb); be(fileb,mini2);datavalid(fbe2) ; ciklus be(fileb,elem2); be(fileb,pont2); datavalid(fbe2); ha elem1=elem2 akkor ha pont2>=mini2 akkor ki(filem,elem1); ki(filem,pont1+pont2); elágazás vége; elágazás vége; amíg fájlvége(fileb); amíg fájlvége(filea); file_zárása(filea); file_zárása(fileb); file_zárása(filem);

Holtverseny 8 eljárás maximumkivalasztas(filename:szöveg; változók holtverseny:logikai; változók nyertes:szöveg); változók fmax:text; st:szöveg; pont:egész; st:='ny.txt'; rendeld_össze(fmax,filename);file megnyitása olvasásra(fmax); maxpont:=0;holtverseny:=hamis; be(fmax,pont); ciklus be(fmax,st);be(fmax,pont); ha pont>=maxpont akkor kezdete ha maxpont = pont akkor holtverseny:=igaz else holtverseny:=hamis; maxpont:=pont;nyertes:=st vége; amíg file_vége(fmax); file_zárása(fmax); eljárás holtverseny; változók fh:text; st:szöveg; j,p:egész; SZÖVEG_SZÍNE (11);HÁTTÉRSZÍN (0); xy pozició a képernyőn(25,14); ki(' HOLTVERSENY ALAKULT KI'); xy pozició a képernyőn(20,16); ki(' A GYŐZTESEK ',maxpont,' PONTOT ÉRTEK EL'); pozy:=20; rendeld_össze(fh,fki);file megnyitása olvasásra(fh);pj:=1; datavalid(fki); be(fh,st); ciklus be(fh,st); be(fh,p); ha p=maxpont akkor xy pozició a képernyőn( 7,pozy+pj);ki('Holtversenyben győztes: ',st); pj:= pj+1; ha pj>kepmeret akkor ablakratores elágazás vége; amíg file_vége(fh); file_zárása(fh) eljárás datavalid(fileneve:szöveg); Ha Helyes a kiírás, beolvasás akkor Ki(<hangjeljés> ' Hiba van a ',fileneve,' File kezelésével!!!'); Ki('1. Ellenőrizze, hogy olvasható-e, vagy létezik-e a jelzett file!'); Ki('2. Ellenőrizze, hogy a file tartalmi, formai követelményenek eleget tesz-e!'); zar; kilépés az op. rendszerbe; elágazás Vége;

Holtverseny 9 eljárás ablakratores; kezdete xy pozició a képernyőn( 7,pozy+pj); ki (' Ha elolvastad, nyomj egy gombot'); vár_egy_billentyűleütésre; töröld_a_képernyőt_a_sor_végéig; pj:=1; ciklus xy pozició a képernyőn( 1,pozy+pj); töröld_a_képernyőt_a_sor_végéig; pj:= pj+1 ; amíg pj>kepmeret; pj:=1; eljárás filetoscreen(filename:szöveg); változók fh:text; st:szöveg; rendeld_össze(fh,filename);file megnyitása olvasásra(fh);pj:=1; datavalid(filename); be(fh,st); ciklus be(fh,st); xy pozició a képernyőn( 7,pozy+pj); ki('név : ',st); pj:= pj+1; be(fh,st); xy pozició a képernyőn( 7,pozy+pj); ki('összpontszám : ',st); pj:= pj+1 ; xy pozició a képernyőn( 7,pozy+pj); ha pj>kepmeret akkor ablakratores amíg file_vége(fh); file_zárása(fh) eljárás zar; ki('.. A program egy gombnyomás után bezáródik...'); vár_egy_billentyűleütésre; Környezet: IBM PC, legalább MS DOS 5.0 operációs rendszer, Turbo Pascal 7.0 fejlesztői környezet, Crt, Util unit.

Holtverseny 10 Forráskód: A program holtv6.pas néven található az A:\ meghajtón. program osszetettben_a_gyoztes_holtversenyben_gyozott_e; uses crt,util; const maxm=100;kepmeret=2; var fbe1,fbe2,fki,si:string; pj,maxpont,pont1,pont2:integer; i,ii,m,mi,pozy:integer; holtverseny_e,hiba:boolean; szin:menucolors; procedure zar; TEXTCOLOR (0);TEXTBACKGROUND (4); gotoxy(15,15); write('.. A program egy gombnyomás után bezáródik...'); readkey; procedure datavalid(fileneve:string); If IOResult<>0 then Begin TEXTCOLOR (0); TEXTBACKGROUND (4); gotoxy(1,10); hiba:=true; clreol; Writeln(#7' Hiba van a ',fileneve,' File kezelésével!!!'); gotoxy(1,11);clreol; Writeln('1. Ellenőrizze, hogy olvasható-e, vagy létezik-e a jelzett file!'); Writeln('2. Ellenőrizze, hogy a file tartalmi, formai követelményenek eleget tesz-e!'); zar; halt; End; procedure beolvas; {$i-} repeat hiba:=false; window(1,1,80,7); TEXTCOLOR (2); TEXTBACKGROUND (0); gotoxy(5,3); write('hány versenyt rendeztek? M= ');window(33,3,39,3); read(m); window(1,1,80,25); If ((IOResult<>0) or (m<=1)) then Begin TEXTCOLOR (0);TEXTBACKGROUND (4); gotoxy(15,10); Write(#7'Rossz adat! 1-nél nagyobb egész számot kérek'); hiba:=true; End; until ((not hiba) and (M>1)); clrscr; {$i+}

Holtverseny 11 procedure elsometszet_kivalogatassal; var filea,fileb,filem:text; elem1,elem2:string; mini1,mini2,pont1,pont2:integer; hiba:=false; {$i-} assign(filea,fbe1);reset (filea); readln(filea,mini1); datavalid(fbe1); assign(filem,fki); rewrite(filem); writeln(filem,mini1); assign(fileb,fbe2); repeat readln(filea,elem1); readln(filea,pont1); datavalid(fbe1); reset (fileb); readln(fileb,mini2);datavalid(fbe2) ; repeat readln(fileb,elem2); readln(fileb,pont2); datavalid(fbe2); if elem1=elem2 then if ((pont2>=mini2) and (pont1>=mini1)) then writeln(filem,elem1); writeln(filem,pont1+pont2); until eof(fileb); until eof(filea); close(filea); close(fileb); close(filem); {$i-} procedure metszet_kivalogatassal; var filea,fileb,filem:text; elem1,elem2:string; mini1,mini2,pont1,pont2:integer; hiba:=false; {$i-} assign(filea,fbe1);reset (filea); readln(filea,mini1); datavalid(fbe1); assign(filem,fki); rewrite(filem); writeln(filem,mini1); assign(fileb,fbe2); repeat readln(filea,elem1); readln(filea,pont1); datavalid(fbe1); reset (fileb); readln(fileb,mini2);datavalid(fbe2) ; repeat readln(fileb,elem2); readln(fileb,pont2); datavalid(fbe2); if elem1=elem2 then if pont2>=mini2 then writeln(filem,elem1); writeln(filem,pont1+pont2); until eof(fileb); until eof(filea); close(filea); close(fileb); close(filem); {$i-}

Holtverseny 12 procedure ablakratores; gotoxy( 7,pozy+pj); write (' Ha elolvastad, nyomj egy gombot'); readkey; clreol; pj:=1; repeat gotoxy( 1,pozy+pj); clreol; inc(pj); until pj>kepmeret; pj:=1; procedure filetoscreen(filename:string); var fh:text; st:string; {$i-} assign(fh,filename);reset(fh);pj:=1; datavalid(filename); readln(fh,st); repeat readln(fh,st); gotoxy( 7,pozy+pj); write('név : ',st); inc(pj); readln(fh,st); gotoxy( 7,pozy+pj); write('összpontszám : ',st); inc(pj); gotoxy( 7,pozy+pj); if pj>kepmeret then ablakratores until eof(fh); close(fh) {$i+}

Holtverseny 13 procedure maximumkivalasztas(filename:string;var holtverseny:boolean;var nyertes:string); var fmax:text; st:string; pont:integer; st:='ny.txt'; assign(fmax,filename);reset(fmax); maxpont:=0;holtverseny:=false; readln(fmax,mi); repeat readln(fmax,st);readln(fmax,pont); if pont>=maxpont then if maxpont = pont then holtverseny:=true else holtverseny:=false; maxpont:=pont;nyertes:=st until eof(fmax); close(fmax); procedure holtverseny; var fh:text; st:string; j,p:integer; TEXTCOLOR (11);TEXTBACKGROUND (0); gotoxy(25,14); write(' HOLTVERSENY ALAKULT KI'); gotoxy(20,16); write(' A GYŐZTESEK ',maxpont,' PONTOT ÉRTEK EL'); {$i-} pozy:=20; assign(fh,fki);reset(fh);pj:=1; datavalid(fki); readln(fh,st); repeat readln(fh,st); readln(fh,p); if p=maxpont then gotoxy( 7,pozy+pj);write('Holtversenyben győztes: ',st); inc(pj); if pj>kepmeret then ablakratores until eof(fh); close(fh) {$i+}

Holtverseny 14 {főprogram} clrscr; beolvas; fbe1:='v1.txt'; fbe2:='v2.txt'; fki:='m1.txt'; elsometszet_kivalogatassal; if hiba then zar ;exit; for i:=3 to m do {be1} ii:=i mod 2 ; str(ii,si) ; fbe1:='m'+si+'.txt'; {be2} str(i,si) ; fbe2:='v'+si+'.txt'; {ki } ii:=abs((i mod 2)-1); str(ii,si) ; fki :='m'+si+'.txt'; metszet_kivalogatassal; clrscr; gotoxy(20,5);pozy:=7;write('bekerült az összesített versenybe:'); filetoscreen(fki); maximumkivalasztas(fki,holtverseny_e,fbe1); clrscr; gotoxy(22,10);pozy:=15; if holtverseny_e then holtverseny else write(' Nem holtversenyben'); gotoxy(22,13); write('abszolút győztes: ',fbe1); gotoxy(22,15); write('pontszáma: : ',maxpont); readkey; end. Tesztelés: A bemenő fájlok tartalma V1.txt V2.txt V3.txt V4.txt V5.txt 50 50 50 50 x50 Nagy Béla Alfa Béla Lényi Ágota Alfa Béla Alfa Béla 20 120 50 1500 1500 Kovács István Horváth Lajos Gipsz Jakab Gipsz Jakab Gipsz Jakab 30 30 20 20 20 Horváth Aladár Benkő Zsazsa Bürke Lajos Bürke Lajos Bürke Lajos 2 60 20 20 20 Alfa Béla Kiss Virág Borsózó Imre Borsózó Imre Borsózó Imre 100 80 40 40 40 Dévai Virág Éltető Napsugár Alfa Béla Dévai Virág Dévai Virág 100 90 100 100 100 Lapos Elemér Dévai Virág Dévai Virág Lapos Elemér Lapos Elemér 100 100 100 10 10 Oriza Triznyák Lapos Elemér Lapos Elemér Oriza Triznyák Oriza Triznyák 100 120 100 100 100 Kovács Viktor Oriza Triznyák Oriza Triznyák Benkő Zsazsa Benkő Zsazsa 100 100 120 63 63 Hortobágyi Pali Kovács Viktor Benkő Zsazsa Kiss Virág Kiss Virág 100 120 63 100 100 Hortobágyi Pali Kiss Virág Kovács Viktor Kovács Viktor 120 100 100 100 Kovács Viktor Hortobágyi Pali Hortobágyi Pali 100 100 100 Hortobágyi Pali 100

Holtverseny 15 Érvényes tesztesetek M=2 esetén: Holtverseny, nyertesek: Alfa Béla, Lapos Elemér, Kovács Viktor, Hortobágyi Pali M=3 esetén: Holtverseny, nyertesek: Alfa Béla, Lapos Elemér, Oriza Triznyák, Kovács Viktor, Hortobágyi Pali M=4 esetén: Abszolút győztes: Alfa Béla Érvénytelen tesztesetek M>4 esetén: pl M=5 Ha létezik v5.txt file: Hiba van a v5.txt file kezelésével 1. Ellenőrizze, hogy olvasható-e, vagy létezik-e a jelzett fájl, 2. Ellenőrizze, hogy a file tartalmi, formai követelményeknek eleget tesz-e! Sajnos a felhasználó a fájl valamelyik sorában ( jelen esetben, az első sorában ) gépelési hibát ejtett (numerikus érték helyett szöveget írt), ki kell javítani, elmenteni és a programot újra futtatni. Ha nem létezik v5.txt file: Hiba van a v5.txt file kezelésével 1. Ellenőrizze, hogy olvasható-e, vagy létezik-e a jelzett fájl, Sajnos a felhasználó vagy nem jó helyre tette a v5.txt nevű fájlt, vagy hibás a fájl, de az is lehet, hogy nem volt 5 verseny, csak az M értékét gépelte el. 2. Ellenőrizze, hogy a fájl tartalmi, formai követelményeknek eleget tesz-e! M<2 esetén, illetve ha M egy szöveg: pl M=1, M=xxx Rossz adat, 1-nél nagyobb számot kér a program, addig, amíg jó adatot nem adunk Fejlesztési lehetőségek: 1. A fájlokat tallózva lehessen beolvasni. Készítette: Naszári László I. évf. levelező informatika tanári szak 2003.

Holtverseny 16 Programozás módszertan 3. beadandó feladat Naszári László I. évf. levelező Informatika tanári szak 2003.