;;;;;;;;;;;;;;;;;;;;;; /* "A" részfeladat */ tanuld foatlag:sor if [not:urese:sor] [atlag 0 elsonelkuli:elso:sor elsonelkuli:elso:sor~ foatlag elsonelkuli:sor] vége tanuld atlag :rekdb :sor :indsor ; fv(hanyadik rekurziv hivas, sor, indulasi sor (nev, jegy) parok ; sor, amivel meghivjuk, itt mar csak a [Sari 2][Feri 4]... if [sor==0] ; then [ if [sor==indsor] ~ ; eleve ures a sor (then) [atlag=0] ~ ; nem volt ures, de elfogyott (else) [ atlag=atlag/rekdb ] ] ; mar kiszamolhatjuk az atlagot ; else: atlag=utolso(elso(s)) + atlag(rekdb+1, elsonelkuli(s), indsor) [atlag=utolso :elso :s + atlag rekdb+1 elsonelkuli :s indsor] vége ;;;;;;;;;;;;;;;;;;;;;; /* "B" részfeladat */ tanuld fomaxtan:sor maxtan(0,s,0) vége tanuld maxtan :rekszam :s :eddigimax if [rekszam==0] ; (then) ; ha nem teljesen ures a sor, akkor... [ if [s==0] [maxtan=0] ] ; (else) ; ... az adott targyat tanulok szamanak kiszamitasa [ mennyitan elsonelkuli :elso :s ~ ; ... ha tobben vannak, mint eddig, akkor csere(eddigi csucs, uj csucs) if [eddigimax<=mennyitan] [eddigimax=mennyitan] ~ ; ... a tobbi targyra is lefuttatjuk maxtan rekszam+1 elsoutani :s eddigimax ] vége tanuld mennyitan :sor ; a sor itt mar csak a [Sari 2][Feri 4]... if [sor==0] [mennyitan=0] ; ha nem teljesen ures a sor, akkor megszamoljuk, hany elemu [mennyitan= 1 + mennyitan elsonelkuli :s] vége ;;;;;;;;;;;;;;;;;;;;;; /* "C" részfeladat */ tanuld c_foprogram :s if not: ürese: s ; mondat első:első:elsőnélküli:első:s, első:első:s első:elsőnélküli:első:s [ mondat első: első: elsőnélküli: s első: első: s első elsőnélküli: első: s ; és a következő sor is az "akkor" ágban van! ; c_foprogram elsőnélküli:s c_fopogram: elsőnélküli: s ] vége