Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // vjezbazaIntegralni3.cpp : This file contains the 'main' function. Program execution begins and ends there.
- //
- #include <iostream>
- #include <ctime>
- #include <Windows.h>
- #include <memory>
- #include <iomanip>
- using namespace std;
- void najveciMoguciBroj(short int);
- //zadatak1
- short zadnjeTriCifre(short ,short );
- //zadatak2
- void unos(int*, short);
- void ispis(int*, short);
- void sortiranjeSrednjaCifra(int*, short);
- //zadatak3
- void dealokacija(short**, short);
- void unos(short**, short);
- void ispis(short**, short);
- void transpose(short**, short);
- bool prost(short,short);
- float aritmeticka(short**, short);
- //zadatak4
- short brojCifri(short);
- short sumaCifri(short);
- short obrnuteCifre(short);
- void ispisBrojeva(short, short);
- //zadatak5
- void unos(char*, short);
- void ispis(char*, short);
- void sortiranje(char*, short);
- //zadtak6.
- void sortiranjeRastuce(short*, short);
- void sortiranjeOpadajuce(short*, short);
- void ispis(short*, short);
- //zadatak7
- void dealokacija(float**, int);
- int const d = 7;
- float stvarnaMjerenja[d] = { 25.5,26.8,21,32,35.6,36,33.5 };
- void unos(float**, short, short);
- float izracunajUspjesnost(float*, short);
- int pronadjiNajuspjesnijeg(float**, short, short);
- int pronadjiDanSaNajnizomPrognozom(float**, short, short);
- int main()
- {
- //1.zadatak
- /*short int x, n;
- do
- {
- cin >> x;
- if (x < 10 || x> 100)
- cout << "Pogresan unos x!" << endl;
- } while (x < 10 || x> 100);
- do
- {
- cin >> n;
- if (n < 2 || n > 10)
- cout << "Pogresan unos n !" << endl;
- } while (n < 2 || n > 10);
- cout << "Zadnje tri cifre broja su : " << zadnjeTriCifre(x, n) << endl;
- */
- //2.zadatak
- /*short duzina;
- cout << "Unesite duzinu niza:";
- cin >> duzina;
- int* pok = new int[duzina];
- unos(pok, duzina);
- ispis(pok, duzina);
- sortiranjeSrednjaCifra(pok, duzina);
- cout << "Sortiran niz po srednjoj cifri: " << endl;
- ispis(pok, duzina);
- delete[]pok;
- pok = nullptr;*/
- //3.zadatak
- /*short duzina = 10;
- short** matrica = new short* [duzina];
- for (size_t i = 0; i < duzina; i++)
- {
- matrica[i] = new short[duzina];
- }
- unos(matrica, duzina);
- ispis(matrica, duzina);
- transpose(matrica, duzina);
- ispis(matrica, duzina);
- cout << "Aritmeticka sredina svih prosti brojeva ispid sporedne dijagonale iznosi: " << setiosflags(ios::fixed) << setprecision(2) << aritmeticka(matrica, duzina) << endl;
- dealokacija(matrica, duzina);*/
- //zadatak4
- /*short int x, y;
- cout << "Unesite x :";
- do
- {
- cin >> x;
- if (x < 10 || x > 5000)
- cout << "Pogresan unos x !" << endl;
- } while (x < 10 || x > 5000);
- cout << "Unesite y: ";
- do
- {
- cin >> y;
- if (y < 10 || y > 5000)
- cout << "Pogresan unos y !" << endl;
- } while (y< 10 || y > 5000);
- short int temp;
- if (x > y)
- {
- temp = x;
- x = y;
- y = x;
- }
- ispisBrojeva(x, y);*/
- //zadatak5
- /*short duzina = 6;
- char* pok = new char[duzina];
- unos(pok, duzina);
- ispis(pok, duzina);
- delete[]pok;
- pok = nullptr;*/
- //zadatak6
- /*const short int duzina = 9;
- short int* pok = nullptr;
- short int niz[duzina] = { 12,2,3,0,45,6,98,-9,-10 };
- pok = niz;
- char odabir;
- cout << "Kako zelite sorirati niz(1 ili 2): " << endl;
- cout << "1. u opadajucem poretku" << endl;
- cout << "2. u rastucem poretku" << endl;
- cin >> odabir;
- switch (odabir)
- {
- case '1':
- sortiranjeOpadajuce(pok, duzina);
- cout << "Rezultirajuci niz: ";
- ispis(niz, duzina);
- break;
- case '2':
- sortiranjeRastuce(pok, duzina);
- cout << "Rezultirajuci niz: ";
- ispis(niz, duzina);
- break;
- default:
- cout << "Pogresan unos!" << endl;
- break;
- }
- pok = nullptr;*/
- short int redovi = 2, kolone = 7;
- float** matrica = new float*[redovi];
- for (size_t i = 0; i < redovi; i++)
- {
- matrica[i] = new float[kolone];
- }
- unos(matrica, redovi, kolone);
- for (size_t i = 0; i < redovi; i++)
- {
- cout << "Prosjek uspjesnosti za " << i + 1 <<
- " Meterologa iznosi : " << setiosflags(ios::fixed) << setprecision(0) << izracunajUspjesnost(matrica[i], kolone) << " %" << endl;
- }
- int najUspjesniji = pronadjiNajuspjesnijeg(matrica, redovi, kolone);
- cout << "Najuspjesniji je meterolog " << najUspjesniji + 1 << endl;
- cout << "Dan s najnizom temparaturom je : " << pronadjiDanSaNajnizomPrognozom(matrica, redovi, kolone) + 1 << endl;
- dealokacija(matrica, redovi);
- delete[]matrica;
- matrica = nullptr;
- system("pause>0");
- return 0;
- }
- void najveciMoguciBroj(short int broj)
- {
- short int cifra1, cifra2, cifra3,
- najveca,srednja,najmanja,max;
- cifra1 = (broj / 100) % 1000;
- cifra2 = (broj / 10) % 10;
- cifra3 = broj % 10;
- max = broj;
- if (cifra1 * 100 + cifra2 * 10 + cifra3 > max)
- max = cifra1 * 100 + cifra2 * 10 + cifra3;
- if (cifra1 * 100 + cifra3 * 10 + cifra2 > max)
- max = cifra1 * 100 + cifra3 * 10 + cifra2;
- if (cifra2 * 100 + cifra1 * 10 + cifra3 > max)
- max = cifra2 * 100 + cifra1 * 10 + cifra3;
- if (cifra2 * 100 + cifra3 * 10 + cifra1 > max)
- max = cifra2 * 100 + cifra3 * 10 + cifra1;
- if (cifra3 * 100 + cifra1 * 10 + cifra2 > max)
- max = cifra3 * 100 + cifra1 * 10 + cifra2;
- if (cifra3 * 100 + cifra2 * 10 + cifra1 > max)
- max = cifra3 * 100 + cifra2 * 10 + cifra1;
- cout << "Najveci moguci broj: " << max << endl;
- }
- short zadnjeTriCifre(short x, short n)
- {
- long int naN = pow((double)x, n);
- short brojac = 0,brojac1=0,ostatak,noviBroj=0;
- while (brojac < 3)
- {
- ostatak = naN % 10;
- noviBroj += ostatak * pow(10, brojac);
- brojac++;
- naN /= 10;
- }
- return noviBroj;
- }
- void unos(int* niz, short duzina)
- {
- for (size_t i = 0; i < duzina; i++)
- {
- do
- {
- cout << "Unos [" << i << "]:";
- cin >> niz[i];
- if (niz[i] < 100 || niz[i] > 999)
- cout << "Pogresan unos!!!" << endl;
- } while (niz[i] < 100 || niz[i] > 999);
- }
- }
- void ispis(int* niz, short duzina)
- {
- for (size_t i = 0; i < duzina; i++)
- {
- cout << setw(3) << "[" << i << "]:" << niz[i];
- }
- cout << endl;
- }
- void sortiranjeSrednjaCifra(int* niz, short duzina)
- {
- int brojPromjena = duzina - 1;
- bool promjena = true;
- while (promjena)
- {
- promjena = false;
- for (size_t i = 0; i < brojPromjena; i++)
- {
- short temp,srednja1,srednja2;
- srednja1 = (niz[i] / 10) % 10;
- srednja2 = (niz[i+1] / 10) % 10;
- if (srednja1 > srednja2)
- {
- temp = niz[i];
- niz[i] = niz[i + 1];
- niz[i + 1] = temp;
- promjena = true;
- }
- }
- }
- }
- void dealokacija(short** matrica, short duzina)
- {
- for (size_t i = 0; i < duzina; i++)
- {
- delete[]matrica[i];
- }
- delete[]matrica;
- matrica = nullptr;
- }
- void unos(short** matrica, short duzina)
- {
- srand(time(0));
- cout << "Unos matrice 10 x 10 " << endl;
- for (size_t i = 0; i < duzina; i++)
- {
- for (size_t j = 0; j < duzina; j++)
- {
- do
- {
- //cin >> matrica[i][j];
- matrica[i][j] = rand() % (999 - 100 + 1) + 100;
- if (matrica[i][j] < 100 || matrica[i][j] > 1000)
- cout << "Pogresan unos !!! " << endl;
- } while (matrica[i][j] < 100 || matrica[i][j] > 1000);
- }
- }
- }
- void ispis(short** matrica, short duzina)
- {
- cout <<"Ispis matrice "<< endl;
- for (size_t i = 0; i < duzina; i++)
- {
- for (size_t j = 0; j < duzina; j++)
- {
- cout << setw(3) << "[" << i << "][" << j << "]:" <<
- matrica[i][j];
- }
- cout << endl;
- }
- }
- void transpose(short** matrica, short duzina)
- {
- int temp;
- for (size_t i = 0; i < duzina; i++)
- {
- for (size_t j = 0; j < i; j++)
- {
- temp = matrica[i][j];
- matrica[i][j] = matrica[j][i];
- matrica[j][i] = temp;
- }
- }
- }
- bool prost(short broj, short i = 2)
- {
- if (broj <= 2)
- return(broj == 2) ? true : false;
- if (broj % i == 0)
- return false;
- if (i * i > broj)
- return true;
- return prost(broj, i + 1);
- }
- float aritmeticka(short** matrica, short duzina)
- {
- short brojac = 0;
- float suma = 0;
- for (size_t i = 0; i < duzina; i++)
- {
- for (size_t j = 0; j < duzina; j++)
- {
- if (i + j > duzina - 1 && prost(matrica[i][j]))
- {
- suma += matrica[i][j];
- brojac++;
- }
- }
- }
- suma = suma / float(brojac);
- return suma;
- }
- short brojCifri(short broj)
- {
- /*short brojac = 0;
- while (broj != 0)
- {
- brojac++;
- broj /= 10;
- }
- return brojac;*/
- int brojac=0;
- if(broj==0)
- return 0;
- else
- brojac++;
- return brojac + brojCifri(broj / 10);
- }
- short sumaCifri(short broj)
- {
- int suma = 0,ostatak;
- while (broj != 0)
- {
- ostatak = broj % 10;
- suma += ostatak;
- broj /= 10;
- }
- return suma;
- }
- short obrnuteCifre(short broj)
- {
- short noviBroj = 0, ostatak, brojac = brojCifri(broj);
- while (broj!=0)
- {
- ostatak = broj % 10;
- noviBroj += ostatak * pow(10.,brojac-1);
- brojac--;
- broj /= 10;
- }
- return noviBroj;
- }
- void ispisBrojeva(short x, short y)
- {
- cout << "Brojevi koji ispunjavaju dati uslov: ";
- for (size_t i = x; i < y; i++)
- {
- if (obrnuteCifre(i) % sumaCifri(i) == 0)
- cout << i << ",";
- }
- cout << endl;
- }
- void unos(char* niz, short duzina)
- {
- for (size_t i = 0; i < duzina; i++)
- {
- cout << "Unesite veliko slovo ili broj: ";
- do
- {
- cin >> niz[i];
- if ((niz[i] < 'A' || niz[i] > 'Z') && (niz[i] < '1' || niz[i] > '9'))
- cout << "Pogresan unos!!" << endl;
- cin.ignore();
- } while ((niz[i] < 'A' || niz[i] > 'Z') && (niz[i] < '1' || niz[i] > '9'));
- }
- }
- void ispis(char* niz, short duzina)
- {
- cout << "Elementi niza: ";
- for (size_t i = 0; i < duzina; i++)
- {
- cout << setw(3) << niz[i];
- }
- }
- void sortiranjeRastuce(short* niz, short duzina)
- {
- short brojPromjena = duzina;
- bool promejna = true;
- while (promejna)
- {
- promejna = false;
- for (size_t i = 0; i < brojPromjena; i++)
- {
- short temp;
- if (niz[i] > niz[i + 1])
- {
- temp = niz[i];
- niz[i] = niz[i + 1];
- niz[i + 1] = temp;
- promejna = true;
- }
- }
- }
- }
- void sortiranjeOpadajuce(short* niz, short duzina)
- {
- short brojPromjena = duzina;
- bool promejna = true;
- while (promejna)
- {
- promejna = false;
- for (size_t i = 0; i < brojPromjena; i++)
- {
- short temp;
- if (niz[i] < niz[i + 1])
- {
- temp = niz[i];
- niz[i] = niz[i + 1];
- niz[i + 1] = temp;
- promejna = true;
- }
- }
- }
- }
- void ispis(short* niz, short duzina)
- {
- for (size_t i = 0; i < duzina; i++)
- {
- cout << setw(4) << niz[i];
- }
- }
- void dealokacija(float** matrica, int redovi)
- {
- for (size_t i = 0; i < redovi; i++)
- {
- delete[]matrica[i];
- }
- }
- void unos(float** matrica, short redovi, short kolone)
- {
- for (size_t i = 0; i < redovi; i++)
- {
- cout << "Unesite temparature za " << i + 1 << ". meterologa: " << endl;
- for (size_t j = 0; j < kolone; j++)
- {
- cout << "Unesite temparature za " << j + 1 << ". dan: ";
- do
- {
- cin >> matrica[i][j];
- if (matrica[i][j] < -20 || matrica[i][j]>50)
- cout << "Pogresan unos! " << endl;
- } while (matrica[i][j] < -20 || matrica[i][j]>50);
- }
- }
- }
- float izracunajUspjesnost(float* matrica, short kolone)
- {
- short brojac = 0;
- float prosjek = 0;
- for (size_t j = 0; j < kolone; j++)
- {
- prosjek = stvarnaMjerenja[j] - matrica[j];
- // prosjek mora biti izmedu -5 i 5
- if (prosjek > -5 && prosjek < 5)
- brojac++;
- }
- return ((float(brojac) / 7.)) * 100;
- }
- int pronadjiNajuspjesnijeg(float** matrica, short redovi, short kolone)
- {
- int index = 0;
- float najUpsjesniji = 0;
- for (size_t i = 0; i < redovi; i++)
- {
- if (izracunajUspjesnost(matrica[i], kolone) > najUpsjesniji)
- {
- najUpsjesniji = izracunajUspjesnost(matrica[i], kolone);
- index = i;
- }
- }
- return index;
- }
- int pronadjiDanSaNajnizomPrognozom(float** matrica, short redovi, short kolone)
- {
- int index = 0;
- float najnizi= FLT_MAX;
- for (size_t j = 0; j < kolone; j++)
- {
- float dan = 0;
- for (size_t i = 0; i < redovi; i++)
- {
- dan += matrica[i][j];
- }
- if (dan < najnizi)
- {
- najnizi = dan;
- index = j;
- }
- }
- return index;
- }
- // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
- // Debug program: F5 or Debug > Start Debugging menu
- // Tips for Getting Started:
- // 1. Use the Solution Explorer window to add/manage files
- // 2. Use the Team Explorer window to connect to source control
- // 3. Use the Output window to see build output and other messages
- // 4. Use the Error List window to view errors
- // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
- // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement