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

Hasonló dokumentumok
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.

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Bevezetés a programozásba. 5. Előadás: Tömbök

Bevezetés a programozásba I.

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

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Bevezetés a programozásba I 7. gyakorlat. C++: szövegkezelés, szekvenciális fájlkezelés. Szövegkezelés Karakterkezelés

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Felvételi tematika INFORMATIKA

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

PPKE-ITK Bevezetés a programozásba 1.

Bevezetés a programozásba I.

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök. Adatfolyamok Hibalehetőségek

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

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Webprogramozás szakkör

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

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

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

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

1. gyakorlat

Programozási tételek. Dr. Iványi Péter

Bevezetés a programozásba I.

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

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

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

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

Vezérlési szerkezetek

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.

Bevezetés az informatikába

ELTE SAP Excellence Center Oktatóanyag 1

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

Egyszerű programozási tételek

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

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Programozási nyelvek Java

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

START. Billentyűzár ki. Üss be egy számot. Beütöttem az összes számot. Hívás. Várakozás. felveszik. Beszélek. Befejezem a beszélgetést.

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

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

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

Hatékonyság 1. előadás

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

Bevezetés a programozásba

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

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Programozási nyelvek Java

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

Összetett programozási tételek

Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Programozási segédlet

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

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

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

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

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

2018, Funkcionális programozás

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

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

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.

Operációs rendszerek gyak.

Közismereti informatika I. 4. előadás

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

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Algoritmizálás és adatmodellezés 2. előadás

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

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

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

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

hatására hátra lép x egységgel a toll

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Algoritmizálás, adatmodellezés 1. előadás

MATLAB. 9. gyakorlat. Cellatömbök, struktúrák, fájlműveletek

Példatár a bevezetés a Matlab programozásába tárgyhoz

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

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

Bevezetés a programozásba I 1. gyakorlat. Programozási alapismeretek, a PLanG programozási nyelv

Maximum kiválasztás tömbben

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

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

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése. Adatfolyamok kezelése. Adatfolyamok kezelése

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

INFORMATIKA javítókulcs 2016

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Adatok ábrázolása, adattípusok

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

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Bevezetés a programozásba. 8. Előadás: Függvények 2.

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

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

Gyakorló feladatok. Az alaputasítások olyanok, mint C-ben. (Részleteket ld. segedletek/02.pdf vagy bármelyik Java tutorial.)

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Átírá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 használata A programok meghatározó része használ fájlokat az adatok kezelésére, hiszen nem mindig közvetlenül adjuk meg az adatokat (megeshet, hogy több adatforrást is kell használnunk) A fájloknál hasonló a működés, mint a szokásos bemenet és kimenet esetében: több típusú adat is előfordulhat, tetszőleges sorrendben, csak figyelnünk kell arra, hogy a megfelelőt olvassuk ki ha az adatokat sorban olvassuk be, akkor szekvenciális fájlról beszélünk, mi csak ilyen fájlokkal foglalkozunk tudjuk, mikor van vége az állománynak, ugyanis minden fájl végén egy fájl vége jel (end of file: EOF), és le tudjuk kérdezni, hogy ezt sikerült-e beolvasni PPKE ITK, Bevezetés a programozásba I 4:2

Fájlok használata Valamikor a bemenő adatokat olvassuk be a fájlból, valamikor a kimenő adatokat írjuk ki, ennek megfelelően megkülönböztetünk: bemeneti fájlt: csak beolvasásra szolgál kimeneti fájlt: csak adatkiírásra szolgál be- és kimeneti fájlt: egyszerre írhatunk benne és olvashatunk belőle (PLanG-ban nincs ilyen) A fájlok ugyanúgy típussal rendelkező változók a programban vannak nyelvek, ahol egy fájl csak egy típusú adatokat tartalmazhat, és vannak olyanok, ahol a fájlban bármi lehet de a fájlműveletek külön utasításokat igényelnek, nem teljesen úgy dolgozunk velük, mint a többi változóval PPKE ITK, Bevezetés a programozásba I 4:3

Logikai és fizikai fájl Amikor deklarálunk egy fájl típusú változót, akkor létrehozunk egy logikai fájlnevet, ez lesz a változó neve A logikai fájlnévből önmagában nem derül ki, melyik az a tényleges fájl, amit kezelni szeretnénk, ezért a változóhoz egy fizikai fájlnevet rendelünk, ez a tényleges fájl neve, ami a lemezünkön van, pl.: /home/groberto/adatok.txt A logikai fájlnevet a program során összepárosítjuk a fizikaival, csak ettől a ponttól használhatjuk a fájlt egy logikai fájlnévhez több fizikai név is tartozhat a program során, de egyszerre csak egy egy fizikai név többször is előfordulhat a program során, de egyszerre csak egy változóhoz tartozhat PPKE ITK, Bevezetés a programozásba I 4:4

PLanG fájlok A PLanG környezet nem kezel tényleges fájlokat, csak szimulálja a működésüket nincsenek fizikai fájlok, hanem a fájlablakok a bemeneti, illetve kimeneti ablakok mellett jelennek meg a fájlok bemeneti fájl esetén ugyanúgy kell az adatokat beírni, mintha a bemenetre írnánk őket ha kimeneti fájlt is használunk, az eredmények a kimeneti fájl ablakában jelennek meg de azért itt is kellenek fizikai fájlnevek, amelyek megjelennek ablakcímként PLanG-ban két fájltípust különböztetünk meg: BEFÁJL, KIFÁJL pl.: f : BEFÁJL PPKE ITK, Bevezetés a programozásba I 4:5

PLanG fájlok Egy fájlban bármilyen típusú adatot tárolhatunk, egyben többfélét is, bármilyen sorrendben, csak mindig a megfelelő típusra kell hivatkoznunk (ahogy megszokhattuk) A fizikai fájlnevet a MEGNYIT paranccsal párosítjuk a fizikai fájlnak nem kell megadnunk az elérését, hiszen nem tényleges fájlt fog hozzárendelni a környezet pl.: MEGNYIT f : "adatok.txt" ** az f logikai névhez az adatok.txt fájl ** (ablak) fog tartozni A megnyitott fizikai fájlokat be is kell zárni, mert addig más program nem férhet hozzá a LEZÁR paranccsal zárjuk be, pl.: LEZÁR f PPKE ITK, Bevezetés a programozásba I 4:6

PLanG fájlok Lehetséges műveletek az olvasás és kiírás (a típustól függően csak egyik alkalmazható) Beolvasást változóba végezhetjük pl.: BE f : a ** ekkor a fájl aktuális eleme a változóba ** kerül, a típusa lehet bármi, amit be ** szeretnénk olvasni Kiírásnál változót, értéket, vagy tetszőleges szöveg eredményű kifejezést is megadhatunk pl.: KI f : a," : ",b bármit kiírhatunk, amit a kimeneti ablakra PPKE ITK, Bevezetés a programozásba I 4:7

Példa Feladat: Olvassunk be 10 pozitív egész számot fájlból, és adjuk meg a legnagyobb számot a kimenetre. tudjuk, hogy a bemeneti fájlban van legalább 10 adat, ezért dolgozhatunk számláló ciklussal a megoldáshoz a maximumkeresés tételét alkalmazzuk Specifikáció: bemenet: számok (t) sorozata, ami fájlban van (f) kimenet: a számok maximuma (max) PPKE ITK, Bevezetés a programozásba I 4:8

Példa Megoldás: PROGRAM fajl_maximuma VÁLTOZÓK: f : BEFÁJL, ** bemenő adatok i, max, t : EGÉSZ MEGNYIT f : "szamok.dat" ** társítás i := 0 max := 0 CIKLUS AMÍG (i < 10) BE f : t ** beolvasunk egy számot HA (t > max) AKKOR max := t HA_VÉGE PPKE ITK, Bevezetés a programozásba I 4:9

Példa Megoldás: i := i + 1 CIKLUS_VÉGE LEZÁR f ** nincs már szükségünk a fájlra KI: "A számok maximuma: ", max PROGRAM_VÉGE PPKE ITK, Bevezetés a programozásba I 4:10

Feldolgozás végjelig Persze a legtöbb esetben nem lehetünk biztosak, mennyi adat van a fájlban, ezért a fájl vége jelig kell olvasnunk A fájl végét a PLanG-ban a VÉGE utasítással tudjuk lekérdezni ez egy logikai eredményt ad, és igaz, ha eljutottunk az EOF jelig, pl.: VÉGE f tehát a beolvasó utasítás nem csak az adatokat, hanem az EOF jelet is beolvassa, ezért figyelnünk kell a feldolgozás közben, hogy mit olvastunk be, adatot, vagy a vége jelet, újabb elágazás kell a ciklusba ha a vége jelet olvastuk be, akkor be kell fejeznünk a feldolgozást PPKE ITK, Bevezetés a programozásba I 4:11

Feldolgozás végjelig Feladat: Határozzuk meg, hány sornyi szöveg van egy fájlban. bármennyi szám lehet a fájlban, ezért a fájl vége jelig kell feldolgoznunk, sőt, előfordulhat, hogy egyáltalán nincsenek adatok a fájlban, ekkor nem kell semmit sem csinálnunk a sorok számát megállapíthatjuk az alapján, hányszor sikerül sorvége jelet karakterként beolvasnunk, ekkor karakterenként olvassuk a fájlt a számlálás tételével megnézzük, sorvége jelet (SV) sikerült-e beolvasni, ha igen, növeljük a számlálót a ciklus addig tart, amíg vége nincs a fájlnak, és mindig meg kell néznünk, hogy a beolvasott karakter nem az EOFe, tehát két elágazásunk lesz egymásba ágyazva PPKE ITK, Bevezetés a programozásba I 4:12

Példa Specifikáció: bemenet: karaktereket (k) tartalmazó fájl (f) kimenet: sorok száma (c) Megoldás: PROGRAM sorok_szama VÁLTOZÓK: f : BEFÁJL, k : KARAKTER, c : EGÉSZ MEGNYIT f : "szoveg.txt" c := 0 ** számláló nullázás PPKE ITK, Bevezetés a programozásba I 4:13

Példa Megoldás: CIKLUS BE f : k HA (NEM VÉGE f) AKKOR ** újabb elágazás, mit olvastunk be HA (k = SV) AKKOR ** számláló elágazása c := c + 1 HA_VÉGE HA_VÉGE AMÍG (NEM VÉGE f) LEZÁR f KI: "Sorok száma: ", c PROGRAM_VÉGE PPKE ITK, Bevezetés a programozásba I 4:14

Előreolvasás Jó lenne, ha ezt a további elágazást ki tudnánk küszöbölni, mert csak bonyolítja a program szerkezetét Az elágazás csak arra kell, hogy megvizsgálja, nem-e a fájl vége jelet olvastuk be, de a ciklusfeltétel is ugyanez, így elég lenne az utóbbi, csak közvetlenül a beolvasás után kéne helyeznünk, hogy közte ne legyen feldolgozás Ötlet: legyen a beolvasás a ciklusmag utolsó utasítása, és eléje tesszük a feldolgozást, így minden beolvasott érték a következő cikluslépésben kerül feldolgozásra, ha az első elemet a ciklus előtt olvassuk be, akkor ez nem okoz problémát Ezt a beolvasási szerkezetet előreolvasásnak nevezzük (hiszen egy adott cikluslépésben a előre olvassuk a következőben feldolgozandó adatot) PPKE ITK, Bevezetés a programozásba I 4:15

Előreolvasás Használjuk előtesztelő ciklust, így már az első beolvasás után vizsgálhatjuk a feltételt ha üres a fájl, akkor a ciklus nem kerül lefutásra, hiszen az első feltételvizsgálat hamis értéket fog produkálni Szerkezete: BE <fájlnév> : <változó> ** első beolvasás CIKLUS AMÍG (NEM VÉGE <fájlnév>) ** feltételvizsgálat közvetlenül a beolvasás ** után <változó feldolgozása> BE <fájlnév> : <változó> ** következő elem beolvasása CIKLUS_VÉGE PPKE ITK, Bevezetés a programozásba I 4:16

Példa Feladat: Egy egész számokat tartalmazó fájlból írjuk ki a páros számokat egy másik fájlba. használjunk előreolvasást minden lépésben ellenőrizzük a feltételt (kettővel oszthatóság), és azonnal kiírjuk az eredményt a feldolgozás során, tehát elemenkénti feldolgozást végzünk legyenek a fizikai fájlok bemenet.dat és kimenet.dat, míg a logikai fájlok f_be és f_ki Specifikáció: bemenet: egész számok (x) egy fájlban (f_be) kimenet: a páros számok egy fájlban (f_ki) PPKE ITK, Bevezetés a programozásba I 4:17

Példa Megoldás: PROGRAM paros_be_ki VÁLTOZÓK: f_be: BEFÁJL, ** bemenet f_ki: KIFÁJL, ** kimenet x: EGÉSZ MEGNYIT f_be: "bemenet.txt" ** társítás MEGNYIT f_ki: "kimenet.txt" ** előreolvasás: BE f_be : x ** első adat PPKE ITK, Bevezetés a programozásba I 4:18

Példa Megoldás: CIKLUS AMÍG (NEM VÉGE f_be) ** feltétel vizsgálat HA (x MOD 2 = 0) AKKOR ** páros, ha kettővel osztható KI f_ki : x, SV ** kiíratás HA_VÉGE BE f_be : x ** következő elem CIKLUS_VÉGE LEZÁR f_be ** mindkét fájl lezárása LEZÁR f_ki PROGRAM_VÉGE PPKE ITK, Bevezetés a programozásba I 4:19

Példa Feladat: Adott két valós számokat tartalmazó fájl, olvassuk be egyenként a számokat a fájlból, és a két szám összegét, valamint az összes szám összegét írjuk ki a egy kimenő fájlba. ismét előreolvasást használunk mindkét fájlban párhuzamosan olvasunk mindkét fájlban két valós változóval (elemenkénti feldolgozás), egy harmadik valós változóban számoljuk az összeget (összegzés) Specifikáció: bemenet: valós számok (x, y) két fájlban (f1, f2) kimenet: a számok összegei (x+y), valamint az összes szám összege (sum) egy fájlban (f3) PPKE ITK, Bevezetés a programozásba I 4:20

Példa Megoldás: PROGRAM ket_fajl_osszegzese VÁLTOZÓK: f1, f2: BEFÁJL, ** bemenet f3: KIFÁJL, ** kimenet x, y, sum: EGÉSZ sum := 0 MEGNYIT f1: "be1.txt" ** társítás MEGNYIT f2: "be2.txt" ** társítás MEGNYIT f3: "ki.txt" PPKE ITK, Bevezetés a programozásba I 4:21

Példa Megoldás: ** előreolvasás mindkét fájlból: BE f1 : x BE f2 : y CIKLUS AMÍG (NEM VÉGE f1) ÉS (NEM VÉGE f2) ** feltétel mindkét bemenetre ** feldolgozás: KI f3 : x + y, SV ** két szám összege sum := sum + x + y ** globális összeg PPKE ITK, Bevezetés a programozásba I 4:22

Példa Megoldás: ** következő adatok beolvasása: BE f1 : x BE f2 : y CIKLUS_VÉGE LEZÁR f1 LEZÁR f2 KI f3 : "összeg: ", sum, SV ** összeg kiírás LEZÁR f3 ** kimenő fájl lezárás PROGRAM_VÉGE PPKE ITK, Bevezetés a programozásba I 4:23

Példa Feladat: adjunk meg 10 szót egy fájlban, írjuk ki az a betűvel kezdődő szavakat, majd a b betűvel kezdődő szavakat a kimenetre a szavakat tömbbe tesszük, a tömb egy eleme: szavak[i] a szöveg első karakterét le tudjuk kérdezni az indexeléssel, mivel már eleve tömbbe tesszük a szavakat, két indexelés lesz egymás mögött, a tömb egy elemének első betűje: szavak[i][0] összesen 2 ciklus kell, egy ciklus beolvasás, valamint az a betűs szavak kiíratása, a második a b betűs szavak kiíratása használjunk elemenkénti feldolgozást PPKE ITK, Bevezetés a programozásba I 4:24

