Advertisement
wiuu23

V5-DinamickiNizovi

Apr 11th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.31 KB | None | 0 0
  1. /*
  2. Zadatak 1:
  3. Napišite program u kojem ćete:
  4. o Omogućiti korisniku da unese vrijednost N (broj članova niza);
  5. o Alocirati niz operacijom new (članovi niza su tipa double);
  6. o Omogućiti inicijalizaciju članova niza unosom vrijednosti s tastature (koristiti funkciju);
  7. o Izračunati i ispisati prosječnu vrijednost elemenata niza (koristiti funkciju);
  8. o Dealocirati memorijski blok upotrijebljen za kreiranje niza.
  9. */
  10.  
  11. #include <iostream>
  12. using namespace std;
  13.  
  14. void unos(double * niz, int vel)
  15. {
  16.     for (int i = 0; i < vel; i++)
  17.     {
  18.         cout << i + 1 << ": ";
  19.         cin >> niz[i];
  20.     }
  21. }
  22.  
  23. float prosjek(double * niz, int vel)
  24. {
  25.     float izracunatiProsjek = 0;
  26.     int suma = 0;
  27.     for (int i = 0; i < vel; i++)
  28.     {
  29.         suma += niz[i];
  30.     }
  31.     izracunatiProsjek = suma / vel;
  32.  
  33.     return izracunatiProsjek;
  34. }
  35.  
  36. void main()
  37. {
  38.     int n;
  39.     double * niz = nullptr;
  40.     cout << "Unesite broj clanova niza: ";
  41.     cin >> n;
  42.     niz = new double[n];
  43.  
  44.     cout << "Unesite clanove niza: " << endl;
  45.     unos(niz, n);
  46.  
  47.     float rezultat = prosjek(niz, n);
  48.     cout << "Prosjecna vrijednost elemenata: " << rezultat << endl;
  49.    
  50.     delete[] niz;
  51.     niz = nullptr;
  52.     cout << "Provjera je li niz na nullptr: "<< niz << endl;
  53.     system("PAUSE");
  54. }
  55. //
  56. /*
  57. Zadatak 2:
  58. Napišite program u kojem ćete:
  59. o Kreirati dinamički niz od onoliko cjelobrojnih elemenata koliko želi korisnik;
  60. o Omogućiti inicijalizaciju članova niza unosom s tastature;
  61. o Utvrditi (prebrojati) koliko elemenata niza je zadovoljava uvjet (element niza%7>4);
  62. o Kreirati novi niz čiji će elementi biti elementi prvog niza koji zadovoljavaju prethodni uvjet (element niza%7>4);
  63. o Koristite funkcije.
  64. */
  65. #include <iostream>
  66. using namespace std;
  67. int unos(int * niz, int velicina)
  68. {
  69.     int brojac = 0;
  70.     for (int i = 0; i < velicina; i++)
  71.     {
  72.         cin >> niz[i];
  73.         if (niz[i] % 7 > 4)
  74.         {
  75.             brojac++;
  76.         }
  77.     }
  78.     return brojac;
  79. }
  80.  
  81. void inicijalizacija_niza(int *pok1, int* pok2, int vel)
  82. {
  83.     int j = 0;
  84.     for (int i = 0; i<vel; i++)
  85.     {
  86.         if (pok1[i] % 7>4)
  87.         {
  88.             pok2[j] = pok1[i];
  89.             j++;
  90.         }
  91.     }
  92. }
  93. void ispis(int * niz, int velicina)
  94. {
  95.     for (int i = 0; i < velicina; i++)
  96.     {
  97.         cout << niz[i] << endl;
  98.     }
  99. }
  100. void main()
  101. {
  102.     int velicina1, velicina2;
  103.    
  104.     cout << "Koliko elemenata zelite u nizu: ";
  105.     cin >> velicina1;
  106.  
  107.     int * niz1 = new int[velicina1];
  108.  
  109.     cout << "Unesite elemente niza: " << endl;
  110.     velicina2=unos(niz1, velicina1);
  111.  
  112.     int * niz2 = new int[velicina2];
  113.     inicijalizacija_niza(niz1, niz2, velicina1);
  114.  
  115.     cout << "Broj elementa koji zadovoljavaju uvjet: " << velicina2 << endl;
  116.    
  117.     cout << "Novi niz sacinjavaju elementi: " << endl;
  118.     ispis(niz2, velicina2);
  119.  
  120.     delete[] niz1;
  121.     delete[] niz2;
  122.     niz1 = nullptr;
  123.     niz2 = nullptr;
  124.     system("PAUSE");
  125.  
  126. }
  127. //
  128. /*
  129. Zadatak:
  130. Napišite program u kojem ćete:
  131. o Kreirati strukturu obuća koja ima sljedeća obilježja: veličina, boja, model;
  132. o Kreirati dinamički niz objekata tipa obuća
  133. o Omogućiti unos elemenata
  134. o Omogućiti ispis elemenata
  135. o Utvrditi koliko je objekata tipa obuća za obilježja model ima vrijednost sandale;
  136. o Ispisati adrese svih objekata za koje prethodnom funkcijom utvrdite da su sandale;
  137. o Ne zaboravite dealocirati memoriju;
  138. o Koristite funkcije.
  139. */
  140.  
  141. #include <iostream>
  142. using namespace std;
  143.  
  144. struct obuca
  145. {
  146.     int velicina;
  147.     char boja[20];
  148.     char model[20];
  149.  
  150.     void unos()
  151.     {
  152.         cout << "Velicina obuce: ";
  153.         cin >> velicina;
  154.         cin.ignore();
  155.         cout << "Boja obuce: ";
  156.         cin.getline(boja, 20);
  157.         cout << "Model obuce: ";
  158.         cin.getline(model, 20);
  159.         cout << endl;
  160.     }
  161.     void ispis()
  162.     {
  163.         cout << "Velicina: " << velicina << endl;
  164.         cout << "Boja obuce: " << boja << endl;
  165.         cout << "Model obuce: " << model << endl;
  166.         cout << endl;
  167.     }
  168.  
  169. };
  170. int brojSandala(obuca * niz, int vel)
  171. {
  172.     //o Utvrditi koliko je objekata tipa obuća za obilježja model ima vrijednost sandale;
  173.     //o Ispisati adrese svih objekata za koje prethodnom funkcijom utvrdite da su sandale;
  174.     int brojac=0, rezultat=0;
  175.     for (int i = 0; i < vel; i++)
  176.     {
  177.         rezultat = strcmp(niz[i].model, "sandale");
  178.         if (rezultat == 0)
  179.         {
  180.             brojac++;
  181.             cout << "Adrese objekata gdje su pronadjeni modeli 'sandale' su: " << &niz[i] << endl;
  182.         }
  183.     }
  184.     return brojac;
  185. }
  186. void dealociraj(obuca *& niz)
  187. {
  188.     delete[] niz;
  189.     niz = nullptr;
  190. }
  191. void main()
  192. {
  193.     obuca * niz = nullptr;
  194.     int velicina;
  195.     cout << "Koliko elemenata zelite u nizu? ";
  196.     cin >> velicina;
  197.  
  198.     niz = new obuca[velicina];
  199.     cout << "Unos: " << endl;
  200.     for (int i = 0; i < velicina; i++)
  201.     {
  202.         niz[i].unos();
  203.     }
  204.  
  205.     cout << "Unijeli ste sljedece specifikacije: " << endl;
  206.     for (int i = 0; i < velicina; i++)
  207.     {
  208.         cout << i + 1 << ". model: ";
  209.         niz[i].ispis();
  210.     }
  211.  
  212.     cout << "Broj sandala je: " << brojSandala(niz,velicina) << endl;
  213.  
  214.     cout << "Adrese specifikacije koje ste unijeli: " << endl;
  215.     for (int i = 0; i < velicina; i++)
  216.     {
  217.         cout << i + 1 << ". model: " << &niz[i] << endl;
  218.     }
  219.  
  220.     dealociraj(niz);
  221.     cout << niz << endl;
  222.    
  223.     system("PAUSE");
  224. }
  225. //
  226. /*
  227. Zadatak 3:
  228. Napišite program u kojem ćete:
  229. • Kreirati statički niz od pet (5) cjelobrojnih vrijednosti;
  230. • Kreirati dinamički niz od dva pokazivača;
  231. • Inicijalizirati jedan od pokazivača da pokazuje na najmanji element u statičkom nizu;
  232. • Inicijalizirati drugi pokazivač da pokazuje na najveći element u statičkom nizu;
  233. • Koristite funkcije.
  234. */
  235. #include <iostream>
  236. using namespace std;
  237.  
  238. void unos(int niz[], int vel)
  239. {
  240.     for (int i = 0; i < vel; i++)
  241.     {
  242.         cin >> niz[i];
  243.     }
  244. }
  245. void inicijaliziraj_pokazivace(int s_niz[], int ** niz_pokazivaca, int v)
  246. {
  247.     int najmanji = 2147483647;
  248.     int najveci = -2147483647 - 1;
  249.     for (int i = 0; i<v; i++)
  250.     {
  251.         if (s_niz[i]<najmanji)
  252.         {
  253.             najmanji = s_niz[i];
  254.             niz_pokazivaca[0] = &s_niz[i];
  255.         }
  256.         if (s_niz[i]>najveci)
  257.         {
  258.             najveci = s_niz[i];
  259.             niz_pokazivaca[1] = &s_niz[i];
  260.         }
  261.     }
  262. }
  263. void main()
  264. {
  265.     int niz[5];
  266.     int velicina;
  267.     int **nizPok = new int*[2];
  268.  
  269.     cout << "Unesite elemente niza: " << endl;
  270.     unos(niz, 5);
  271.  
  272.     inicijaliziraj_pokazivace(niz, nizPok, 5);
  273.     cout << "Minimalni element u nizu je: " << *nizPok[0] << ", a nalazi se na adresi: " << &nizPok[0] << endl;
  274.     cout << "Maksimalni element u nizu je: " << *nizPok[1] << ", a nalazi se na adresi: " << &nizPok[1] << endl;
  275.  
  276.     delete[] nizPok;
  277.     nizPok = nullptr;
  278.     cout << nizPok << endl;
  279.     system("PAUSE");
  280.  
  281. }
  282. //
  283. /*
  284. Zadatak 4:
  285. Napišite program za zbrajanje dviju matrica (matrice A i matrice B)koji će:
  286. • omogućiti unos željene veličine matrica (broj redova i kolona – sve matrice moraju biti jednake veličine),
  287. • omogućiti unos vrijednosti elemenata matrica s tastature,
  288. • kreirati treću matricu čiji će elementi biti suma odgovarajućih elemenata matrica A i B,
  289. • dealocirajte dinamički kreirane objekte,
  290. • koristite funkcije.
  291. */
  292.  
  293. #include <iostream>
  294. using namespace std;
  295.  
  296. void unos(int ** niz, int red, int kolona)
  297. {
  298.     for (int i = 0; i < red; i++)
  299.     {
  300.         for (int j = 0; j < kolona; j++)
  301.         {
  302.             cin >> niz[i][j];
  303.         }
  304.     }
  305. }
  306. void ispis(int **niz, int redova, int kolona)
  307. {
  308.     for (int i = 0; i < redova; i++)
  309.     {
  310.         for (int j = 0; j < kolona; j++)
  311.         {
  312.             cout << niz[i][j] << endl;
  313.         }
  314.     }
  315. }
  316. void incijalizacija(int **nizA, int **nizB, int **nizC, int redova, int kolona)
  317. {
  318.     for (int i = 0; i < redova; i++)
  319.     {
  320.         for (int j = 0; j < kolona; j++)
  321.         {
  322.             nizC[i][j] = nizA[i][j] + nizB[i][j];
  323.         }
  324.     }
  325. }
  326. void main()
  327. {
  328.     int redova, kolona;
  329.     cout << "Unesite broj redova: ";
  330.     cin >> redova;
  331.     cout << "Unesite broj kolona: ";
  332.     cin >> kolona;
  333.     cout << endl;
  334.  
  335.     int ** nizA = new int *[redova];
  336.     int ** nizB = new int *[redova];
  337.     int ** nizC = new int *[redova];
  338.  
  339.     for (int i = 0; i < redova; i++)
  340.     {
  341.         nizA[i] = new int[kolona];
  342.         nizB[i] = new int[kolona];
  343.         nizC[i] = new int[kolona];
  344.     }
  345.  
  346.     cout << "Unesite elemente matrice: ";
  347.     cout << "1. matrica: " << endl;
  348.     unos(nizA, redova, kolona);
  349.     cout << endl;
  350.     cout << "2. matrica: " << endl;
  351.     unos(nizB, redova, kolona);
  352.  
  353.     incijalizacija(nizA, nizB, nizC, redova, kolona);
  354.  
  355.     cout << "Elementi 3. matrice su: " << endl;
  356.     ispis(nizC, redova, kolona);
  357.  
  358.     for (int i = 0; i < redova; i++)
  359.     {
  360.         delete[] nizA[i];
  361.         delete[] nizB[i];
  362.         delete[] nizC[i];
  363.     }
  364.     delete[] nizA;
  365.     delete[] nizB;
  366.     delete[] nizC;
  367.  
  368.     nizA = nullptr;
  369.     nizB = nullptr;
  370.     nizC = nullptr;
  371.  
  372.     cout << endl;
  373.     cout << nizA << endl;
  374.     cout << nizB << endl;
  375.     cout << nizC << endl;
  376.  
  377.     system("PAUSE");
  378. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement