Facebook
From Scorching Tortoise, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 367
  1. #include <iostream>
  2. #include<cstdlib>
  3. #include<time.h>
  4. #include<math.h>
  5. #include <algorithm>
  6. using namespace std;
  7. void lokujPamiec1D(int *&tab,int n)
  8. {
  9.     tab=new int[n];
  10. }
  11. void lokujPamiec2D(int **&tab,int w,int k)
  12. {
  13.     int i;
  14.     tab=new int*[w];
  15.     for(i=0; i<w; i++)
  16.     {
  17.         tab[i]=new int[k];
  18.     }
  19. }
  20. void wypelnijTablice1D(int *tab,int n,int a,int b)
  21. {
  22.     int i;
  23.     for(i=0; i<n; i++)
  24.     {
  25.         tab[i]=rand()%(b-a+1)+a;
  26.     }
  27. }
  28. void wypelnijTablice2D(int **tab,int w,int k, int a, int b)
  29. {
  30.     int i,j;
  31.     for(i=0; i<w; i++)
  32.     {
  33.         for(j=0; j<k; j++)
  34.         {
  35.             tab[i][j]=rand()%(b-a+1)+a;
  36.         }
  37.     }
  38. }
  39. void usunTablice1D(int *&tab,int n)
  40. {
  41.     delete []tab;
  42. }
  43. void usunTablice2D(int **&tab,int w,int k)
  44. {
  45.     int i;
  46.     for(i=0; i<w; i++)
  47.     {
  48.         delete []tab[i];
  49.     }
  50.     delete []tab;
  51. }
  52. void wyswietlTablice1D(int *tab,int n)
  53. {
  54.     int i;
  55.     for(i=0; i<n; i++)
  56.     {
  57.         cout << tab[i] << endl;
  58.     }
  59. }
  60. void wyswietlTablice2D(int **tab,int w,int k)
  61. {
  62.     int i,j;
  63.     for(i=0; i<w; i++)
  64.     {
  65.         for(j=0; i<k; j++)
  66.         {
  67.             cout << tab[i][j] << endl;
  68.         }
  69.     }
  70. }
  71. void sortowanieBabelkowe(int *tab, int rozmiar, int tryb)
  72. {
  73.     if(tryb==1) //rosnaco//
  74.     {
  75.  
  76.         for(int i=0; i<rozmiar-1; i++)
  77.         {
  78.             for(int j=0; j<rozmiar-1; j++)
  79.             {
  80.                 if(tab[j]>tab[j+1])
  81.                     swap(tab[j],tab[j+1]);
  82.             }
  83.         }
  84.     }
  85.     if(tryb==0)//malejaco//
  86.     {
  87.  
  88.         for(int i=1; i<=rozmiar-1; i++)
  89.         {
  90.             for(int j=1; j<=rozmiar-1; j++)
  91.             {
  92.                 if(tab[j]<tab[j+1])
  93.                     swap(tab[j],tab[j+1]);
  94.             }
  95.         }
  96.     }
  97. }
  98. void sortowaniePrzezWybor(int *tab, int n, int tryb)
  99. {
  100.     if(tryb==1) //rosnaco//
  101.     {
  102.     for(int i= 0; i<n; i++)
  103.     {
  104.         int pmin; //wartosc od ktorego sortuje//
  105.         pmin = i;
  106.         for(int j = i + 1; j < n; j++) //petla do szukania najmniejszego//
  107.             if(tab[j] < tab[pmin])    //tab pmin, el pierwszy z nieposortowanego//
  108.             {
  109.                 pmin = j;
  110.                 swap(tab[pmin], tab[i]);
  111.             }
  112.     }
  113.     }
  114.     if(tryb==0) //malejaco//
  115.     {
  116.         for(int i= 0; i<n; i++)
  117.     {
  118.         int pmin; //wartosc od ktorego sortuje//
  119.         pmin = i;
  120.         for(int j = i + 1; j < n; j++) //petla do szukania najwiekszego//
  121.             if(tab[j] > tab[pmin])    //tab pmin, el pierwszy z nieposortowanego//
  122.             {
  123.                 pmin = j;
  124.                 swap(tab[pmin], tab[i]);
  125.             }
  126.     }
  127.     }
  128. }
  129.  
  130. void sortowaniePrzezWstawianie(int *tab,int n,int tryb)
  131. {
  132.     if(tryb==1) //rosnaco//
  133.     {
  134.     int pom, j;
  135.      for(int i=1; i<n; i++)
  136.      {
  137.              //wstawienie elementu w odpowiednie miejsce
  138.              pom = tab[i]; //ten element bêdzie wstawiony w odpowiednie miejsce
  139.              j = i-1;
  140.  
  141.              //przesuwanie elementów wiêkszych od pom
  142.              while(j>=0 && tab[j]>pom)
  143.              {
  144.                         swap(tab[j+1],tab[j]); //przesuwanie elementów
  145.                         j--;
  146.              }
  147.  
  148.      }
  149.     }
  150.     if(tryb==0) //malejaco//
  151.     {
  152.         int pom, j;
  153.      for(int i=1; i<n; i++)
  154.      {
  155.              //wstawienie elementu w odpowiednie miejsce
  156.              pom = tab[i]; //ten element bêdzie wstawiony w odpowiednie miejsce
  157.              j = i-1;
  158.  
  159.              //przesuwanie elementów wiêkszych od pom
  160.              while(j>=0 && tab[j]<pom)
  161.              {
  162.                         swap(tab[j+1],tab[j]); //przesuwanie elementów
  163.                         j--;
  164.              }
  165.  
  166.      }
  167.     }
  168. }
  169. void sortowanieBabelkowe2D(int **tab,int w, int k,int tryb)
  170. {
  171.     if(tryb==1){
  172.                 for(int j=0;j<k;j++)//sortowanie bąbelkowe
  173.                       {
  174.  
  175.                         for(int i=0;i<w-1;i++)
  176.                      {
  177.  
  178.                      if(tab[i][j]>tab[i+1][j])
  179.                  swap(tab[i][j],tab[i+1][j]);
  180.  
  181.                  }
  182.                }
  183.     }
  184.     if(tryb==0)
  185.     {
  186.        for(int j=0;j<k;j++)//sortowanie bąbelkowe
  187.                       {
  188.  
  189.                         for(int i=0;i<w-1;i++)
  190.                      {
  191.  
  192.                      if(tab[i][j]<tab[i+1][j])
  193.                  swap(tab[i][j],tab[i+1][j]);
  194.  
  195.                  }
  196.                }
  197.     }
  198.  
  199. }
  200. void zadanie1()
  201. {
  202.     int *tab;
  203.     int n,a,b,tryb;
  204.     cout << "Podaj rozmiar, zakres wypelniania, i sposob sortowania(1-rosnaco,0-malejaco)" << endl;
  205.     cin >> n >> a >> b >> tryb;
  206.     lokujPamiec1D(tab,n);
  207.     wypelnijTablice1D(tab,n,a,b);
  208.     wyswietlTablice1D(tab,n);
  209.     sortowanieBabelkowe(tab,n,tryb);
  210.     wyswietlTablice1D(tab,n);
  211.     usunTablice1D(tab,n);
  212. }
  213. void zadanie2()
  214. {
  215.     int *tab;
  216.     int n,a,b,tryb;
  217.     cout << "Podaj rozmiar, zakres wypelniania, i sposob sortowania(1-rosnaco,0-malejaco)" << endl;
  218.     cin >> n >> a >> b >> tryb;
  219.     lokujPamiec1D(tab,n);
  220.     wypelnijTablice1D(tab,n,a,b);
  221.     wyswietlTablice1D(tab,n);
  222.     sortowaniePrzezWybor(tab,n,tryb);
  223.     wyswietlTablice1D(tab,n);
  224.     usunTablice1D(tab,n);
  225.  
  226. }
  227. void zadanie3()
  228. {
  229.     int *tab;
  230.     int n,a,b,tryb;
  231.     cout << "Podaj rozmiar, zakres wypelniania, i sposob sortowania(1-rosnaco,0-malejaco)" << endl;
  232.     cin >> n >> a >> b >> tryb;
  233.     lokujPamiec1D(tab,n);
  234.     wypelnijTablice1D(tab,n,a,b);
  235.     wyswietlTablice1D(tab,n);
  236.     sortowaniePrzezWstawianie(tab,n,tryb);
  237.     wyswietlTablice1D(tab,n);
  238.     usunTablice1D(tab,n);
  239.  
  240. }
  241. void zadanie4()
  242. {
  243.     int **tab;
  244.     int a,b,tryb,w,k;
  245.     cout << "Podaj rozmiar tablicy dwuwymiarowej, zakres wypelniania, i sposob sortowania(1-rosnaco,0-malejaco)" << endl;
  246.     cin >> w >> k >> a >> b >> tryb;
  247.     lokujPamiec2D(tab,w,k);
  248.     wypelnijTablice2D(tab,w,k,a,b);
  249.     wyswietlTablice2D(tab,w,k);
  250.     sortowanieBabelkowe2D(tab,w,k,tryb);
  251.     wyswietlTablice2D(tab,w,k);
  252.     usunTablice2D(tab,w,k);
  253.  
  254. }
  255. int main()
  256. {
  257.     srand(time(NULL));
  258.     int menu;
  259.     do
  260.     {
  261.         cout << "Wybierz zadanie:" << endl;
  262.         cin>> menu;
  263.         switch(menu)
  264.         {
  265.         case 1:
  266.             zadanie1();
  267.             break;
  268.         case 2:
  269.             zadanie2();
  270.             break;
  271.         case 3:
  272.             zadanie3();
  273.             break;
  274.         case 4:
  275.             zadanie4();
  276.             break;
  277.         }
  278.     }
  279.     while(menu!=5);
  280.     return 0;
  281. }
  282.  

Replies to Untitled rss

Title Name Language When
Re: Untitled Abrupt Camel text 5 Years ago.