Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cmath>
  4. #include <iomanip>
  5. #include <ctime>
  6.  
  7. using namespace std;
  8.  
  9. const int N=100;
  10. void losuj(int t[]);
  11. void wypisz(int t[]);
  12. int srednia(int t[]);
  13. int minimum(int t[]);
  14. int maximum(int t[]);
  15. int sortowanie(int t[]);
  16. int szukaj_lidera(int t[]);
  17. void dominanta (int tab[]);
  18. void sort_wyb(int t[]);
  19.  
  20. int main()
  21. {
  22. srand(time(NULL));
  23.  
  24. int tab[N];
  25.  
  26. losuj(tab);
  27. //sortowanie(tab);
  28. wypisz(tab);
  29. cout<< "\n\n Po sortowaniu\n\n";
  30. sort_wyb(tab);
  31. wypisz(tab);
  32. cout << endl << endl;
  33. cout << "Minimum= " << minimum(tab) << endl;
  34. cout << "Maximum= " << maximum(tab) << endl;
  35. cout << "Srednia= " << srednia(tab) << endl;
  36.  
  37. int lider = szukaj_lidera(tab);
  38.  
  39. if(lider==-1)
  40. cout<<"Zbior nie posiada lidera"<<endl;
  41. else
  42. cout<<"Liderem zbioru jest "<<lider<<endl;
  43.  
  44. dominanta(tab);
  45.  
  46.  
  47. return 0;
  48. }
  49.  
  50.  
  51.  
  52.  
  53. void losuj(int t[])
  54. {
  55. for (int i = 0; i < N; i++)
  56. {
  57. t[i]=rand()%(9+1);
  58. }
  59. }
  60.  
  61. int sortowanie(int t[])
  62. {
  63. for(int j=N-1; j>0; j--)
  64.  
  65. for(int i=0; i<j; i++)
  66.  
  67. if(t[i] > t[i+1])
  68. {
  69. swap(t[i], t[i+1]);
  70. }
  71.  
  72. }
  73.  
  74. void wypisz(int t[])
  75. {
  76. for (int i = 0; i < N; i++)
  77. {
  78. if (i%10==0) cout << endl;
  79. cout << t[i] << " ";
  80. }
  81. }
  82.  
  83. int minimum(int t[])
  84. {
  85. int m=t[0];
  86. for (int i = 1; i < N; i++)
  87. {
  88. if ( t[i]<m ) m=t[i];
  89. }
  90. return m;
  91. }
  92.  
  93. int maximum(int t[])
  94. {
  95. int m=t[0];
  96. for (int i = 1; i < N; i++)
  97. {
  98. if ( t[i]>m ) m=t[i];
  99. }
  100. return m;
  101. }
  102.  
  103. int srednia(int t[])
  104. {
  105. int x=0;
  106.  
  107. for (int i = 0; i < N; i++)
  108. {
  109. x+=t[i];
  110. }
  111. return x/N;
  112. }
  113.  
  114. int szukaj_lidera(int t[])
  115. {
  116. int lider = t[0];
  117. int do_pary = 1;
  118.  
  119. //wykreœlanie par o ró¿nych wartoœciach
  120. for(int i=1;i<N;i++)
  121. if(do_pary > 0)
  122. if(t[i]==lider)
  123. ++do_pary;
  124. else
  125. --do_pary;
  126. else
  127. {
  128. ++do_pary;
  129. lider = t[i];
  130. }
  131. //koniec wykreœlania
  132.  
  133. if(do_pary==0)
  134. return -1; //zwrócenie -1 oznacza, ¿e zbiór nie posiada lidera
  135.  
  136. int ile = 0; //zmienna zliczaj¹ca wyst¹pienia potencjalnego lidera
  137.  
  138. for(int i=0;i<N;i++) //zliczamy wyst¹pienia lidera
  139. if(t[i]==lider)
  140. ++ile;
  141.  
  142. if(ile>N/2) //sprawdzamy, czy potencjalny lider wystêpuje oczekiwan¹ iloœæ razy
  143. return lider;
  144.  
  145.  
  146. }
  147.  
  148. void dominanta (int tab[])
  149. {
  150. int dominanta_ilosc = 0;
  151. int dominanta_wartosc = 0;
  152. int licznik = 0;
  153. int i = 0;
  154. while (i < N)
  155. {
  156. while ((tab[i] == tab [i+1]) && (i < N))
  157. {
  158. i++;
  159. licznik++;
  160. }
  161. if (licznik > dominanta_ilosc)
  162. {
  163. dominanta_ilosc = licznik;
  164. dominanta_wartosc = tab[i-1];
  165. }
  166. licznik = 0;
  167. i++;
  168. }
  169. cout << "Dominanta: " << dominanta_wartosc << endl;
  170. }
  171.  
  172. void sort_wyb(int t[])
  173. {
  174. int n=N;
  175. int k;
  176. double pom;
  177. for(int i=0;i<n-1;i++)
  178. {
  179. k=i;
  180. for(int j=i+1;j<n;j++)
  181. if (t[j]<t[k]) k=j;
  182. pom=t[k];
  183. t[k]=t[i];
  184. t[i]=pom;
  185. }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement