Függvények
c Farkas
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.
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
Láthatóság és élettartam 1
Mintapélda
Függvények Motiváció
2
Téma
F®program
Pontosítás Továbbiak
A függvényhívás mechanizmusa
c Farkas
Nagy házifeladat
Deníció
B., Fiala P., Vitéz A., Zsóka Z.
3
Gyakorló feladatok
Függvények. Házi feladat.
2016. szeptember 26.
2 / 42
Függvények
c Farkas
Nagy házifeladat
Gyakorló feladatok
Motiváció
Def
main
Mech.
Lok/Glob
Pl.
1. fejezet Függvények
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
2
négyzetösszegét! (1 1
+ 22 + · · · + 112 )
# include < stdio .h > /* printf - hez */
2 3 4 5
int main ( void ) { int i , sum ; /* iter á tor é s a n é gyzet ö sszeg */
6
sum = 0; /* inicializ á l á s */ for (i = 1; i < 12; i = i +1) /* i = 1 ,2 ,... ,11 */ sum = sum + i * i ; /* ö sszegz é s */
7 8 9 10 11 12 13
c Farkas
}
printf ( " A n é gyzet ö sszeg : % d \ n " , sum ); return 0;
B., Fiala P., Vitéz A., Zsóka Z.
link
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 2
int main ( void ) { int i , sum1 , sum2 , sum3 ;
3
sum1 = 0; /* 12 - re */ for ( i = 1; i < 12; i = i +1) sum1 = sum1 + i * i ;
4 5 6 7
sum2 = 0; /* 24 - re */ for ( i = 1; i < 24; i = i +1) sum2 = sum2 + i * i ;
8 9 10 11
sum3 = 0; /* 30 - ra */ for ( i = 1; i < 30; i = i +1) sum3 = sum3 + i * i ;
12 13 14 15 16 17 18 19
}
c Farkas
Í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ó
printf ( " %d , %d , % d \n " , sum1 , sum2 , sum3 ); return 0; link 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
↓
−1 P
x
i
=1
y
c Farkas
B., Fiala P., Vitéz A., Zsóka Z.
i
2
↓
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 2 3 4 5 6 7
int squaresum ( int n ) /* f ü ggv é nydefin í ci ó */ { int i , sum = 0; for (i = 1; i < n ; i = i +1) sum = sum + i * i ; return sum ; }
8 9 10 11
int main ( void ) /* f ® program */ { int sum1 , sum2 , sum3 ;
12
sum1 = squaresum (12); /* f ü ggv é nyh í v ás */ sum2 = squaresum (24); sum3 = squaresum (30);
13 14 15 16 17 18 19
c Farkas
}
printf ( " %d , %d , % d \n " , sum1 , sum2 , sum3 ); return 0;
B., Fiala P., Vitéz A., Zsóka Z.
link 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
(