Példa Specifikáció: bemenet: egy szöveg tömb (szavak) kimenet: az a betűvel kezdődő szavak, valamint a b betűvel kezdődő szavak Megoldás: PROGRAM a_b_betus_szavak VÁLTOZÓK: bemenet : BEFÁJL, szavak: SZÖVEG[10], i: EGÉSZ MEGNYIT bemenet : "szavak.txt" PPKE ITK, Bevezetés a programozásba I 4:25

Példa Megoldás: i := 0 ** első ciklus CIKLUS AMÍG (i<10) BE bemenet : szavak[i] HA (szavak[i][0] = 'a') AKKOR KI: szavak[i] HA_VÉGE i := i + 1 CIKLUS_VÉGE LEZÁR bemenet ** már nincs szükségünk a fájlra PPKE ITK, Bevezetés a programozásba I 4:26

Példa Megoldás: i := 0 ** második ciklus CIKLUS AMÍG (i<10) HA (szavak[i][0] = 'b') AKKOR KI: szavak[i] HA_VÉGE i := i + 1 CIKLUS_VÉGE PROGRAM_VÉGE PPKE ITK, Bevezetés a programozásba I 4:27

Mátrixok Példák Feladat: Egy csoportba 10 hallgató jár, akik 5 tárgyat végeznek el a félév során. A hallgatók adatai a hallgatok.txt szekvenciális fájlban vannak, minden sor egy hallgatónak az 5 jegye. Adjuk meg a legjobb átlaggal rendelkező hallgatót. ehhez el kell tárolnunk az adatokat egy 10 soros, 5 oszlopos mátrixban, azaz összesen 50 elemünk lesz az adatokat sorban olvassuk be a fájlból, és tároljuk el a mátrixban egymásba ágyazott ciklusokkal egy sorban átlagát kell vennünk a jegyeknek, amihez összegzést használunk, majd ezekből az átlagokból maximumot kell keresnünk, tehát két programozási tételre van szükségünk, amelyek szintén egymásba vannak ágyazva PPKE ITK, Bevezetés a programozásba I 4:28

Mátrixok Példák Specifikáció: bemenet: 50 egész szám egy szekvenciális fájlban (f) kimenet: a legjobb átlagú hallgató (max) sorszáma (ind) Megoldás: PROGRAM legjobb_hallgato VÁLTOZÓK: f : BEFÁJL, i, j, ind, max : EGÉSZ, sum : VALÓS hallgatok : EGÉSZ[10][5] PPKE ITK, Bevezetés a programozásba I 4:29

Mátrixok Példák Megoldás: MEGNYIT f : "hallgatok.txt" i := 0 ** külső ciklus: i index CIKLUS AMÍG (i < 10) j := 0 ** belső ciklus: j index CIKLUS AMÍG (j < 5) BE f: hallgatok[i][j] j := j + 1 CIKLUS_VÉGE i := i + 1 CIKLUS_VÉGE LEZÁR f ** már nem kell a fájl PPKE ITK, Bevezetés a programozásba I 4:30

Mátrixok Példák Megoldás: max := 0 ** maximum keresés inicializálás ind := -1 i := 0 ** külső ciklus: i index CIKLUS AMÍG (i < 10) sum := 0 ** összeget lenullázzuk j := 0 ** belső ciklus: j index CIKLUS AMÍG (j < 5) sum := sum + hallgatok[i][j] ** összegzés j := j + 1 CIKLUS_VÉGE PPKE ITK, Bevezetés a programozásba I 4:31

Mátrixok Példák Megoldás: HA (sum / 5 > max) AKKOR ** maximumkeresés max := sum / 5 ind := i HA_VÉGE i := i + 1 CIKLUS_VÉGE KI: "A legjobb a(z) ", ind+1, ". hallgató." PROGRAM_VÉGE PPKE ITK, Bevezetés a programozásba I 4:32