Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // klinika.cpp : Defines the entry point for the console application.
- /* Napišite program u kojem se stvara dvodimenzionalno dinamičko polje KLINIKE u
- koji se za n klinika unosi kao prvi podatak broj odjela i za svaki odjel se unosi broj
- djelatnika.Izračunajte za svaku kliniku ukupan broj djelatnika i prosječan broj
- djelatnika po odjelu upišite ih kao zadnja dva podatka u njenom redu.Ispišite polje
- KLINIKE.*/
- #include "stdafx.h" //uključenje glavnog header filea za ovaj projekt
- #include <iostream> //uključenje sistemskog header filea sa i/o operacijama
- using namespace std; //korištenje imenskog prostora std
- // broj odjela za svaku kliniku, stvaranje 2D polja
- void stvori(float **KLINIKE, int broj_klinika)
- {
- int i; //deklaracija varijable i tipa integer
- int broj_odjela; //deklaracija varijable tipa integer
- // petlja za unos broja odjela za svaku kliniku
- for (i = 0; i<broj_klinika; i++)
- {
- cout << "Broj odjela za " << i + 1 << ". kliniku: ";
- cin >> broj_odjela;
- KLINIKE[i] = new float[broj_odjela + 3]; //dodjeljivanje memorijskog prostora redaka polja
- KLINIKE[i][0] = broj_odjela; // broj odjela ide na prvu poziciju svakog retka
- }
- }
- // upisivanje broja djelatnika pojedinog odjela
- void upis(float **KLINIKE, int broj_klinika)
- {
- int i, j; //deklaracija varijabli
- // petlje za upis i sumu broja djelatnika
- for (i = 0; i<broj_klinika; i++)
- {
- float suma = 0;
- for (j = 1; j <= KLINIKE[i][0]; j++)
- {
- cout << "Za " << i + 1 << ". kliniku unesite broj djelatnika za " << j << ". odjel: ";
- cin >> KLINIKE[i][j];
- suma += KLINIKE[i][j];
- }
- cout << endl;
- KLINIKE[i][j] = suma; // suma kao predzadnji element
- KLINIKE[i][j + 1] = suma / KLINIKE[i][0]; // prosjek kao zadnji element
- }
- }
- // funkcija za ispis vrijednosti
- void ispis(float **KLINIKE, int broj_klinika)
- {
- int i, j; //deklaracije varijabli tipa integer
- int broj; //deklaracija varijable broj tipa integer
- for (i = 0; i<broj_klinika; i++) //vanjska for petlja
- {
- cout << endl << i + 1 << ".";
- broj = KLINIKE[i][0] + 2;
- for (j = 1; j <= broj; j++) //unutarnja for petlja
- {
- cout << " ";
- cout << KLINIKE[i][j];
- }
- }
- cout << endl;
- }
- // dealokacija
- void dealociraj(float **KLINIKE, int broj_klinika)
- {
- int i = 0;
- //petlja za prolaz kroz retke za dealokaciju
- for (i = 0; i<broj_klinika; i++)
- {
- delete[] KLINIKE[i]; // brise retke polja
- }
- delete[] KLINIKE; // brise polje pokazivaca
- KLINIKE = NULL; // pokazivac na nulu
- }
- // glavna funkcija programa
- void main()
- {
- int broj_klinika;
- cout << "Unesi broj klinika: ";
- cin >> broj_klinika;
- cout << endl;
- float **KLINIKE = new float*[broj_klinika]; // deklariranje 2D polja
- stvori(KLINIKE, broj_klinika); // stvaranje 2D polja
- cout << endl;
- upis(KLINIKE, broj_klinika); // upis vrijednosti u polja
- cout << endl;
- ispis(KLINIKE, broj_klinika); // ispis podataka polja
- cout << endl;
- dealociraj(KLINIKE, broj_klinika); // dealokacija
- cout << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement