Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<stdlib.h>
- using namespace std;
- long tab[1000]; // deklarowanie tablicy oraz ustalenie jej maksymalnej wartosci
- int x,sr; // deklarowanie dwoch zmiennych x oraz sr
- double szukaj(int l, int p, long szukana) // funkcja typu double przechowujaca 3 zmienne - l, p oraz szukana typu long
- {
- while(l<=p) // podczas gdy l jest mniejsze lub rowne p (l - lewy, p - prawy)
- {
- sr=(l+p)/2; // zmienna sr jest rowna l+p podzielone przez 2
- if(tab[x]==szukana) return x;
- /*
- Petla if:
- Zwroc wartosc x jesli wartosc x w tablicy bedzie rowna wartosci szukanej
- */
- if(tab[x]>szukana) p=x-1;
- /*
- Petla if:
- Zwroc wartosc p-x-1 jesli wartosc x w tablicy bedzie wieksza od wartosci szukanej
- */
- else l=x+1;
- /*
- W przeciwnym wypadku wartosc l rowna sie x+1
- */
- } return -1; // zwroc wartosc -1
- }
- int main()
- {
- double n, szukana; // deklaracja dwoch zmiennych n oraz szukana
- cin>>n; // pierwsza wartosc podana przez uzytkownika przypisz do zmiennej n
- for(int i=0;i<n;i++) cin>>tab[i];
- /*
- Petla for:
- - dla iteratora rownego 0, inkrementuj wartosc iteratora dopoki jego wartosc bedzie mniejsza od wartosci zmiennej n
- - druga wartosc podana przez uzytkownika to element tablicy (znajduje sie w petli for)
- */
- cin>>szukana; // trzecia wartosc podana przez uzytkownika to szukany element
- int pozycja=szukaj(0,n-1,szukana);
- /*
- deklaracja nowej zmiennej o nazwie pozycja
- zmienna pozycja jest rowna (tutaj wywolanie funkcji szukaj) funkcji szukaj przechowujacej wartosci 0, n-1 oraz szukana
- */
- 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 */
- 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 */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement