Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <math.h>
- #include <fstream>
- #include <string>
- #include <vector>
- using namespace std;
- void swapNOSTD(double &a, double &b )
- {
- double pom;
- pom = a;
- a = b;
- b = pom;
- }
- double maksimum(double *tab, int n)
- {
- double maks=tab[0];
- for(int i=1; i<n; i++){
- if(maks<tab[i])
- maks = tab[i];
- }
- return maks;
- }
- double minimum(double *tab, int n)
- {
- double minim=tab[0];
- for(int i=1; i<n; i++){
- if(minim>tab[i])
- minim = tab[i];
- }
- return minim;
- }
- double srednia(double *tab, int n)
- {
- double srednia=0;
- for(int i=0; i<n; i++)
- {
- srednia+=tab[i];
- }
- return srednia/n;
- }
- double sredniaGeo(double *tab, int n)
- {
- double sredniaGeo=0;
- double k=n;
- for(int i=0; i<n; i++)
- {
- sredniaGeo+=pow(tab[i],2);
- }
- return pow(sredniaGeo, 1/k);
- }
- void sortRosn(double *tab, int n, vector<double>& sortRosnaco)
- {
- for(int i=0; i<n; i++)
- for(int j=1; j<n;j++)
- if(tab[j-1]>tab[j])swapNOSTD(tab[j-1], tab[j]);
- for(int i=0; i<n; i++)
- sortRosnaco.push_back(tab[i]);
- }
- void sortMal(double *tab, int n, vector<double>& sortMalejaco)
- {
- for(int i=0; i<n; i++)
- for(int j=1; j<n;j++)
- if(tab[j-1]<tab[j])swap(tab[j], tab[j-1]);
- for(int i=0; i<n; i++)
- sortMalejaco.push_back(tab[i]);
- }
- int znajdZera(double *tab, int n)
- {
- int licznik=0;
- for(int i=0; i<n; i++)
- {
- if(tab[i]==0)
- licznik++;
- }
- return licznik;
- }
- int znajdMniejZera(double *tab, int n, vector<double> &vecMniejszeOdZera)
- {
- int licznikMniejszychOdZera=0;
- for(int i=0; i<n; i++)
- {
- if(tab[i]<0){
- vecMniejszeOdZera.push_back(tab[i]);
- licznikMniejszychOdZera++;
- }
- }
- return licznikMniejszychOdZera;
- }
- void wyeksportuj (string zapis, double *tab, int n, vector<double> sortMalejaco, vector<double> sortRosnaco, vector<double> vecMniejszeOdZera )
- {
- ofstream dane(zapis.c_str(), ios::out | ios::trunc);
- dane<<"Maksymalna wartosocia bedzie:"<<maksimum(tab, n)<<endl;
- dane<<"Minimalna wartoscia bedzie:"<<minimum(tab, n)<<endl;
- dane<<"Srednia arytmetyczna wynosi:"<<srednia(tab, n)<<endl;
- dane<<"Srednia geometryczna wynosi:"<<sredniaGeo(tab, n)<<endl;
- dane<<"Liczy posortowane malejaco:";
- for(size_t i=0; i<sortMalejaco.size(); i++)
- dane<<sortMalejaco[i]<<" ";
- dane<<endl;
- dane<<"Liczy posortowane rosnaco:";
- for(size_t i=0; i<sortRosnaco.size(); i++)
- dane<<sortRosnaco[i]<<" ";
- dane<<endl;
- dane<<"Liczb rownych zero jest:"<<znajdZera(tab, n)<<endl;
- dane<<"Liczb mniejszych od zera jest:"<<znajdMniejZera(tab, n, vecMniejszeOdZera)<<" A sa to nastepujace liczby: ";
- for(size_t i=0; i<vecMniejszeOdZera.size(); i++)
- dane<<vecMniejszeOdZera[i]<<" ";
- dane.close();
- }
- int main()
- {
- int wybor;
- cout << "------------------------";
- cout << "1. znajdz max i min";
- cout << "2. policz srednia arytmetyczna";
- cout << "3. policz srednia geometryczna";
- cout << "4. sortuj malejaco i rosnaco";
- cout << "5. znajdz liczby mniejsze od zera";
- cout << "6. znajdz liczby rowne zero" << endl;
- cout << "wybierz opcje od 1 - 6: ";
- cin >> wybor;
- switch (wybor)
- {
- case 1:
- int n;
- cout << "Podaj ilosc liczb:";
- cin >> n;
- double* tab = new double[n];
- cout << "Podaj liczby:" << endl;
- for (int i = 0; i < n; i++)
- {
- cout << i + 1 << ".Liczba: ";
- cin >> *(tab + i);
- }
- sortMal(tab, n, sortMalejaco);
- sortRosn(tab, n, sortRosnaco);
- cout<<"Maksymalna wartosocia bedzie:"<<maksimum(tab, n)<<endl;
- cout<<"Minimalna wartoscia bedzie:"<<minimum(tab, n)<<endl;
- break;
- case 2:
- std::cout << "jeden" << std::endl;
- break;
- case 3:
- std::cout << "trzy" << std::endl;
- break;
- case 4:
- std::cout << "trzy" << std::endl;
- break;
- case 5:
- std::cout << "trzy" << std::endl;
- break;
- case 6:
- std::cout << "trzy" << std::endl;
- break;
- default: cout << "nie ma takiej opcji";
- }
- return 0;
- vector<double> vecMniejszeOdZera;
- vector<double> sortRosnaco;
- vector<double> sortMalejaco;
- cout<<"Maksymalna wartosocia bedzie:"<<maksimum(tab, n)<<endl;
- cout<<"Minimalna wartoscia bedzie:"<<minimum(tab, n)<<endl;
- cout<<"Srednia arytmetyczna wynosi:"<<srednia(tab, n)<<endl;
- cout<<"Srednia geometryczna wynosi:"<<sredniaGeo(tab, n)<<endl;
- cout<<"Liczy posortowane malejaco:";
- for(size_t i=0; i<sortMalejaco.size(); i++)
- cout<<sortMalejaco[i]<<" ";
- cout<<endl;
- cout<<"Liczy posortowane rosnaco:";
- for(size_t i=0; i<sortRosnaco.size(); i++)
- cout<<sortRosnaco[i]<<" ";
- cout<<endl;
- cout<<"Liczb rownych zero jest:"<<znajdZera(tab, n)<<endl;
- cout<<"Liczb mniejszych od zera jest:"<<znajdMniejZera(tab, n, vecMniejszeOdZera)<<" A sa to nastepujace liczby: ";
- for(size_t i=0; i<vecMniejszeOdZera.size(); i++)
- cout<<vecMniejszeOdZera[i]<<" ";
- cout<<endl;
- cout<<"Jesli chcesz zapisac wyniki programu w pliku tekstowym wpisz 'zapisz'."<<endl;
- string zapis;
- cin.ignore();
- getline(cin, zapis);
- if(zapis=="zapisz" || zapis=="Zapisz" || zapis=="ZAPISZ")
- {
- cout<<"Podaj nazwe pliku wraz z formatem np.'plik.txt', w ktorym maja zostac zapisane dane."<<endl;
- getline(cin, zapis);
- wyeksportuj(zapis,tab,n,sortMalejaco,sortRosnaco,vecMniejszeOdZera);
- cout<<"Plik zostal zapisany";
- }
- delete [] tab;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement