Függvények Nagy házifeladat Gyakorló feladatok Függvények. Házi feladat. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. szeptember 26. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 1 / 42
Függvények Nagy házifeladat Gyakorló feladatok Tartalom 1 Függvények Motiváció Deníció F program A függvényhívás mechanizmusa Láthatóság és élettartam Mintapélda 2 Nagy házifeladat Téma Pontosítás Továbbiak 3 Gyakorló feladatok c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 2 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. 1. fejezet Függvények c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 3 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Szegmentálás motiváció Írjunk programot, mely kiírja a 12-nél kisebb pozitív egész számok négyzetösszegét! (1 2 + 2 2 + + 11 2 ) 1 # include < stdio.h > /* printf - hez */ 2 3 int main ( void ) 4 { 5 int i, sum ; /* iter á tor és a né gyzet ö sszeg */ 6 7 sum = 0; /* inicializ álás */ 8 for (i = 1; i < 12; i = i +1) /* i = 1,2,...,11 */ 9 sum = sum + i* i; /* ö sszegz és */ 10 11 printf ("A né gyzet ö sszeg : %d\n", sum ); 12 return 0; 13 } link c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 4 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Szegmentálás motiváció 1 int main ( void ) { 2 int i, sum1, sum2, sum3 ; 3 4 sum1 = 0; /* 12 - re */ 5 for ( i = 1; i < 12; i = i +1) 6 sum1 = sum1 + i* i; 7 8 sum2 = 0; /* 24 - re */ 9 for ( i = 1; i < 24; i = i +1) 10 sum2 = sum2 + i* i; 11 12 sum3 = 0; /* 30 - ra */ 13 for ( i = 1; i < 30; i = i +1) 14 sum3 = sum3 + i* i; 15 16 printf ("%d, %d, %d\n", 17 sum1, sum2, sum3 ); 18 return 0; 19 } link Írjunk programot, mely elvégzi az el bbi feladatot a 12, 24 és 30 számokra! Copy+Paste+javítgatás Sok hibalehet ség Hosszú program Nehezen karbantartható c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 5 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Függvények A függvény Önálló programszegmens Gyakran el forduló m veletsor elvégzésére Különböz paraméterekkel lefuttatható (hívható) Kiszámol valamit, és azt visszaadja a hívó programrésznek x x 1 i 2 i=1 y c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 6 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Függvények megoldás 1 int squaresum ( int n) /* fü ggv é nydefin í ci ó */ 2 { 3 int i, sum = 0; 4 for ( i = 1; i < n; i = i +1) 5 sum = sum + i* i; 6 return sum ; 7 } 8 9 int main ( void ) /* f program */ 10 { 11 int sum1, sum2, sum3 ; 12 13 sum1 = squaresum (12); /* fü ggv é nyh ívás */ 14 sum2 = squaresum (24); 15 sum3 = squaresum (30); 16 17 printf ("%d, %d, %d\n", sum1, sum2, sum3 ); 18 return 0; 19 } link c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 7 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Függvény deníciója Függvénydeníció szintaxisa <visszatérési érték típusa> <függvény azonosító> (<formális paraméterek listája>) <blokk> 1 int squaresum ( int n) 2 { 3 int i, sum = 0; 4 for ( i = 1; i < n; i = i +1) 5 sum = sum + i* i; 6 return sum ; 7 } c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 8 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Függvény deníciója A visszatérési érték típusa: A kiszámolt érték típusa 1 double average ( int a, int b) 2 { 3 return 0.5 * (a + b ); 4 } vagy void (üres), ha a függvény nem számol ki semmit 1 void print_ point ( double x, double y) 2 { 3 printf (" (%.3 f, %.3 f)", x, y ); /* (2.000, 4.123) */ 4 } sokszor nem a kiszámolt érték, hanem a mellékhatás a fontos c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 9 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Kitér : F hatás és mellékhatás F hatás a függvény kiszámolja és visszaadja a visszatérési értéket Mellékhatás a függvény csinál még valamit (képerny re, fájlba ír, lejátssza az MP3-at, kilövi a rakétát... ) Bizonyos programnyelvek határozott különbséget tesznek különböz programszegmensek között: függvény a f hatás a lényeg eljárás nincs f hatás, a mellékhatás a fontos C-ben csak függvény létezik, az eljárást az üres (void) visszatérési típusú függvények testesítik meg. Általában törekedjünk a f - és mellékhatás szétválasztására! c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 10 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Függvény deníciója Formális paraméterlista Paraméterek deklarációja külön-külön, vessz vel elválasztva, hogy a függvényben adott néven hivatkozhassunk rájuk 1 double volume ( double x, double y, double z) 2 { 3 return x* y* z; 4 } Számuk lehet 0, 1, 2,... tetsz legesen sok (127 ) 0 számú paramétert void-dal jelölünk 1 double read_ next_ positive ( void ) 2 { 3 double input ; 4 do scanf ("% lf ", & input ) while ( input <= 0); 5 return input ; 6 } c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 11 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Függvény deníciója A return utasítás megadja a visszatérési értéket, megszakítja a függvényblokk végrehajtását, és visszatér a hívóhoz több is lehet bel le, de az els végrehajtásakor visszatér 1 double distance ( double a, double b) 2 { 3 double dist = b - a; 4 if ( dist < 0) 5 return - dist ; 6 return dist ; 7 } void típusú függvényben is lehet return; c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 12 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Függvényhívás 1 double distance ( double a, double b) 2 { 3... 4 } Függvényhívás szintaxisa <függvény azonosító> (<aktuális paraméterek kif>) 1 double x = distance ( 2.0, 3.0 ); /* x 1.0 lesz */ 1 double a = 1.0; 2 double x = distance (2.5-1.0, a ); /* x 0.5 lesz */ 1 double pos = read_next_positive (); /* ü res () */ c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 13 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. A f program mint függvény 1 int main ( void ) /* már é rtj ük, hogy ez mi */ 2 { 3... 4 return 0; 5 } A f program is függvény Az operációs rendszer hívja meg a program indításakor Nem kap paramétert (ezt kés bb még módosítjuk) Egész (int) értéket ad vissza Hagyományosan helyes lefutás esetén 0-t, egyébként hibakódot Process returned 0 (0x0) execution time: 0.001 s press ENTER to continue. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 14 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. A függvényhívás mechanizmusa 1 /* Té glalap ter ü lete */ 2 int area ( int x, int y) 3 { 4 int S; 5 S = x * y; 6 return S; 7 } 8 9 /* F program */ 10 int main ( void ) 11 { 12 int a, b, T; 13 a = 2; /* alap */ 14 b = 3; /* magass ág */ 15 T = area (a, b ); /* Ter ü let */ 16 return 0; 17 } S 0x1FE8: 0x1FEC: 0x1FF0: 0x1FF4: T 0x1FF8: b 0x1FFC: a 0x2000: regiszter: 6 15 2 3 6 3 2 0 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 15 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. A függvényhívás mechanizmusa Érték szerinti paraméterátadás A függvények az aktuális paraméterek kifejezéseinek értékeit kapják meg paraméterként A paramétereket változóként használhatják, melyek a hívás helyén kapott kezdeti értékkel rendelkeznek. A függvények módosíthatják paramétereik értékét, ennek semmilyen hatása nincs a hívó programrészre. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 16 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Változók láthatósága és élettartama Lokális változók 1 A függvény paraméterei és 2 a függvényben deklarált változók A függvénybe való belépéskor jönnek létre, megsz nnek visszatéréskor. Küls programrész nem látja ket. (még a hívó sem) Globális változók ha lehet, kerüljük A függvényeken (main()-en is) kívül deklarált változók A program futása alatt végig léteznek Mindenki írhatja-olvashatja ket! Névütközés esetén a lokális változó elfedi a globálisat c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 17 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Rejtvény Mit ír ki az alábbi program? 1 # include < stdio.h > 2 3 int a, b; 4 5 void func ( int a) 6 { 7 a = 2; 8 b = 3; 9 } 10 11 int main ( void ) 12 { 13 a = 1; 14 func (a ); 15 printf ("a: %d, b: %d\n", a, b ); 16 return 0; 17 } link c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 18 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Összetett feladat Írjunk C programot, mely a felhasználótól bekér két egész számot (low < high), majd kilistázza a két szám közé es prímeket. A megoldás pszeudokódja szegmensekre bontva: f program BE : low, high MINDEN i - re low -tól high - ig HA pr í mteszt (i) IGAZ KI : i prímteszt(p) MINDEN i - re 2-t l p gy öké ig HA i osztja p -t return HAMIS return IGAZ Figyeljük meg a két i és p szerepét c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 19 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Összetett feladat megoldás 1 # include < stdio.h > /* scanf, printf */ 2 3 int low, high ; /* glob á lis vá ltoz ók */ 4 5 void read ( void ) /* beolvas ó fü ggv é ny */ 6 { 7 printf (" Ké rek egy kisebb és egy nagyobb sz á mot!\ n" ); 8 scanf ("%d%d", & low, & high ); 9 } 10 11 int isprime ( int p) /* pr í mtesztel fv. */ 12 { 13 int i; 14 for ( i =2; i*i <= p; i=i +1) /* i 2- t l p gy öké ig */ 15 if ( p% i == 0) /* ha p oszthat ó i - vel, nem pr ím */ 16 return 0; 17 return 1; /* ha ide eljutottunk, pr ím */ 18 } c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 20 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Összetett feladat megoldás 19 20 int main () 21 { 22 int i; 23 24 read (); /* fü ggv é nnyel beolvassuk a hat á rokat */ 25 26 printf (" Pr í mek %d és %d közö tt :\ n", low, high ); 27 for (i= low ; i <= high ; i=i +1) 28 { 29 if ( isprime (i )) /* fü ggv é nnyel tesztel ü nk */ 30 printf ("%d\n", i ); 31 } 32 33 return 0; 34 } link c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 21 / 42
Függvények Nagy házifeladat Gyakorló feladatok Motiváció Def main Mech. Lok/Glob Pl. Tervezési alapelv A függvények a program többi részével paramétereiken és visszatérési értékükön keresztül tartják a kapcsolatot. Hacsak nem kimondottan ez a feladatuk, nem írnak képerny re nem olvasnak billenty zetr l nem használnak globális változókat c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 22 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak 2. fejezet Nagy házifeladat c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 23 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Téma kiválasztás Milyen témát válasszunk? Milyet ne? Ami közel áll hozzánk, aminek értjük a rendszerét... Amiben van olyan érdekes jellemz, amit csak többféle adat összekapcsolásával tudunk kiszámítani Például: Sportversenyek Hobbihoz kapcsolódó nyilvántartás Katalógusok Túlságosan összetett, bonyolult rendszer Ami szerepel a tárgy honlapján példaként Amit már más is megcsinált... A mi példánk témája a Formula-1 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 24 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Feladat alapok Tisztázzuk, hogy Ki és mire használhatja a programot? A néz k tájékoztatására írjuk, a programot els sorban a kommentátorok használják majd Milyen adatokat veszünk gyelembe? A futamokon mért körid k, kiállási id k, egyéb versenyz i adatok Mit fog kiszámítani a program? Ami még nagyon ráér: Pontosan milyen típusú adatként fogom tárolni az egyes információkat Hogyan fogja számolni a program a megoldást Hogy fogják hívni a forrásfájl(oka)t Milyen adatokkal fogom kipróbálni, hogy jól m ködik-e c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 25 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Bemenet - kimenet Az adatok további sz kítése: Mib l mennyi adatot szeretnénk nyilvántartani? Egy futam vagy több futam eredményei? Versenyz k száma? Csapatokat kezeljük? egy több nem Egyszer bb és bonyolultabb kérdések, amiket a program meg tud válaszolni: Ki nyerte a futamot? Ki futotta a leggyorsabb kört? Mennyi volt a körideje annak a versenyz nek, aki a leglassabb átlagú körben a legjobb körid t futotta? c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 26 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak A f kérdés Akkor végülis mit számítson ki a program? Elég egy (1) bonyolultabb kérdést megcélozni a fentiek közül Persze ne legyen túl bonyolult se Mennyivel gyorsabban kellett volna megtennie a tizedik kört a negyedik versenyz nek, ahhoz, hogy a gy ztes eggyel kevesebb alkalommal el zze meg t, ha feltesszük, hogy a boxba kett vel kevesebbszer állt volna ki? Hány éves a kapitány? Ezt egyébként úgy kell kiszámítani, hogy a körök számát megszorozzuk azzal, hogy mennyi a legid sebb versenyz leghosszabb kiállásának és a leglassabb körnek az id eltérése, majd ebb l levonjuk a... És túl egyszer se Hány versenyz vett részt a futamon? Ki nyerte a futamot? Hány éves a kapitány? Negyvenkett. Mindenképpen olyan kell, amiben szükség van az adatok és kapcsolataik tárolására c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 27 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Adatok viszonya Az adatok körének további pontosításához szükséges A feladat szempontjából lényeges dolgok (résztvev k, objektumok) azonosítása 1 Futam 2 Versenyz 3 Id eredmény (körid vagy kiállási id ) A dolgok (résztvev k, objektumok) közötti kapcsolat jellege Futam : Versenyz Versenyz : Id eredmény 1:több 1:több c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 28 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Tulajdonságok A dolgokhoz (résztvev khöz, objektumokhoz) válasszuk ki a lényeges a tulajdonságokat és határozzuk meg a jellegüket is Azok mindenképpen kellenek, amiket a feladatban fel fogunk használni További tulajdonságok is szerepelhetnek, amik a témakörhöz kapcsolódnak Futam Versenyz Id eredmény Helyszín szöveg Rajtszám egész szám Id tartam valós szám Körök száma egész szám Név szöveg Típus körid /boksz Pálya hossza egész szám Rajtpozíció egész szám c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 29 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Bemeneti fájlok A dolgok tulajdonságai és kapcsolatai alapján meghatározhatjuk, hogy mit kell tartalmaznia a bementi fájloknak 1 A kiírás szerint (legalább) két bemeneti fájl kell Egy-egy fájl adatai vonatkozhatnak egy-egy dolog példányaira Ha egy dologból csak egy példány van, annak adatai esetleg betehet k egy másik fájl elejére Az adatok közti kapcsolatot hivatkozások teremtik meg az egyes példányok egyértelm azonosítása kell hozzá (kulcs) a hivatkozás egy olyan adat, ami egy másik fájlban azonosít egy példányt (küls kulcs) A mi feladatunkban egy versenyz t a Rajtszáma azonosít az id eredménynél a Rajtszám segítségével hivatkozunk a versenyz re 1 Ez valójában egy adatbázis tervezési feladat, amir l kés bb még fognak tanulni, de ilyen szinten némi józan (mérnökhallgatói) ész elegend a tervezéshez c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 30 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Fájlok tartalma Verseny.txt 1. sor Verseny éve: egész szám<tab>verseny helyszín: szöveg 2. sor Körök száma: egész szám 3. sor Pálya hossza méterben: egész szám 4. sor Üres sor 4. sortól Rajtpozíció<TAB>Rajtszám<TAB>Versenyz neve: 3 bet Ido.txt 1. sortól Rajtszám<TAB>Id másodpercben<tab>id típus: K(ör) vagy B(ox) bet c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 31 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Specikáció készítése A hangsúly azon van, hogy 1 milyen adatok alapján, 2 mit fog csinálni a program. Mit veszünk gyelembe a világból és mit nem? Feltételezések az adatokról Például: Az id eredmények id rendben kerülnek be az adatsorba A különleges eseteket hogyan kezeli a program? Legalább néhány fontosabbat gondoljunk át Például: Ha egyetlen versenyz sincs a rajtlistán, akkor a program válasza: SENKI A feladat pontosítása olyan szint kell legyen, hogy az alapján el lehessen kezdeni gondolkodni a megoldáson A bemeneti adatok pontosabb leírására jó módszer lehet megadni, hogy a bemeneti fájlok sorai mit tartalmaznak. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 32 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Adatszerkezet Az adatokat hatékonyan tároló szerkezet felépítéséhez induljunk ki A dolgok példányainak lehetséges számából Ha a specikációból más nem következik, akkor bármennyi lehet Nálunk: egy (1) Futam, és több, el re nem ismert számú Versenyz, illetve Id eredmény A dolgok közti kapcsolatokból A megoldás számításának alapötletéb l Az adatszerkezet általában nem pontosan a fájlok (egyszer ) szerkezetének felel meg, hanem bonyolultabb, de hatékonyabb konstrukció c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 33 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Adatszerkezet példa Egyel re ne gondolkodjunk programozási problémában, mert még nem tanultuk meg az összes eszközt, helyette: Hogyan oldanánk meg rlapok segítségével? Milyen adatok kerülnének egy lapra? Melyik másik lapokat csatolnánk egy laphoz? Monaco VET 1 WEB 2 ROS 8 85.128 87.128 K7.222 K B 86.787 85.544 K90.054 K K 86.554 86.111 K K c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 34 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Felépítési és kiszámítási algoritmusok Továbbra is az rlapos sémában gondolkodva próbáljuk kitalálni, hogy: Hogyan tölthetjük ki az rlapjainkat a fájlok alapján, vagyis építhetjük fel az adatszerkezetet? Mikor kell új lapot betenni, és hová kell csatolni? Melyik lapokon kell módosítani? Hogyan számíthatjuk ki az eredményt? Milyen rendszerben kell végignézni az rlapokat? Milyen adatokat kell róluk gy jteni közben? c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 35 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak Felépítés példa M o n a c o 1 8 5. 1 2 8 K 78 2 8 6. 5 5 4 K 3 3 4 0 8 8 6. 7 8 7 K 4 8 7. 8 8 8 K 1 1 VET... 2 2 WEB 18 8. 6 6 5 B 3 8 ROS 8 8 5. 5 4 4 K 4 4 HAM 1 8 7. 1 2 8 K 5 1 GRO 2 8 6. 1 1 1 K 6 5 ALO 4 8 6. 8 0 8 K 7 6 MAS... 8 9 RAI 18 9 7. 5 6 5 K 9 18 MAL 1 7. 2 2 2 B 8 9 0. 0 5 4 K Monaco VET 1 WEB 2 ROS 8 85.128 87.128 K7.222 K B 86.787 85.544 K90.054 K K 86.554 86.111 K K c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 36 / 42
Függvények Nagy házifeladat Gyakorló feladatok Téma Pontosítás Továbbiak És ami még hátra van Az eddigiek leírása és id ben való leadása Leprogramozás (Megvalósítás, Implementálás) Folyamatosan ismerjük meg a szükséges eszközöket A 9. el adás után már minden ehhez szükséges ismeret meglesz Tesztelés és hibajavítás, ha nem az jön ki, mint amit várunk Dokumentáció befejezése és id ben való leadása c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 37 / 42
Függvények Nagy házifeladat Gyakorló feladatok 3. fejezet Gyakorló feladatok c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 38 / 42
Függvények Nagy házifeladat Gyakorló feladatok 1. Gyakorló feladat Írjon C programot, mely egy egész számot (R) olvas be a standard bemenetr l, majd a standard kimeneten megjelenít egy 10 10 mez méret karakterábrát. Az ábra mez it balról jobbra (x) és fentr l lefelé (y ), 1-t l kezdve egyesével számozzuk. Azon mez kbe, melyekre x 2 + y 2 < R 2, a program a '#' karaktert írja, a többi mez t a '.' karakterrel jelölje. R = 8-ra pl. az alábbi ábra jelenik meg: #######... #######... #######... ######... ######... #####... ###............ Megoldás c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 39 / 42
Függvények Nagy házifeladat Gyakorló feladatok 2. Gyakorló feladat Írjon C programot, mely a standard bemenetére érkez egész számokat dolgozza fel. A program feladata, hogy képezze az összes bejöv szám abszolút értékét, majd kiírja a standard kimenetre a legkisebb és a legnagyobb érték különbségét. A számsor végét a 0 szám jelzi, melyet már nem kell feldolgoznia. Megoldás Feltételezheti, hogy legalább egy feldolgozandó szám érkezik. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 40 / 42
Függvények Nagy házifeladat Gyakorló feladatok 3. Gyakorló feladat Írjon C programot, mely egy legfeljebb 100 valós számot tartalmazó végjeles sorozatot olvas be a standard bemenetr l. A program feladata, hogy a standard kimeneten megadja, hogy hány olyan érték érkezett, mely nagyobb, mint a sorban tízzel korábban érkez érték. Megoldás A sorozat végjele a 0.0 érték. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 41 / 42
Függvények Nagy házifeladat Gyakorló feladatok Köszönöm a gyelmet. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Függvények. Házi feladat. 2016. szeptember 26. 42 / 42