Advertisement
lewapkon

zad8-110.cpp

Apr 8th, 2014
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. /* Autor: Pawel Koniarski
  2.  * Data: 9 kwietnia 2014 r.
  3.  * Problem: Program obliczajacy srednia wykonanych operacji podczas wyszukiwania
  4.  *          liczby w tablicy.
  5.  * Dane: Brak.
  6.  * Wyniki: Liczba rzeczywista bedaca srednia liczby wykonanych operacji przy
  7.  *         wyszukiwaniu liczby w tablicy.
  8.  * Plik: zad8-110.cpp
  9.  **/
  10.  
  11.  
  12. #include <iostream>
  13. #include <cstdlib>
  14. #include <ctime>
  15. using namespace std;
  16.  
  17. // MIN - minimalna wylosowana liczba
  18. // MAX - maksymalana wyosowana liczba
  19. // NRN - liczba losowanych liczb w jednym przebiegu (rozmiar tablicy)
  20. // NRI - liczba przebiegow
  21. const int MIN = 0;
  22. const int MAX = 100;
  23. const int NRN  = 50;
  24. const int NRI = 1000;
  25.  
  26. int inline losuj(int a, int b)
  27. {
  28.     return (int) ((double) rand() / ((double) RAND_MAX + 1) * b) + a;
  29. }
  30.  
  31. void losujtab(int tab[], int n)
  32. {
  33.     int i;
  34.    
  35.     for (i = 0; i < n; i++)
  36.         tab[i] = losuj(MIN, MAX);
  37. }
  38.  
  39. int szukaj(int tab[], int n, int k)
  40. {
  41.     int i;
  42.    
  43.     for (i = 0; i < n; i++)
  44.         if (k == tab[i])
  45.             return i+1;
  46.     return -1;
  47. }
  48.  
  49. int main() {
  50.     int i, t, suma = 0;
  51.     int tab[NRN];
  52.    
  53.     srand(time(NULL));
  54.  
  55.     for (i = 0; i < NRI; i++)
  56.     {
  57.         losujtab(tab, NRN);
  58.         t = szukaj(tab, NRN, losuj(MIN, MAX));
  59.         suma += t != -1 ? t : NRN;
  60.     }
  61.    
  62.     cout << "Srednia liczba operacji, w " << NRI << " przebiegach, potrzebnych do odnalezienia liczby z przedzialu od " << MIN << " do " << MAX << " w tablicy o rozmiarze " << NRN << " wynosi " << (double) suma / NRI;
  63.    
  64.     cout << endl << endl;
  65.     system("pause");
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement