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

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

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

Bevezetés a programozásba I.

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

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

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

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.

Bevezetés a programozásba I.

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

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

Felvételi tematika INFORMATIKA

Bevezetés a programozásba I.

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

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

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

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

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

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,

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

Webprogramozás szakkör

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

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

Vezérlési szerkezetek

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

ELTE SAP Excellence Center Oktatóanyag 1

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

Egyszerű programozási tételek

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

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

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

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

Programozási nyelvek Java

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.

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)

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

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

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

1. gyakorlat

Bevezetés az informatikába

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

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

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

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

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

Összetett programozási tételek

Programozási segédlet

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

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

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

2018, Funkcionális programozás

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

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

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.

Programozási nyelvek Java

Operációs rendszerek gyak.

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

Bevezetés a programozásba

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

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

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):

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

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

INFORMATIKA javítókulcs 2016

Adatok ábrázolása, adattípusok

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

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

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

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

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

BASH SCRIPT SHELL JEGYZETEK

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

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

Bevezetés a programozásba I.

Java gyakorlat feladatai e s megolda sai ( )

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

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 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Á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 1

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 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 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:7 PPKE ITK, Bevezetés a programozásba I 4:8 PROGRAM fajl_maximuma 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 LEZÁR f ** nincs már szükségünk a fájlra KI: "A számok maximuma: ", max PPKE ITK, Bevezetés a programozásba I 4:9 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 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:11 PPKE ITK, Bevezetés a programozásba I 4:12 2

bemenet: karaktereket (k) tartalmazó fájl (f) kimenet: sorok száma (c) PROGRAM sorok_szama f : BEFÁJL, k : KARAKTER, c : EGÉSZ MEGNYIT f : "szoveg.txt" c := 0 ** számláló nullázá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 AMÍG (NEM VÉGE f) LEZÁR f KI: "Sorok száma: ", c PPKE ITK, Bevezetés a programozásba I 4:13 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 PPKE ITK, Bevezetés a programozásba I 4:16 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 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 PROGRAM paros_be_ki 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 3

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 BE f_be : x ** következő elem LEZÁR f_be ** mindkét fájl lezárása LEZÁR f_ki 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) 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:19 PPKE ITK, Bevezetés a programozásba I 4:20 PROGRAM ket_fajl_osszegzese 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" ** 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:21 PPKE ITK, Bevezetés a programozásba I 4:22 ** következő adatok beolvasása: BE f1 : x BE f2 : y LEZÁR f1 LEZÁR f2 KI f3 : "összeg: ", sum, SV ** összeg kiírás LEZÁR f3 ** kimenő fájl lezárás 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:23 PPKE ITK, Bevezetés a programozásba I 4:24 4

bemenet: egy szöveg tömb (szavak) kimenet: az a betűvel kezdődő szavak, valamint a b betűvel kezdődő szavak PROGRAM a_b_betus_szavak bemenet : BEFÁJL, szavak: SZÖVEG[10], i: EGÉSZ MEGNYIT bemenet : "szavak.txt" i := 0 ** első ciklus CIKLUS AMÍG (i<10) BE bemenet : szavak[i] HA (szavak[i][0] = 'a') AKKOR KI: szavak[i] LEZÁR bemenet ** már nincs szükségünk a fájlra PPKE ITK, Bevezetés a programozásba I 4:25 PPKE ITK, Bevezetés a programozásba I 4:26 i := 0 ** második ciklus CIKLUS AMÍG (i<10) HA (szavak[i][0] = 'b') AKKOR KI: szavak[i] PPKE ITK, Bevezetés a programozásba I 4:27 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 bemenet: 50 egész szám egy szekvenciális fájlban (f) kimenet: a legjobb átlagú hallgató (max) sorszáma (ind) PROGRAM legjobb_hallgato f : BEFÁJL, i, j, ind, max : EGÉSZ, sum : VALÓS hallgatok : EGÉSZ[10][5] 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 LEZÁR f ** már nem kell a fájl PPKE ITK, Bevezetés a programozásba I 4:29 PPKE ITK, Bevezetés a programozásba I 4:30 5

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 HA (sum / 5 > max) AKKOR ** maximumkeresés max := sum / 5 ind := i KI: "A legjobb a(z) ", ind+1, ". hallgató." PPKE ITK, Bevezetés a programozásba I 4:31 PPKE ITK, Bevezetés a programozásba I 4:32 6