Facebook
From Abrupt Hog, 3 Years ago, written in Plain Text.
This paste is a reply to Re: Untitled from Denim Dormouse - view diff
Embed
Download Paste or View Raw
Hits: 188
  1. #include <iostream>
  2. #include <time.h>
  3. #include <windows.h>
  4. #include <stdio.h>
  5. #include <cstdlib>
  6. #include <conio.h>
  7. using namespace std;
  8. int dane[6];
  9. int rozmiar;
  10.  
  11. void wyswietl_stos()
  12. {
  13.     system("CLS");
  14.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);
  15.     cout<<endl;
  16.     cout<<"----------------"<<endl;
  17.     cout<<"ZAWARTOSC STOSU:"<<endl;
  18.     cout<<"----------------"<<endl;
  19.     for (int i=rozmiar; i>=1; i--)
  20.     {
  21.         cout<<dane[i]<<endl;
  22.     }
  23.  
  24.     if (rozmiar==0)
  25.         cout<<"pusty"<<endl;
  26.  
  27.     cout << "----------------"<<endl<<endl;
  28.  
  29.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
  30. }
  31. //------------------------------------------------------------------------
  32. void push()
  33. {
  34.     if (rozmiar>=5)
  35.     {
  36.         cout << "Stos pelny!";
  37.         Sleep(1000);
  38.     }
  39.     else
  40.     {
  41.         cout<<endl<< "PUSH (jaka liczbe polozyc na stosie): ";
  42.  
  43.         rozmiar=rozmiar+1;
  44.         cin>>dane[rozmiar];
  45.     }
  46. }
  47. //------------------------------------------------------------------------
  48. void pop()
  49. {
  50.     if (rozmiar>=1)
  51.     {
  52.         cout<<endl<<"POP - nastapi usuniecie ze stosu liczby: "<<dane[rozmiar];
  53.         Sleep(2000);
  54.  
  55.         rozmiar=rozmiar-1;
  56.     }
  57.     else
  58.     {
  59.         cout << "Stos pusty!";
  60.         Sleep(1000);
  61.     }
  62. }
  63. //------------------------------------------------------------------------
  64. void size()
  65. {
  66.     cout<<endl<<"Liczba elementow na stosie: "<<rozmiar;
  67.     Sleep(2000);
  68. }
  69. //------------------------------------------------------------------------
  70. void empty()
  71. {
  72.  
  73.     if (rozmiar==0)
  74.         cout<<endl<<"EMPTY (stos pusty?) ->  TRUE";
  75.     else
  76.         cout<<endl<<"EMPTY (stos pusty?) ->  FALSE";
  77.     Sleep(2000);
  78. }
  79. //------------------------------------------------------------------------
  80. void quicksort(int *tablica, int lewy, int prawy)
  81. {
  82.     int piwot=tablica[(lewy+prawy)/2];
  83.     cout<<"wartosc piwota "<<piwot<<endl;
  84.     int i,j,x;
  85.     i=lewy;// 0
  86.     j=prawy;// 6
  87.     cout<<"wartosc lewego "<<lewy+1<<" wartosc prawego "<<prawy+1<<endl;
  88.     do         // 3 65 1 43 45 4
  89.     {
  90.         while (tablica[i]<piwot)
  91.             i++; //0
  92.         while (tablica[j]>piwot)
  93.             j--; //0
  94.         if (i<=j)
  95.         { cout<<"to jest wartosc i:  "<<tablica[i]<<"  to jest wartosc j: "<<tablica[j]<<endl;cout<<"to Jest i Przed zamiana "<<i+1<<" to Jest J Przed zamiana "<<j+1<<endl;
  96.  
  97.             x=tablica[i];
  98.             tablica[i]=tablica[j];
  99.             tablica[j]=x;
  100.             i++; // 1
  101.             j--;// -1
  102. cout<<"to Jest i Po zamianie "<<i+1<<" to Jest J Po zamianie "<<j+1<<endl;
  103.  
  104.             for(int i=0; i<6; i++)
  105.     {
  106.         cout<<tablica[i]<<"  ";
  107.     }
  108.                    }
  109.     }
  110.     while(i<=j);
  111. cout<<" "<<endl;
  112.     if(j>lewy)
  113.         quicksort(tablica,lewy, j);
  114.     if(i<prawy)
  115.         quicksort(tablica, i, prawy); //rekurencja funcki z intencj¹ zmiany pivota
  116. }
  117. void losowanko()
  118. {
  119.     int ile;
  120.     system("CLS");
  121.     srand(time(NULL)); // "inicjowanie losowania"
  122.     cout<<"Podaj ile liczb ma byc posortowanych:  ";
  123.     cin>>ile;
  124.     int *tablica;
  125.     tablica= new int[ile];
  126.     for(int i=0; i<ile; i++)
  127.     {
  128.         tablica[i]=rand()%100+1;//losowanie liczby od 1 do 100 i wpisywanie jej do tablicy
  129.         cout<<tablica[i]<<"  ";
  130.     }
  131.     cout<<endl<<"";
  132.     cout<<"Liczby po sortowaniu:   "<<endl;
  133.     quicksort(tablica, 0, ile-1); //wywo³anie funcki
  134.     for(int i=0; i<ile; i++)
  135.     {
  136.         cout<<tablica[i]<<"  ";
  137.     }
  138.     cout<<endl<<" ";
  139.     delete [] tablica;
  140.     cout<<"ENTER POWROT DO MENU"<<endl;
  141.     getchar();
  142.     getchar();
  143. }
  144. void menu_stosu()
  145. {
  146.     int wybor;
  147.     rozmiar=0;
  148.     do
  149.     {
  150.         wyswietl_stos();
  151.         cout << "MENU GLOWNE STOSU:"<<endl;
  152.         cout << "------------------------------------------"<<endl;
  153.         cout << "1. PUSH (dodaje element na szczyt stosu) "<<endl;
  154.         cout << "2. POP (usuwa element ze szczytu stosu) "<<endl;
  155.         cout << "3. SIZE (ile elementow na stosie) "<<endl;
  156.         cout << "4. EMPTY (czy stos jest pusty?) "<<endl;
  157.         cout << "5. Powrucenie do menu "<<endl;
  158.         cout << "------------------------------------------"<<endl;
  159.         cout << "Wybor: ";
  160.         cin >> wybor;
  161.         switch (wybor)
  162.         {
  163.         case 1:
  164.             push();
  165.             break;
  166.  
  167.         case 2:
  168.             pop();
  169.             break;
  170.  
  171.         case 3:
  172.             size();
  173.             break;
  174.  
  175.         case 4:
  176.             empty();
  177.             break;
  178.         }
  179.     }
  180.     while (wybor != 5);
  181. }
  182.  
  183.  
  184. int main()
  185. {
  186.     char wybur;
  187.     do
  188.     {
  189.         system("CLS");
  190.         cout << "MENU GLOWNE PROGRAMU:"<<endl;
  191.         cout << "------------------------------------------"<<endl;
  192.         cout << "1. Sortowanie liczb "<<endl;
  193.         cout << "2. Stos "<<endl;
  194.         cout << "3. Koniec programu "<<endl;
  195.         cout << "------------------------------------------"<<endl;
  196.         wybur=getch();
  197.         switch (wybur)
  198.         {
  199.         case '1':
  200.         {
  201.             losowanko();
  202.         }
  203.         break;
  204.  
  205.         case '2':
  206.         {
  207.             menu_stosu();
  208.         }
  209.         break;
  210.         }
  211.     }
  212.     while(wybur !='3');
  213.     return 0;
  214. }
  215.