Fandom

C/C++

Zadanie 2

53strony na
tej wiki
Dodaj nową stronę
Dyskusja0 Udostępnij
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <iomanip>
void losuj(int t[]); //sortowanie babelkowe
void wypisz(int t[]);
void babelkowe(int t[]);
int nwd(int a, int b); //rekurencja
int nwd2(int a, int b); //iteracja
int nww(int a, int b);
void generuj (int T[], int n); // sito
bool czy_pierwsza(int n);
const int N=100;
using namespace std;
int main(){
    char wybor;
    do{
    	cout << "1. SORTOWANIE BABELKOWE \n";
    	cout << "2. NWW \n";
    	cout << "3. NWD REKURENCYJNIE \n";
    	cout << "4. NWD ITERACJA Z MODULE I ODEJMOWANIEM \n";
    	cout << "5. SITO ERATOSTENESA ITERACJA \n";
    	cout << "6. BADANIE CZY LICZBA JEST PIERWSZA \n";
    	cout << "0. WYJSCIE Z PROGRAMU \n";
        cin >> wybor;
        switch(wybor){
            case '1':
				{
				srand(time(NULL));
    			cout << "Sortowanie metoda babelkowa!!!\n\n";
    			int tab[N];
    			losuj(tab);
    			cout << "Przed sortowaniem: \n";
    			wypisz(tab);
    			babelkowe(tab);
    			cout << "\nPo sortowaniu: \n";
    			wypisz(tab);
  				system ("pause");
          		break;
                }
			case '2':
				{
				int p;
                int q;
                cout << "Podaj n i m:";
                cin >> p >> q;
                cout << nww(p,q);
				system("pause");
				break;
				}
			case '3':
				{
				unsigned a, b;
				cout << "Podaj a i b";
    			cin >> a >> b;
    			cout << "nwd(" << a << "," << b << ") = " << nwd(a, b) << endl;
				system ("pause");
				break;	
				}
			case '4':
				{
				int a,b;
    			cout<<"Podaj liczbe a: ";
    			cin>>a;
    			cout<<"Podaj liczbe b; ";
    			cin>>b;
    			cout << nwd2(a, b) << endl;
				system ("pause");
				break;	
				}
			case '5':
				{
				// sito Eratostenesa (iteracja)
				system ("pause");
				break;	
				}
			case '6':
				{
				int n;
 				cout<<"Podaj liczbe: ";
  				cin>>n;
  				if(czy_pierwsza(n))
    				cout<<"Liczba "<<n<<" jest pierwsza"<<endl;
  				else
    				cout<<"Liczba "<<n<<" nie jest pierwsza"<<endl;
    			system ("pause");
				break;	
				}
          case '0': cout << "koniec"; break;
         default: cout << "Blad";
        }
        system("cls");
    }while(wybor!='k' && wybor!='K');
    return 0;
}
void losuj(int t[]){
    for(int i=0; i<N; i++) t[i]=100+rand()%(999-100+1);
}
void wypisz(int t[]){
       for(int i=0; i<N; i++){
                if (i%10==0) cout << endl;
                cout << setw(5) << t[i];
       }
}
void babelkowe(int t[]){
            int i=0;
            int j=0;
               while(i<N){
                   j=0;
                   while (j<N-1-i){
                      if (t[j]>t[j+1]) swap(t[j],t[j+1]);
                      j++;
                   }
                   i++;
               }

}
int nwd(int a, int b){ //rekurencja
 if (b==0) return a;
 return nwd(b,a%b);
}
int nww(int a, int b){
                        return a*b/nwd(a,b);
}
void generuj (int T[], int n)
{
    
    int i, m;
    for (i=2;i<=n;i++) T[i]=1;
    i=2;
    while (i<=n)
    {
        m=2*i;
        while (m<=n)
        {
            
            T[m]=0;
            m+=i;
        }
		do i++; while (T[i]==0 && i<=n);
    }
}
int nwd2 (int a, int b) //iteracja
{
    while (a!=b)
        if (a>b) a-=b;
    else b-=a;
    return a;
}
bool czy_pierwsza(int n)
{
  if(n<2)
    return false;
  for(int i=2;i*i<=n;i++)
    if(n%i==0)
      return false;
  return true;
}

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Więcej z Fandomu

Losowa wiki