Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. // klinika.cpp : Defines the entry point for the console application.
  2. /* Napišite program u kojem se stvara dvodimenzionalno dinamičko polje KLINIKE u
  3. koji se za n klinika unosi kao prvi podatak broj odjela i za svaki odjel se unosi broj
  4. djelatnika.Izračunajte za svaku kliniku ukupan broj djelatnika i prosječan broj
  5. djelatnika po odjelu upišite ih kao zadnja dva podatka u njenom redu.Ispišite polje
  6. KLINIKE.*/
  7.  
  8. #include "stdafx.h" //uključenje glavnog header filea za ovaj projekt
  9. #include <iostream> //uključenje sistemskog header filea sa i/o operacijama
  10. using namespace std; //korištenje imenskog prostora std
  11.  
  12. // broj odjela za svaku kliniku, stvaranje 2D polja
  13. void stvori(float **KLINIKE, int broj_klinika)
  14. {
  15. int i; //deklaracija varijable i tipa integer
  16. int broj_odjela; //deklaracija varijable tipa integer
  17.  
  18. // petlja za unos broja odjela za svaku kliniku
  19. for (i = 0; i<broj_klinika; i++)
  20. {
  21. cout << "Broj odjela za " << i + 1 << ". kliniku: ";
  22. cin >> broj_odjela;
  23.  
  24. KLINIKE[i] = new float[broj_odjela + 3]; //dodjeljivanje memorijskog prostora redaka polja
  25. KLINIKE[i][0] = broj_odjela; // broj odjela ide na prvu poziciju svakog retka
  26. }
  27. }
  28.  
  29. // upisivanje broja djelatnika pojedinog odjela
  30. void upis(float **KLINIKE, int broj_klinika)
  31. {
  32. int i, j; //deklaracija varijabli
  33.  
  34. // petlje za upis i sumu broja djelatnika
  35. for (i = 0; i<broj_klinika; i++)
  36. {
  37. float suma = 0;
  38. for (j = 1; j <= KLINIKE[i][0]; j++)
  39. {
  40. cout << "Za " << i + 1 << ". kliniku unesite broj djelatnika za " << j << ". odjel: ";
  41. cin >> KLINIKE[i][j];
  42. suma += KLINIKE[i][j];
  43. }
  44. cout << endl;
  45. KLINIKE[i][j] = suma; // suma kao predzadnji element
  46. KLINIKE[i][j + 1] = suma / KLINIKE[i][0]; // prosjek kao zadnji element
  47. }
  48. }
  49.  
  50. // funkcija za ispis vrijednosti
  51. void ispis(float **KLINIKE, int broj_klinika)
  52. {
  53. int i, j; //deklaracije varijabli tipa integer
  54. int broj; //deklaracija varijable broj tipa integer
  55.  
  56. for (i = 0; i<broj_klinika; i++) //vanjska for petlja
  57. {
  58. cout << endl << i + 1 << ".";
  59. broj = KLINIKE[i][0] + 2;
  60.  
  61. for (j = 1; j <= broj; j++) //unutarnja for petlja
  62. {
  63. cout << " ";
  64. cout << KLINIKE[i][j];
  65. }
  66. }
  67. cout << endl;
  68. }
  69.  
  70. // dealokacija
  71. void dealociraj(float **KLINIKE, int broj_klinika)
  72. {
  73. int i = 0;
  74. //petlja za prolaz kroz retke za dealokaciju
  75. for (i = 0; i<broj_klinika; i++)
  76. {
  77. delete[] KLINIKE[i]; // brise retke polja
  78. }
  79. delete[] KLINIKE; // brise polje pokazivaca
  80. KLINIKE = NULL; // pokazivac na nulu
  81.  
  82. }
  83.  
  84. // glavna funkcija programa
  85. void main()
  86. {
  87. int broj_klinika;
  88.  
  89. cout << "Unesi broj klinika: ";
  90. cin >> broj_klinika;
  91. cout << endl;
  92.  
  93. float **KLINIKE = new float*[broj_klinika]; // deklariranje 2D polja
  94.  
  95. stvori(KLINIKE, broj_klinika); // stvaranje 2D polja
  96. cout << endl;
  97. upis(KLINIKE, broj_klinika); // upis vrijednosti u polja
  98. cout << endl;
  99. ispis(KLINIKE, broj_klinika); // ispis podataka polja
  100. cout << endl;
  101. dealociraj(KLINIKE, broj_klinika); // dealokacija
  102. cout << endl;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement