Advertisement
Guest User

assdf

a guest
Jan 28th, 2020
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <math.h>
  4. #include <string>
  5. using namespace std;
  6.  
  7. double sredniaA(double tab[], int n) {
  8. double srednia = 0;
  9. for (int i = 0; i < n; i++) {
  10. srednia += tab[i];
  11. }
  12. double wynik = srednia / n;
  13. return wynik;
  14. }
  15.  
  16. double sredniaG(double tab[], int n) {
  17. double sredniag = 1;
  18.  
  19. for (int i = 0; i < n; i++) {
  20. sredniag *= tab[i];
  21. }
  22. if ((sredniag < 0) && (n % 2 == 0)) {
  23. return INFINITY;
  24. }
  25. else {
  26. double wynik = pow(sredniag, 1.0 / n);
  27. return wynik;
  28. }
  29. }
  30.  
  31. double Max(double tab[], int n) {
  32. double max = tab[0];
  33. for (int i = 1; i < n; i++) {
  34. if (max < tab[i]) {
  35.  
  36. max = tab[i];
  37. }
  38. }
  39. return max;
  40. }
  41.  
  42. double Min(double tab[], int n) {
  43. double min = tab[0];
  44. for (int i = 1; i < n; i++) {
  45. if (min > tab[i]) {
  46.  
  47. min = tab[i];
  48. }
  49. }
  50. return min;
  51. }
  52. int liczbaZer(double tab[], int n) {
  53. int licznik = 0;
  54. for (int i = 0; i < n; i++) {
  55. if (tab[i] == 0) {
  56. licznik++;
  57. }
  58. }
  59. return licznik;
  60. }
  61.  
  62. void sortRos(double tab[], int n) {
  63.  
  64. double temp;
  65. int j;
  66.  
  67.  
  68. for (int i = 1; i < n; i++)
  69. {
  70.  
  71. temp = tab[i];
  72.  
  73.  
  74. j = i - 1;
  75. while (j >= 0 && tab[j] > temp)
  76. {
  77.  
  78. tab[j + 1] = tab[j];
  79.  
  80. j--;
  81. }
  82.  
  83.  
  84. tab[j + 1] = temp;
  85. }
  86. }
  87.  
  88. void sortMal(double tab[], int n) {
  89.  
  90. double temp;
  91. int j;
  92.  
  93. for (int i = 1; i < n; i++)
  94. {
  95. temp = tab[i];
  96. j = i - 1;
  97.  
  98. while (j >= 0 && tab[j] < temp)
  99. {
  100. tab[j + 1] = tab[j];
  101. j = j - 1;
  102. }
  103. tab[j + 1] = temp;
  104. }
  105. }
  106.  
  107. void wyswietl(double tab[], int n) {
  108. for (int i = 0; i < n; i++) {
  109. cout << tab[i] << " ";
  110. }
  111. cout << endl;
  112. }
  113.  
  114.  
  115.  
  116. bool zapytajOZapis() {
  117. cout << "Zapisac do pliku? T/N";
  118. char wybor;
  119. cin >> wybor;
  120. if (wybor == 't' || wybor == 'T') {
  121. return true;
  122. }
  123. else if (wybor == 'n' || wybor == 'N') {
  124. return false;
  125. }
  126. else if (wybor != 'n' || wybor != 'N') {
  127. return INFINITY;
  128. }
  129. }
  130.  
  131. int main() {
  132. int wybor;
  133. int n;
  134. ofstream plik("wyniki.txt");
  135.  
  136. cout << "Podaj ilosc liczb: ";
  137. cin >> n;
  138. if (n == 0) {
  139. cout << "nie wprowadziles zadnej liczby";
  140. return 1;
  141. }
  142. double* tablica = new double[n];
  143. for (int i = 0; i < n; i++) {
  144. cout << i + 1 << ".Liczba: ";
  145. cin >> tablica[i];
  146. }
  147. cout << endl;
  148. cout << "MENU GLOWNE" << endl << endl;
  149. cout << "1. Srednia arytmetyczna" << endl;
  150. cout << "2. Srednia geometryczna" << endl;
  151. cout << "3. Wartosc max" << endl;
  152. cout << "4. Wartosc min" << endl;
  153. cout << "5. Sortowanie rosnaco" << endl;
  154. cout << "6. Sortowanie malejaco" << endl;
  155. cout << "7. Znajdz liczby mniejsze od zera" << endl;
  156. cout << "8. Znajdz liczby rowne 0" << endl;
  157. cout << "9. Wyjdz z programu" << endl;
  158. while (0 < 10) {
  159. cout << "Wybierz dzialanie wciskajac odpowiednia liczbe 1 - 9: ";
  160. cin >> wybor;
  161. cout << endl;
  162.  
  163. switch (wybor) {
  164. case 1:
  165. cout << "Srednia arytmetyczna wynosi: " << sredniaA(tablica, n) << endl;
  166. if (zapytajOZapis())
  167. plik << "Srednia arytmetyczna wynosi: " << sredniaA(tablica, n) << endl;
  168. break;
  169. case 2:
  170. if (sredniaG(tablica, n) == INFINITY)
  171. cout << "Nie mozna policzyc sredniej geometrycznej" << endl;
  172. else
  173. cout << "Srednia geometryczna wynosi: " << sredniaG(tablica, n) << endl;
  174. if (zapytajOZapis()) {
  175. if (sredniaG(tablica, n) == INFINITY)
  176. plik << "Nie mozna policzyc sredniej geometrycznej" << endl;
  177. else
  178. plik << "Srednia geometryczna wynosi: " << sredniaG(tablica, n) << endl;
  179. }
  180. break;
  181. case 3:
  182. cout << "Wartosc maksymalna wynosi: " << Max(tablica, n) << endl;
  183. if (zapytajOZapis())
  184. plik << "Wartosc maksymalna wynosi: " << Max(tablica, n) << endl;
  185. break;
  186. case 4:
  187. cout << "Wartosc minimalna wynosi: " << Min(tablica, n) << endl;
  188. if (zapytajOZapis())
  189. plik << "Wartosc minimalna wynosi: " << Min(tablica, n) << endl;
  190. break;
  191. case 5:
  192. cout << "Liczby posortowane rosnaco: ";
  193. sortRos(tablica, n);
  194. wyswietl(tablica, n);
  195. if (zapytajOZapis()) {
  196. for (int i = 0; i < n; i++) {
  197. plik << tablica[i] << " ";
  198. }
  199. }
  200. break;
  201. case 6:
  202. cout << "Liczby posortowane malejaco: ";
  203. sortMal(tablica, n);
  204. wyswietl(tablica, n);
  205. if (zapytajOZapis()) {
  206. for (int i = 0; i < n; i++) {
  207. plik << tablica[i] << " ";
  208. }
  209. }
  210. break;
  211. case 7:
  212. for (int i = 0; i < n; i++) {
  213. if (tablica[i] <= 0) {
  214. cout << tablica[i] << " ";
  215. }
  216. }
  217. if (zapytajOZapis()) {
  218. for (int i = 0; i < n; i++) {
  219. if (tablica[i] < 0) {
  220. plik << tablica[i] << " ";
  221. }
  222. }
  223. }
  224. break;
  225. case 8:
  226. cout << "Ilosc liczb rownych zero: " << liczbaZer(tablica, n);
  227. if (zapytajOZapis())
  228. plik << "Ilosc liczb rownych zero: " << liczbaZer(tablica, n);
  229. break;
  230. case 9:
  231. exit(0);
  232. break;
  233. default:
  234. cout << "nie wybrano odpowiedniej opcji";
  235. break;
  236. }
  237. }
  238. plik.close();
  239. delete[] tablica;
  240. return 0;
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement