Advertisement
w0rdsworth

Rozwiazane zad. dom. z informatyki

Dec 4th, 2019
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.01 KB | None | 0 0
  1. #include<iostream>
  2. #include<stdlib.h>
  3. using namespace std;
  4.  
  5. long tab[1000]; // deklarowanie tablicy oraz ustalenie jej maksymalnej wartosci
  6. int x,sr; // deklarowanie dwoch zmiennych x oraz sr
  7.  
  8. double szukaj(int l, int p, long szukana) // funkcja typu double przechowujaca 3 zmienne - l, p oraz szukana typu long
  9. {
  10.     while(l<=p) // podczas gdy l jest mniejsze lub rowne p (l - lewy, p - prawy)
  11.     {
  12.         sr=(l+p)/2; // zmienna sr jest rowna l+p podzielone przez 2
  13.         if(tab[x]==szukana) return x;
  14.         /*
  15.             Petla if:
  16.             Zwroc wartosc x jesli wartosc x w tablicy bedzie rowna wartosci szukanej
  17.         */
  18.         if(tab[x]>szukana) p=x-1;
  19.         /*
  20.             Petla if:
  21.             Zwroc wartosc p-x-1 jesli wartosc x w tablicy bedzie wieksza od wartosci szukanej
  22.         */
  23.         else l=x+1;
  24.         /*
  25.             W przeciwnym wypadku wartosc l rowna sie x+1
  26.         */
  27.     } return -1; // zwroc wartosc -1
  28. }
  29. int main()
  30. {
  31.     double n, szukana; // deklaracja dwoch zmiennych n oraz szukana
  32.     cin>>n; // pierwsza wartosc podana przez uzytkownika przypisz do zmiennej n
  33.     for(int i=0;i<n;i++) cin>>tab[i];
  34.     /*
  35.         Petla for:
  36.         - dla iteratora rownego 0, inkrementuj wartosc iteratora dopoki jego wartosc bedzie mniejsza od wartosci zmiennej n
  37.         - druga wartosc podana przez uzytkownika to element tablicy (znajduje sie w petli for)
  38.     */
  39.     cin>>szukana; // trzecia wartosc podana przez uzytkownika to szukany element
  40.     int pozycja=szukaj(0,n-1,szukana);
  41.     /*
  42.         deklaracja nowej zmiennej o nazwie pozycja
  43.         zmienna pozycja jest rowna (tutaj wywolanie funkcji szukaj) funkcji szukaj przechowujacej wartosci 0, n-1 oraz szukana
  44.     */
  45.     if(pozycja==-1) cout<<"Liczba "<<szukana<<" nie wystepuje w zbiorze"<<endl;  /* jesli wartosc zmiennej pozycja jest rowna -1 wypisz na ekran, ze szukana wartosc nie wystepuje w zbiorze liczb */
  46.     else cout<<"Liczba "<<szukana<<" wystepuje w zbiorze w komorce o numerze "<<pozycja<<endl; /* w przeciwnym wypadku podaj numer komorki w zbiorze, gdzie pojawia sie wartosc zmiennej szukana */
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement