Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <windows.h>
- #include <cstdlib>
- #include <ctime>
- #include <cmath>
- using namespace std;
- void we(int &n)
- {
- cout<<"Podaj n: ";
- cin>>n;
- if(n>=0 && n<=80)
- cout<<"Miesci sie w przedziale"<<endl;
- else
- cout<<"Poza przedzialem"<<endl;
- }
- void we1(int *tab, int n)
- {
- int a,b;
- cout<<"Od: ";
- cin>>a;
- cout<<"Do: ";
- cin>>b;
- srand(time(NULL));
- if(a<b)
- {
- for(int i=0; i<n; i++)
- tab[i]=a+rand()%(b-a+1);
- }
- else {
- for(int i=0; i<n; i++)
- tab[i]=b+rand()%(a-b+1);
- }
- }
- void kopia(int *tab, int *tab1, int n)
- {
- for (int i=0; i<n; i++) tab1[i]=tab[i];
- }
- void wypisz_odwrotnie(int *tab, int *tab1, int n)
- {
- kopia(tab,tab1,n);
- int b;
- for(int i=0; i<(n/2); i++)
- {
- b=tab[i];
- tab[i]=tab[n-1-i];
- tab[n-1-i]=b;
- }
- cout<<endl;
- }
- void srednia(int *tab, int n)
- {
- int tab2[90]={0};
- int tab3[90]={0};
- float wynik=0;
- for(int i=0; i<=(n-1);i++)
- wynik+=tab[i];
- cout<<fixed<<setprecision(3)<<"Srednia jest rowna: "<<(wynik/n)<<endl;
- int licznik=0;
- int licznik1=0;
- for(int i=0; i<n; i++){
- if (tab[i]>=(wynik/n)){
- tab2[licznik]=tab[i];
- licznik++;}
- else{
- tab3[licznik1]=tab[i];
- licznik1++;}
- }
- cout << "Elementy wieksze lub rowne srednia: \n";
- for( int i=0; i<licznik; i++ ) cout<<setw(5)<<tab2[i];
- cout <<endl<< "Elementy mniejsze od sredniej: \n";
- for( int j=0; j<licznik1; j++ ) cout<<setw(5)<<tab3[j];
- }
- int najwieksza(int *tab, int n, int &maks)
- {
- int i;
- maks=tab[0];
- for(i=1; i<n; i++)
- if(tab[i]>maks) maks=tab[i];
- return maks;
- }
- int najmniejsza(int *tab, int n, int &mini)
- {
- int i;
- mini=tab[0];
- for(i=1; i<n; i++)
- if(tab[i]<mini) mini=tab[i];
- return mini;
- }
- bool szukaj(int *tab, int n)
- {
- int i=0,liczba;
- cout<<"Podaj liczbe ";
- cin>>liczba;
- while(tab[i]!= liczba && i<n) i++;
- if(i<n) return true;
- return false;
- }
- int lidera(int *tab, int n)
- {
- int lider=tab[0], para=1;
- for(int i=1; i<n; i++)
- {
- if(para == 0)
- {
- tab[i]=lider;
- para++;
- }
- else
- {
- if(lider == tab[i]) para++;
- else para--;
- }
- }
- if(para == 0) return 1;
- int ile=0;
- for(int i=0; i<n; i++)
- {
- if(tab[i] == lider) ile++;
- if(ile>(n/2))
- return lider;
- }
- return 1;
- }
- void wy(int *tab, int n)
- {
- int i=0;
- for(i=0; i<n; i++)
- cout<<setw(8)<<tab[i];
- }
- void sortowanie_babelkowe(int *tab, int n, int *tab1)
- {
- kopia(tab,tab1,n);
- for(int i=0;i<n;i++)
- for(int j=1;j<n-i;j++)
- if(tab1[j-1]>tab1[j])
- swap(tab1[j-1], tab1[j]);
- for(int i=0;i<n;i++)
- cout<<tab1[i]<<" ";
- }
- int ile_max(int *tab, int n)
- {
- int wynik=0,m;
- najwieksza(tab,n,m);
- for(int x=0; x<n; x++)
- if(tab[x]==m) wynik++;
- return wynik;
- }
- int ile_min(int *tab, int n)
- {
- int wynik=0,mi;
- najmniejsza(tab,n,mi);
- for(int x=0; x<n; x++)
- if(tab[x]==mi) wynik++;
- return wynik;
- }
- void program(int *tab, int *tab1, int n)
- {
- int menu;
- bool bylo_pierwsze = false;
- do{
- cout<<"MENU"<<endl<<"1 - Tworzenie i wypelnianie tablicy"<<endl<<"2 - Wyswietlenie tablicy"<<endl<<"3 - Sortowanie babelkowe"<<endl<<"4 - Lider"<<endl<<"5 - Tablica odwrotna"<<endl<<"6 - Max"<<endl<<"7 - Srednia"<<endl<<"8 - Wyjscie"<<endl<<"wybierz ";
- cin>>menu;
- switch(menu)
- {
- case 1:
- bylo_pierwsze = true;
- cout<<"Tworzenie i wypelnianie tablicy"<<endl;
- we(n);
- we1(tab,n);
- Sleep(3000);
- system("cls");
- break;
- case 2:
- if(bylo_pierwsze != true){
- cout<<"Blad! Wybierz najpierw zadanie 1"<<endl;
- Sleep(2000);
- system("cls");
- break;
- }
- cout<<"Wyswietlenie tablicy"<<endl;
- wy(tab,n);
- Sleep(3000);
- system("cls");
- break;
- case 3:
- if(bylo_pierwsze != true){
- cout<<"Blad! Wybierz najpierw zadanie 1"<<endl;
- Sleep(2000);
- system("cls");
- break;
- }
- cout<<"Sortowanie babelkowe"<<endl;
- wy(tab,n);
- cout<<endl<<endl;
- sortowanie_babelkowe(tab,n,tab1);
- Sleep(3000);
- system("cls");
- break;
- case 4:
- if(bylo_pierwsze != true){
- cout<<"Blad! Wybierz najpierw zadanie 1"<<endl;
- Sleep(2000);
- system("cls");
- break;
- }
- cout<<"Wyszukiwanie lidera"<<endl;
- if(lidera(tab,n)== 1){
- cout<<"Nie ma lidera"<<endl;}
- else{
- cout<<"Liderem jest: "<<lidera(tab,n)<<endl;}
- Sleep(3000);
- system("cls");
- break;
- case 5:
- if(bylo_pierwsze != true){
- cout<<"Blad! Wybierz najpierw zadanie 1"<<endl;
- Sleep(2000);
- system("cls");
- break;
- }
- cout<<"Odwrotnosc tablicy"<<endl;
- wy(tab,n);
- cout<<endl<<endl;
- wypisz_odwrotnie(tab,tab1,n);
- Sleep(3000);
- system("cls");
- break;
- case 6:
- if(bylo_pierwsze != true){
- cout<<"Blad! Wybierz najpierw zadanie 1"<<endl;
- Sleep(2000);
- system("cls");
- break;
- }
- int m,mi;
- cout<<"MAX"<<endl;
- cout<<"Najwieksza liczba to: "<<najwieksza(tab,n,m)<<" Wystepuje: "<<ile_max(tab,n)<<endl;
- Sleep(3000);
- system("cls");
- break;
- case 7:
- if(bylo_pierwsze != true){
- cout<<"Blad! Wybierz najpierw zadanie 1"<<endl;
- Sleep(2000);
- system("cls");
- break;
- }
- srednia(tab,n);
- Sleep(6000);
- system("cls");
- break;
- case 8:
- cout<<"Dziekuje :)";
- exit(0);
- break;
- default: cout<<"BLEDNY WYBOR!!!"<<endl;
- Sleep(2000);
- system("cls");
- }
- }while(1==1);
- }
- int main()
- {
- int t[90],t1[90],a;
- program(t,t1,a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement