Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --/*
- Zadatak 1.
- Koristeći rekurziju, napisati program koji od korisnika traži da unese broj čija vrijednost mora biti u opsegu od 1 do 10.
- Unesenu vrijednost predati funkciji koja treba da se izvršava onoliko puta kolika je vrijednost predanog argumenta
- (ako korisnik unese broj 5, funkcija treba da 5 puta pozove sama sebe). Pri svakom pozivu funkcija treba da ispiše
- trenutnu vrijednost predanog argumenta.
- */
- #include <iostream>
- using namespace std;
- void Rekurzija(int unos)
- {
- if (unos <= 0) // bazni slucaj
- return;
- cout << "Trenutna vrijednost varijable broj je:" << unos << endl;
- Rekurzija(unos - 1);
- }
- void main()
- {
- int unos = 0;
- do
- {
- cout << "Unesite zeljenu vrijednost od 1-10: ";
- cin >> unos;
- } while (unos > 10 || unos < 1);
- cout << "--Main prije poziva rekurzivne funkcije--" << endl;
- Rekurzija(unos);
- cout << "--Main poslije poziva rekurzivne funkcije--" << endl;
- system("PAUSE");
- }
- --/*
- Zadatak 2. Koristeći rekurziju, napisati program koji korisniku omogućava da unese željeni tekst.
- Uslov za završetak programa je da uneseni tekst sadrži najmanje jednu tačku (.).
- Nakon unosa, program treba obrnutim redoslijedom ispisati sve znakove koji su uneseni do prvog znaka tačke.
- */
- #include <iostream>
- using namespace std;
- void Rekurzija()
- {
- char znak;
- cin.get(znak);
- if (znak != '.')
- {
- Rekurzija();
- cout << znak;
- }
- else
- cout << "Obrnuti redoslijed rijeci: " << endl;
- }
- void main()
- {
- cout << "--Main prije rekurzije--" << endl;
- cout << "Unesite zeljeni tekst (znak . prekida unos): " << endl;
- Rekurzija();
- cout << endl;
- cout << "--Main poslije rekurzije--" << endl;
- system("PAUSE");
- }
- --/*
- Zadatak 3. Koristeći rekurziju, napisati program koji od korisnika traži da unese neko slovo.
- Nakon unosa, program treba da ispiše sva slova koja se nalaze između unesenog i slova 'A'.
- Pored oznake slova, program treba da ispiše i njima pripadajući ASCII kod. Također, potrebno je ispisati odgovarajuću poruku
- u slučaju da korisnik unese znak koji ima ASCII vrijednost manju od slova 'A'.
- */
- #include <iostream>
- using namespace std;
- void Rekurzija(char slovo)
- {
- if (slovo >= 'A')
- {
- cout << "Slovo: " << slovo << " ima ASCII vrijednost od: " << (int)slovo << endl;
- slovo--;
- Rekurzija(slovo);
- }
- else
- cout << "Nije dozvoljeno prikazati slova koja imaju manju ASCII vrijednost od 65 tj. slova A." << endl;
- }
- void main()
- {
- char slovo;
- cout << "--Main prije poziva rekurzivne funkcije--" << endl;
- cout << "Unesite neko slovo: ";
- cin >> slovo;
- Rekurzija(slovo);
- cout << "--Main poslije poziva rekurzivne funkcije--" << endl;
- system("PAUSE");
- }
- --/*
- Zatadak 4. Napraviti program koji korisniku omogućava da unese neki broj.
- Nakon unosa, program treba da, koristeći rekurzivnu funkciju, izračuna sumu svih parnih brojeva koji se nalaze između
- unesenog i broja 100. Prilikom izrade programa voditi računa o tome da korisnik može unijeti broj koji je veći ili manji od broja 100.
- */
- #include <iostream>
- using namespace std;
- int sumaParnih(int broj)
- {
- if (broj == 100)//bazni slucaj
- return 0;
- if (broj < 100) //ako je broj manji od 100
- {
- if (broj % 2 == 0) //ako je broj paran
- return broj + sumaParnih(broj + 2);
- else //ako je broj neparan
- return sumaParnih(broj + 1);
- }
- else //ako je broj veci od 100
- {
- if (broj % 2 == 0) //ako je broj paran
- return broj + sumaParnih(broj - 2);
- else //akoje broj neparan
- return sumaParnih(broj - 1);
- }
- }
- void main()
- {
- int broj=0;
- cout << "Unesite broj: ";
- cin >> broj;
- int suma = sumaParnih(broj);
- cout << "Suma parnih brojeva je: " << suma << endl;
- system("PAUSE");
- }
- --// Zadatak 4. a) beskonacna rekurzija
- #include <iostream>
- using namespace std;
- int sumaParnih(int broj)
- {
- if (broj == 101)//bazni slucaj neparan
- return 0;
- //
- //cout << "Broj je:" << broj << endl;
- //
- if (broj < 101) //ako je broj manji od 101
- {
- if (broj % 2 == 0) //ako je broj paran
- return broj + sumaParnih(broj + 2);
- else //ako je broj neparan
- return sumaParnih(broj + 1);
- }
- else //ako je broj veci od 100
- {
- if (broj % 2 == 0) //ako je broj paran
- return broj + sumaParnih(broj - 2);
- else //akoje broj neparan
- return sumaParnih(broj - 1);
- }
- }
- void main()
- {
- int broj = 0;
- cout << "Unesite broj: ";
- cin >> broj;
- int suma = sumaParnih(broj);
- cout << "Suma parnih brojeva je: " << suma << endl;
- system("PAUSE");
- }
- --//Zadatak 4. b) Program koji putem rekurzivne funkcije izračunava sumu vrijednosti svih članova niza.
- #include <iostream>
- using namespace std;
- int sumiraj(int niz[], int max)
- {
- if (max == 0)
- return niz[max];
- return niz[max] + sumiraj(niz, max - 1);
- }
- void main()
- {
- const int max = 5;
- int niz[max];
- for (int i = 0; i<max; i++)
- {
- cout << "Unesite " << i + 1 << ". element:";
- cin >> niz[i];
- }
- cout << "Suma svih clanova je: " << sumiraj(niz, max - 1) << endl;
- }
- --//Zadatak 4. c) Program koji putem rekurzivne funkcije izračunava sumu vrijednosti svih članova niza.
- //Dodajte rekurzivnu funkciju koja će računati sumu svih parnih članova niza.
- #include <iostream>
- using namespace std;
- int sumiraj(int niz[], int max)
- {
- if (max == 0)
- return niz[max];
- return niz[max] + sumiraj(niz, max - 1);
- }
- int sumaParnih(int niz[], int max)
- {
- if (max < 0)
- return 0;
- if (niz[max] % 2 == 0)
- return niz[max] + sumaParnih(niz, max - 1);
- else
- return sumaParnih(niz, max - 1);
- }
- void main()
- {
- const int max = 5;
- int niz[max];
- for (int i = 0; i<max; i++)
- {
- cout << "Unesite " << i + 1 << ". element:";
- cin >> niz[i];
- }
- cout << "Suma svih clanova je: " << sumiraj(niz, max - 1) << endl;
- cout << "Suma svih parnih clanova je: " << sumaParnih(niz, max - 1) << endl;
- system("PAUSE");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement