34-Zadaci Za Vježbu

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

DUMP Udruga mladih programera

predstavlja ciklus predavanja

Nauite programirati
Rekurzija

www.dump.hr

Zadaci za vjebu
Prvi
Napiite rekurzivnu funkciju int SumaKvadrata(int n) koja izraunava sumu kvadrata prvih n prirodnih brojeva. Primjerice, SumaKvadrata(3) = 1+4+9 = 14. Ugledajte se na formu funkcije Suma iz prvog primjera s predavanja.

Drugi
Da biste se jo jednom uvjerili kako rekurzivno definirane funkcije za zbrajanje, mnoenje i potenciranje definirane na predavanju zaista rade, upotrijebite ih da biste izraunali rezultate slijedeih izraza: 2+3 3*4 3 na etvrtu 4+8*2 4*3+2*5 2 na (3+2) 4+5+6+7

Trei
(Rijeite ga rekurzijom) Neko davno, u dalekoj zemlji Japanu, s radom je zapoela jedna tvornica automobila. U prvom mjesecu rada tvornica je proizvela jedan automobil. U drugom mjesecu rada tvornica je proizvela takoer jedan automobil. U svakom sljedeem mjesecu rada tvornica je proizvela upravo onoliko automobila koliko ih je proizvela u prethodna dva mjeseca zajedno. Koliko je automobila tvornica proizvela u dvadesetom mjesecu rada?

etvrti
Pascalov trokut beskonani je niz brojeva koji se najee prikazuje u obliku sljedeeg trokuta: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 Svi brojevi na katetama ovog trokuta su 1, a svaki broj unutar trokuta suma je dvaju brojeva koji se nalaze iznad njega. Va je zadatak napisati rekurzivnu funkciju int Trokut(int redak, int indeks) koja izraunava lan Pascalova trokuta u zadanom retku na poloaju indeks. Primjerice, funkcijski poziv Trokut(3,2) trebao bi rezultirati vrijednou 2, a funkcijski poziv Trokut(7,3) vrijednou 15.

Peti
Napiite rekurzivnu funkciju brzog potenciranja bEksp na temelju sljedeeg naputka: funkcija ima dva argumenta: prirodan broj baza i prirodan broj eksponent, povratna vrijednost funkcije jednaka je vrijednosti baza^eksponent, ukoliko je eksponent paran broj, vrijednost funkcije bEksp(baza,eksponent) jednaka je sqr(bEksp(baza, eksponent/2)), gdje je int sqr(int x) funkcija koja rauna kvadrat prirodnog broja x, ukoliko je eksponent neparan broj, vrijednost funkcije bEksp(baza,eksponent) jednaka je vrijednosti baza*bEksp(baza,eksponent-1), razmislite koji je osnovni sluaj, pa ga ostvarite uz navedena dva rekurzivna sluaja, napiite funkciju int sqr(int x).

esti
Napiite funkciju vieg reda nazvanu Filter koja dva parametra: a) niz brojeva b) jednu funkciju fn koja prima jedan broj, te vraa istinitosnu vrijednost Funkcija Filter treba vratiti niz brojeva koji se sastoji od svih onih brojeva zadanog niza koji daju vrijednost istina kada se nad njima primijeni zadana funkcija fn.

Sedmi
Uz pomo funkcije Filter iz prethodnog zadataka napiite program koji uitava niz od 8 brojeva, te nakon toga ispisuje: u prvom redu, sve elemente ulaznog niza koji su vei od 10 u drugom redu, sve elemente ulaznog niza koji su parni u treem redu, sve elemente ulaznog niza za koje je funkcija f(x)=x*2-7x-10 vea od 0.

Mala pomo: na primjer, za prvi red bi vam dobro dolo da napiete funkciju bool VeciOdDeset(double broj), koja se moze iskoristiti kao argument funkcije Filter.

Osmi
Uz pomo funkcije Filter iz 6. zadatka, te funkcije Akumuliraj s predavanja, napiite program koji uitava 9 brojeva, te ispisuje: zbroj svih uitanih brojeva veih od 10 umnoak svih uitanih brojeva koji su manji od 10 zbroj svih parnih brojeva.

You might also like