Advertisement
Guest User

sfgsdsd

a guest
Jan 21st, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <math.h>
  4. #include <fstream>
  5. #include <string>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. void swapNOSTD(double &a, double &b )
  11. {
  12. double pom;
  13. pom = a;
  14. a = b;
  15. b = pom;
  16.  
  17. }
  18.  
  19. double maksimum(double *tab, int n)
  20. {
  21. double maks=tab[0];
  22. for(int i=1; i<n; i++){
  23. if(maks<tab[i])
  24. maks = tab[i];
  25. }
  26. return maks;
  27.  
  28. }
  29.  
  30. double minimum(double *tab, int n)
  31. {
  32. double minim=tab[0];
  33. for(int i=1; i<n; i++){
  34. if(minim>tab[i])
  35. minim = tab[i];
  36. }
  37. return minim;
  38.  
  39. }
  40.  
  41. double srednia(double *tab, int n)
  42. {
  43. double srednia=0;
  44. for(int i=0; i<n; i++)
  45. {
  46. srednia+=tab[i];
  47. }
  48. return srednia/n;
  49. }
  50.  
  51. double sredniaGeo(double *tab, int n)
  52. {
  53. double sredniaGeo=0;
  54. double k=n;
  55. for(int i=0; i<n; i++)
  56. {
  57. sredniaGeo+=pow(tab[i],2);
  58. }
  59. return pow(sredniaGeo, 1/k);
  60. }
  61.  
  62. void sortRosn(double *tab, int n, vector<double>& sortRosnaco)
  63. {
  64. for(int i=0; i<n; i++)
  65. for(int j=1; j<n;j++)
  66. if(tab[j-1]>tab[j])swapNOSTD(tab[j-1], tab[j]);
  67.  
  68. for(int i=0; i<n; i++)
  69. sortRosnaco.push_back(tab[i]);
  70. }
  71.  
  72. void sortMal(double *tab, int n, vector<double>& sortMalejaco)
  73. {
  74. for(int i=0; i<n; i++)
  75. for(int j=1; j<n;j++)
  76. if(tab[j-1]<tab[j])swap(tab[j], tab[j-1]);
  77.  
  78. for(int i=0; i<n; i++)
  79. sortMalejaco.push_back(tab[i]);
  80. }
  81.  
  82. int znajdZera(double *tab, int n)
  83. {
  84. int licznik=0;
  85. for(int i=0; i<n; i++)
  86. {
  87. if(tab[i]==0)
  88. licznik++;
  89. }
  90. return licznik;
  91. }
  92.  
  93. int znajdMniejZera(double *tab, int n, vector<double> &vecMniejszeOdZera)
  94. {
  95. int licznikMniejszychOdZera=0;
  96. for(int i=0; i<n; i++)
  97. {
  98. if(tab[i]<0){
  99. vecMniejszeOdZera.push_back(tab[i]);
  100. licznikMniejszychOdZera++;
  101. }
  102. }
  103.  
  104. return licznikMniejszychOdZera;
  105. }
  106.  
  107.  
  108. void wyeksportuj (string zapis, double *tab, int n, vector<double> sortMalejaco, vector<double> sortRosnaco, vector<double> vecMniejszeOdZera )
  109. {
  110. ofstream dane(zapis.c_str(), ios::out | ios::trunc);
  111. dane<<"Maksymalna wartosocia bedzie:"<<maksimum(tab, n)<<endl;
  112. dane<<"Minimalna wartoscia bedzie:"<<minimum(tab, n)<<endl;
  113. dane<<"Srednia arytmetyczna wynosi:"<<srednia(tab, n)<<endl;
  114. dane<<"Srednia geometryczna wynosi:"<<sredniaGeo(tab, n)<<endl;
  115. dane<<"Liczy posortowane malejaco:";
  116. for(size_t i=0; i<sortMalejaco.size(); i++)
  117. dane<<sortMalejaco[i]<<" ";
  118. dane<<endl;
  119. dane<<"Liczy posortowane rosnaco:";
  120. for(size_t i=0; i<sortRosnaco.size(); i++)
  121. dane<<sortRosnaco[i]<<" ";
  122. dane<<endl;
  123. dane<<"Liczb rownych zero jest:"<<znajdZera(tab, n)<<endl;
  124. dane<<"Liczb mniejszych od zera jest:"<<znajdMniejZera(tab, n, vecMniejszeOdZera)<<" A sa to nastepujace liczby: ";
  125. for(size_t i=0; i<vecMniejszeOdZera.size(); i++)
  126. dane<<vecMniejszeOdZera[i]<<" ";
  127. dane.close();
  128. }
  129.  
  130. int main()
  131. {
  132. int wybor;
  133. cout << "------------------------";
  134. cout << "1. znajdz max i min";
  135. cout << "2. policz srednia arytmetyczna";
  136. cout << "3. policz srednia geometryczna";
  137. cout << "4. sortuj malejaco i rosnaco";
  138. cout << "5. znajdz liczby mniejsze od zera";
  139. cout << "6. znajdz liczby rowne zero" << endl;
  140. cout << "wybierz opcje od 1 - 6: ";
  141. cin >> wybor;
  142.  
  143. switch (wybor)
  144. {
  145. case 1:
  146. int n;
  147. cout << "Podaj ilosc liczb:";
  148. cin >> n;
  149. double* tab = new double[n];
  150.  
  151. cout << "Podaj liczby:" << endl;
  152. for (int i = 0; i < n; i++)
  153. {
  154. cout << i + 1 << ".Liczba: ";
  155. cin >> *(tab + i);
  156. }
  157. sortMal(tab, n, sortMalejaco);
  158. sortRosn(tab, n, sortRosnaco);
  159. cout<<"Maksymalna wartosocia bedzie:"<<maksimum(tab, n)<<endl;
  160. cout<<"Minimalna wartoscia bedzie:"<<minimum(tab, n)<<endl;
  161. break;
  162. case 2:
  163. std::cout << "jeden" << std::endl;
  164. break;
  165. case 3:
  166. std::cout << "trzy" << std::endl;
  167. break;
  168.  
  169. case 4:
  170. std::cout << "trzy" << std::endl;
  171. break;
  172.  
  173. case 5:
  174. std::cout << "trzy" << std::endl;
  175. break;
  176.  
  177. case 6:
  178. std::cout << "trzy" << std::endl;
  179. break;
  180. default: cout << "nie ma takiej opcji";
  181. }
  182. return 0;
  183.  
  184. vector<double> vecMniejszeOdZera;
  185. vector<double> sortRosnaco;
  186. vector<double> sortMalejaco;
  187.  
  188. cout<<"Maksymalna wartosocia bedzie:"<<maksimum(tab, n)<<endl;
  189. cout<<"Minimalna wartoscia bedzie:"<<minimum(tab, n)<<endl;
  190. cout<<"Srednia arytmetyczna wynosi:"<<srednia(tab, n)<<endl;
  191. cout<<"Srednia geometryczna wynosi:"<<sredniaGeo(tab, n)<<endl;
  192. cout<<"Liczy posortowane malejaco:";
  193. for(size_t i=0; i<sortMalejaco.size(); i++)
  194. cout<<sortMalejaco[i]<<" ";
  195. cout<<endl;
  196. cout<<"Liczy posortowane rosnaco:";
  197. for(size_t i=0; i<sortRosnaco.size(); i++)
  198. cout<<sortRosnaco[i]<<" ";
  199. cout<<endl;
  200. cout<<"Liczb rownych zero jest:"<<znajdZera(tab, n)<<endl;
  201. cout<<"Liczb mniejszych od zera jest:"<<znajdMniejZera(tab, n, vecMniejszeOdZera)<<" A sa to nastepujace liczby: ";
  202. for(size_t i=0; i<vecMniejszeOdZera.size(); i++)
  203. cout<<vecMniejszeOdZera[i]<<" ";
  204. cout<<endl;
  205.  
  206.  
  207.  
  208. cout<<"Jesli chcesz zapisac wyniki programu w pliku tekstowym wpisz 'zapisz'."<<endl;
  209. string zapis;
  210. cin.ignore();
  211. getline(cin, zapis);
  212. if(zapis=="zapisz" || zapis=="Zapisz" || zapis=="ZAPISZ")
  213. {
  214. cout<<"Podaj nazwe pliku wraz z formatem np.'plik.txt', w ktorym maja zostac zapisane dane."<<endl;
  215. getline(cin, zapis);
  216. wyeksportuj(zapis,tab,n,sortMalejaco,sortRosnaco,vecMniejszeOdZera);
  217. cout<<"Plik zostal zapisany";
  218. }
  219. delete [] tab;
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement