Advertisement
limun11

PRII - 1D rek.(suma el, suma poz.el, suma el.s parnim index)

Mar 20th, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.05 KB | None | 0 0
  1. /*Zadatak 7
  2. Napišite program koji će omogućiti kreiranje niza od 7 cijelih brojeva, te uz pomoć rekurzivnih funkcija omogućiti:
  3. ·         unos elemenata,
  4. ·         ispis elemenata,
  5. ·         izračunati sumu svih elemenata niza,
  6. ·         sumu pozitivnih elemenata niza,
  7. ·         sumu elemenata niza s parnim indeksom.
  8.  
  9. */
  10. #include <iostream>
  11. using namespace std;
  12.  
  13. void unos(int n[], int vel)
  14. {
  15.     if (vel == 0)
  16.         cin >> n[vel];
  17.     else
  18.     {
  19.         cin >> n[vel];
  20.         unos(n, vel - 1);
  21.     }
  22. }
  23. void ispis(int n[], int vel)
  24. {
  25.     if (vel == 0)
  26.         cout << n[vel] << endl;
  27.     else
  28.     {
  29.         cout << n[vel] << endl;
  30.         ispis(n, vel - 1);
  31.     }
  32. }
  33. int sumaElemenata(int n[], int vel)
  34. {
  35.     if (vel == 0)
  36.         return n[vel];
  37.     return n[vel] + sumaElemenata(n, vel - 1);
  38. }
  39. int sumaPozitivnih(int n[], int vel)
  40. {
  41.     // sumu pozitivnih elemenata niza,
  42.  
  43.     if (vel<0)//bazni slucaj
  44.         return 0;
  45.     //ako je velicina niza=1, vrati prvi tj. nulti (0) indeks niza
  46.     //n[1]={1->(index 0)};
  47.     //vraca 1
  48.     //jer je to jedina vrijednost niza, te tu vrijednost i vraca kao jedinu mogucu opciju
  49.         if (n[vel] > 0) //ako su brojevi tj. elementi niza pozitivni tj, >
  50.             return n[vel] + sumaPozitivnih(n, vel - 1); //rekurzija (zbraja te pozitivne brojeve jedan po jedan)
  51.         else
  52.             return sumaPozitivnih(n, vel - 1);
  53.  
  54. }
  55. int sumaParnih(int n[], int vel)
  56. {
  57.     //sumu elemenata niza s parnim indeksom
  58.  
  59.     //1,2,3,4,5,6,7
  60.     //0,1,2,3,4,5,6,
  61.     //x,x,3,x,5,7
  62.  
  63.     if (vel<0 )
  64.         return 0; //bazni slucaj
  65.     else
  66.     {
  67.         if (n[vel] % 2 == 0)
  68.             return n[vel] + sumaParnih(n, vel - 1);
  69.         else
  70.             return sumaParnih(n, vel - 1);
  71.     }
  72.  
  73. }
  74.  
  75. int main()
  76. {
  77.     int niz[7];
  78.  
  79.     cout << "Unesite elemente u niz: ";
  80.     unos(niz, 6);
  81.  
  82.     cout << "Unijeli ste: ";
  83.     ispis(niz, 6);
  84.  
  85.     cout << "Suma unijetih elemenata: " << sumaElemenata(niz, 6) << endl;
  86.  
  87.     cout << "Suma pozitvinih elemenata je: " << sumaPozitivnih(niz, 6) << endl; // zašto ovdje ide tačan broj elemenata, a ne kao u gornjim funkcijama 7-1=6?
  88.  
  89.     cout << "Suma parnih elemenata je: " << sumaParnih(niz, 6) << endl;
  90.  
  91.     system("PAUSE");
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement