Advertisement
majczel23000

[AiSD] 1c

Nov 30th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.42 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4. using namespace std;
  5.  
  6. //Zadanie 1
  7. const int N = 10;
  8. int dane[N];
  9. int kroki = 0;
  10.  
  11. void init1()
  12. { //inicjalizacja tablicy do zadania 1
  13.     dane[0]=rand()%10;
  14.     for(int i=1; i<N;i++)
  15.         dane[i]=rand()%10 + dane[i-1];
  16. }
  17.  
  18. void drukuj()
  19. {
  20.     for(int i=0; i<N;i++)
  21.         cout<<dane[i]<< " ";
  22.     cout<<endl;
  23. }
  24.  
  25. int szukaj()
  26. {
  27.  
  28.     cout<<"Podaj liczbฤ™ do wyszukania: ";
  29.     int x;
  30.     cin>>x;
  31.     int lewy = 0;
  32.     int prawy = N-1;
  33.     bool znaleziono = false;
  34.     while(lewy <= prawy && !znaleziono)
  35.     {
  36.         ++kroki;
  37.         int srodek = (lewy+prawy)/2;
  38.         if(dane[srodek] == x)
  39.         {
  40.             znaleziono = true;
  41.             return srodek;
  42.         }
  43.         else
  44.             if(x < dane[srodek])
  45.                 prawy = srodek - 1;
  46.             else
  47.                 lewy = srodek + 1;
  48.     }
  49.     return -1;
  50. }
  51.  
  52. void zadanie1()
  53. {
  54.     init1();
  55.     drukuj();
  56.     int wynik = szukaj();
  57.     cout<<"Pozycja liczby (-1 gdy nie ma): "<< wynik<<". Liczba krokow: "<<kroki<<endl;
  58. }
  59.  
  60. //Zadanie 2
  61. struct element
  62. {
  63.     char wart;
  64.     element *next, *prev;
  65. };
  66.  
  67. element *head = NULL;
  68.  
  69. void dodaj(char z)
  70. {
  71.     element *n = new element;
  72.     n->wart = z;
  73.     if(head==NULL)
  74.     {
  75.         head = n;
  76.         n->prev = 0;
  77.         n->next = 0;
  78.     }
  79.     else
  80.     {
  81.         if(head->wart > z)
  82.         {
  83.             n->next = head;
  84.             head->prev = n;
  85.             head = n;
  86.             n->prev = 0;
  87.         }
  88.         else
  89.         {
  90.             element *p, *q;
  91.             p = head;
  92.             q = head->next;
  93.             while(q != NULL && q->wart <= z)
  94.             {
  95.                 p = q;
  96.                 q = q->next;
  97.             }
  98.             if(q == 0)
  99.                 n->next = 0;
  100.             else
  101.             {
  102.                 n->next = q;
  103.                 q->prev = n;
  104.             }
  105.             p->next = n;
  106.             n->prev = p;
  107.         }
  108.  
  109.     }
  110. }
  111.  
  112. void drukujL()
  113. {
  114.     element *p = head;
  115.     while(p!=0)
  116.     {
  117.         if(p->next != 0)
  118.             cout<<p->wart<<" <-> ";
  119.         else
  120.             cout<<p->wart;
  121.         p = p->next;
  122.     }
  123.     cout<<endl;
  124. }
  125.  
  126. void zadanie2()
  127. {
  128.     dodaj('d');
  129.     dodaj('j');
  130.     dodaj('l');
  131.     dodaj('h');
  132.     dodaj('a');
  133.     dodaj('a');
  134.     dodaj('k');
  135.     dodaj('k');
  136.     drukujL();
  137. }
  138.  
  139. int main(){
  140.     zadanie2();
  141.     return 0;
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement