Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Uz pomoć matrice realnih brojeva dimenzija 5x7 izraditi program za evidenciju i kalkulaciju uspješnosti
- vremenskih prognoza (prosječnih dnevnih temperatura) određenog grada. Redovi matrice predstavljaju
- meteorologe čije se prognoze unose, dok se kolone odnose na vremenski period od 7 dana. Uz matricu je
- neophodno krerati globalni jednodimenzionalni niz od 7 elemenata koji će čuvati stvarna mjerenja temperatura
- za isti vremenski period, a na osnovu kojeg će se procijeniti uspješnost prognoza pojedinih meteorologa.
- Vrijednosti elemenata ovog niza prilikom deklaracije postaviti na: 25.5, 26.8, 21, 32, 35.6, 36, 33.5.
- Implementaciju programa uraditi pomoću sljedećih funkcija:
- • UnesiPrognoze – funkcija za unos prognoza određenog meteorologa za kompletan period od 7 dana.
- Vrijednosti prosječnih temperatura moraju biti unutar intervala [-20, 50] °C.
- (Pojasnjenje: unose se podaci za samo jedan izabrani red. Tako ce se korisniku omoguciti da unese prognoze
- za jednog po jednog meteorologa.)
- • IzracunajUspjesnost – funkciju koja vraća procentualnu vrijednost uspješnosti prognoza za željenog meteor
- Prognoza, odnosno prosječna temperatura na određeni dan, smatra se uspješnom ako od stvarnog mjerenja ne
- odstupa više od 5 °C.
- (Pojasnjenje: poredi se podaci iz jednog reda odnosno za jednog meteorologa sa podacima iz posebnog niza
- koji sadrži stvarne vrijednosti mjerenja, te ako je razlika manja od +/-5 taj podatak se smatra uspjesnom
- prognozom. Na kraju treba podjeliti broj uspjesnih prognoza sa 7 koliko ima dana u sedmici i vratiti
- procenat uspjesnosti.)
- • PronadjiNajuspjesnijegMeteorologa – funkciju koja pronalazi meteorologa sa najtačnijim vremenskim
- prognozama, odnosno najvećim procentom uspjeha.
- (Pojasnjenje: Red koji ima najveci procenat koji se dobije iz prethodno opisane funkcije
- IzracunajUspjesnost je u stvari red sa najuspjesnijim meteorologom.)
- • PronadjiDanSaNajnizimPrognozama – funkciju koja pronalazi dan koji je imao u prosjeku najnize prognoze.
- (Pojasnjenje: Naci kolonu sa najnizom aritmetickom sredinom svih svojih vrijednosti.
- Nije potrebno porediti sa nizom sa stvarnim temperaturama.)
- Napisati i kratak testni program za provjeru ispravnosti implementiranih funkcija.
- */
- const double temp[7] = { 25.5, 26.8, 21, 32, 35.6, 36, 33.5 };
- const int r = 5, k = 7;
- void unos(double[]);
- void ispis(double[][k]);
- double uspjesnost(double[]);
- int najm(double[][k]);
- int najdan(double[][k]);
- int main() {
- double niz[r][k] = {};
- int izbor, iz2, iz3;
- do {
- cout << "Za kojeg meteorologa zelite unijeti prognozu ?" << endl;
- do {
- cin >> izbor;
- } while (izbor < 1 || izbor>5);
- unos(niz[izbor - 1]);
- cout << "Da li zelite unijeti za jos nekog meteorologa ?" << endl;
- cin >> iz2;
- system("CLS");
- } while (iz2 != 0);
- cout << "Za kojeg meteorologa zelite provjeriti uspjesnost ? " << endl;
- do{
- cin >> iz3;
- } while (iz3 < 1 || iz3>5);
- cout << "Uspjesnost za odabranog meteorologa je " << uspjesnost(niz[iz3 - 1]) << "%." << endl;
- cout << "Najuspjesniji meteorolog je : " << najm(niz) << endl;
- cout << "Dan sa najnizim temperaturama je : " << najdan(niz) << ". dan" << endl;
- ispis(niz);
- system("pause>0");
- return 0;
- }
- void unos(double niz[]) {
- for (int i = 0; i < k; i++)
- {
- cin >> niz[i];
- if (niz[i] > 50 || niz[i] < -20)
- i--;
- }
- }
- void ispis(double niz[][k]) {
- for (int i = 0; i < r; i++)
- {
- for (int j = 0; j < k; j++) {
- cout << setw(7) << niz[i][j];
- }
- cout << endl;
- }
- }
- double uspjesnost(double niz[]) {
- double uspjesnost = 0;
- for (int i = 0; i < k; i++) {
- if (niz[i] > temp[i] - 5 && niz[i] < temp[i] + 5)
- uspjesnost += 100;
- }
- return uspjesnost = uspjesnost/7;
- }
- int najm(double niz[][k]) {
- double naj = uspjesnost(niz[0]);
- int najindex = 1;
- for (int i = 1; i < r; i++) {
- if (uspjesnost(niz[i]) > naj) {
- naj = uspjesnost(niz[i]);
- najindex = i + 1;
- }
- }
- return najindex;
- }
- int najdan(double niz[][k]) {
- int naj =0;
- double art = 0, najart = INT_MAX;
- for (int i = 0; i < k; i++) {
- for (int j = 0; j < r; j++) {
- art += niz[j][i];
- }
- art = art / r;
- if (art < najart) {
- najart = art;
- naj = i + 1;
- }
- art = 0;
- }
- return naj;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement