Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.70 KB | None | 0 0
  1. //functions_h --
  2.  
  3. #ifndef FUNCTIONS_REAL_H
  4. #define FUNCTIONS_REAL_H
  5.  
  6. //--
  7. #include <iostream>
  8. #include <math.h>
  9. #include <string>
  10.  
  11. //--
  12. void f_addiction()
  13. {
  14. double variable_1, variable_2;
  15.  
  16. std::cout << "Podaj pierwsza zmienna: \n";
  17. std::cin >> variable_1;
  18. std::cout << "Podaj druga zmienna: \n";
  19. std::cin >> variable_2;
  20.  
  21. if (true)
  22. {
  23. if (std::cin.fail())
  24. {
  25. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  26. std::cin.clear();
  27. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  28. }
  29. else
  30. std::cout << variable_1 << " + " << variable_2 << " = " << variable_1 + variable_2 << "\n";
  31. }
  32. }
  33. //--
  34. void f_subtraction()
  35. {
  36. double variable_1, variable_2;
  37.  
  38. std::cout << "Podaj pierwsza zmienna: \n";
  39. std::cin >> variable_1;
  40. std::cout << "Podaj druga zmienna: \n";
  41. std::cin >> variable_2;
  42.  
  43. if (true)
  44. {
  45. if (std::cin.fail())
  46. {
  47. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  48. std::cin.clear();
  49. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  50. }
  51. else
  52. std::cout << variable_1 << " - " << variable_2 << " = " << variable_1 - variable_2 << "\n";
  53. }
  54. }
  55. //--
  56. void f_multiplication()
  57. {
  58. double variable_1, variable_2;
  59.  
  60. std::cout << "Podaj pierwsza zmienna: \n";
  61. std::cin >> variable_1;
  62. std::cout << "Podaj druga zmienna: \n";
  63. std::cin >> variable_2;
  64.  
  65. if (true)
  66. {
  67. if (std::cin.fail())
  68. {
  69. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  70. std::cin.clear();
  71. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  72. }
  73. else
  74. std::cout << variable_1 << " * " << variable_2 << " = " << variable_1 * variable_2 << "\n";
  75. }
  76.  
  77. }
  78. //--
  79. void f_divide()
  80. {
  81. double variable_1, variable_2;
  82.  
  83. std::cout << "Podaj pierwsza zmienna: \n";
  84. std::cin >> variable_1;
  85. std::cout << "Podaj druga zmienna: \n";
  86. std::cin >> variable_2;
  87.  
  88. if (true)
  89. {
  90. if (std::cin.fail())
  91. {
  92. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  93. std::cin.clear();
  94. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  95. }
  96. else
  97. if (variable_2 != 0)
  98. std::cout << variable_1 << " : " << variable_2 << " = " << variable_1 / variable_2 << "\n";
  99. else
  100. std::cout << "\nNie mozna dzielic przez 0. \n";
  101. }
  102. }
  103. //--
  104. void f_roots()
  105. {
  106. double variable, index;
  107.  
  108. std::cout << "Podaj zmienna: \n";
  109. std::cin >> variable;
  110. std::cout << "Podaj stopien pierwiastka: \n";
  111. std::cin >> index;
  112.  
  113. if (true)
  114. {
  115. if (std::cin.fail())
  116. {
  117. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  118. std::cin.clear();
  119. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  120. }
  121. else
  122. std::cout << "Pierwiatek " << index << " stopnia z " << variable <<" wynosi: " << pow(variable, 1/index) << "\n";
  123. }
  124. }
  125. //--
  126. void f_exponentiation()
  127. {
  128. double variable, index;
  129.  
  130. std::cout << "Podaj zmienna: \n";
  131. std::cin >> variable;
  132. std::cout << "Podaj wykladnik: \n";
  133. std::cin >> index;
  134.  
  135. if (true)
  136. {
  137. if (std::cin.fail())
  138. {
  139. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  140. std::cin.clear();
  141. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  142. }
  143. else
  144. std::cout << variable << " podniesiona do potegi: " << index << " = " << pow(variable,index) << "\n";
  145. }
  146. }
  147. //--
  148. void f_log()
  149. {
  150. double variable, index;
  151.  
  152. std::cout << "Podaj zmienna: \n";
  153. std::cin >> variable;
  154. std::cout << "Podaj wykladnik: \n";
  155. std::cin >> index;
  156.  
  157. if (true)
  158. {
  159. if (std::cin.fail())
  160. {
  161. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  162. std::cin.clear();
  163. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  164. }
  165. else
  166. if (variable >= 0 && index >= 1)
  167. std::cout << "Logarytm z " << variable << " przy podstawie " << index << " wynosi: " << log(variable) / log(index);
  168. else
  169. std::cout << "\nNieprawidlowe dane. \n";
  170. }
  171. }
  172. //--
  173. void f_modulo()
  174. {
  175. long long variable_1, variable_2;
  176.  
  177. std::cout << "Podaj pierwsza zmienna: \n";
  178. std::cin >> variable_1;
  179. std::cout << "Podaj druga zmienna: \n";
  180. std::cin >> variable_2;
  181.  
  182. if (true)
  183. {
  184. if (std::cin.fail())
  185. {
  186. std::cout << "\nBlad, podano znak/ciag znakow lub liczbe zmiennoprzecinkowa. \n";
  187. std::cin.clear();
  188. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  189. }
  190. else
  191. if(variable_2 == 0)
  192. std::cout << "\nNie mozna dzielic przez 0. \n";
  193. else if(variable_1 == 0)
  194. std::cout << variable_1 << " % " << variable_2 << " = " << variable_2 << "\n";
  195. else
  196. std::cout << variable_1 << " % " << variable_2 << " = " << variable_1 % variable_2 << "\n";
  197. }
  198. }
  199. //--
  200. void f_strong()
  201. {
  202. double variable;
  203. long long result = 1;
  204.  
  205. std::cout << "Podaj zmienna: \n";
  206. std::cin >> variable;
  207.  
  208. if (true)
  209. {
  210. if (std::cin.fail())
  211. {
  212. std::cout << "Blad, podano znak/ciag znakow. \n";
  213. std::cin.clear();
  214. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  215. }
  216. else
  217. {
  218. if (variable > 0 && (variable - int(variable) == 0)) {
  219. for (int i = 1; i <= variable; i++)
  220. result *= i;
  221.  
  222. std::cout << "Silnia z liczby " << variable << " wynosi: " << result << "\n";
  223. }
  224. else if (variable == 0)
  225. std::cout << "Silnia z liczby 0 wynosi 1.\n";
  226. else
  227. std::cout << "Blad. Nieprawidlowa zmienna.\n";
  228. }
  229. }
  230. }
  231. //--
  232. void f_sin()
  233. {
  234. double variable;
  235.  
  236. std::cout << "Podaj wartosc w radianach: ";
  237. std::cin >> variable;
  238.  
  239. if (true)
  240. {
  241. if (std::cin.fail())
  242. {
  243. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  244. std::cin.clear();
  245. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  246. }
  247. else
  248. std::cout << "Sinus z " << variable << " wynosi " << sin(variable) << "\n";
  249. }
  250. }
  251. //--
  252. void f_cos()
  253. {
  254. double variable;
  255.  
  256. std::cout << "Podaj wartosc w radianach: ";
  257. std::cin >> variable;
  258.  
  259. if (true)
  260. {
  261. if (std::cin.fail())
  262. {
  263. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  264. std::cin.clear();
  265. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  266. }
  267. else
  268. std::cout << "Cosinus z " << variable << " wynosi " << cos(variable) << "\n";
  269. }
  270. }
  271. //--
  272. void f_tan()
  273. {
  274. long variable;
  275.  
  276. std::cout << "Podaj wartosc w radianach: ";
  277. std::cin >> variable;
  278.  
  279. if (true)
  280. {
  281. if (std::cin.fail())
  282. {
  283. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  284. std::cin.clear();
  285. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  286. }
  287. else
  288. {
  289. long test_1 = variable % 90;
  290. long test_2 = variable / 90;
  291.  
  292. if (test_1 == 0 && (test_2 % 2) != 0)
  293. std::cout << "Brak tangensa dla tej wartosci (asymptota pionowa).\n";
  294. else
  295. std::cout << "Tangens z " << variable << " wynosi " << tan(variable) << "\n";
  296. }
  297. }
  298. }
  299. //--
  300. void f_ctan()
  301. {
  302. long variable;
  303.  
  304. std::cout << "Podaj wartosc w radianach: ";
  305. std::cin >> variable;
  306.  
  307. if (true)
  308. {
  309. if (std::cin.fail())
  310. {
  311. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  312. std::cin.clear();
  313. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  314. }
  315. else
  316. {
  317. long test_1 = variable % 90;
  318. long test_2 = variable / 90;
  319.  
  320. if (test_1 == 0 && (test_2 % 2) == 0)
  321. std::cout << "Brak cotangensa dla tej wartosci (asymptota pionowa).\n";
  322. else
  323. std::cout << "Cotangens z " << variable << " wynosi " << 1/tan(variable) << "\n";
  324. }
  325. }
  326. }
  327. //--
  328. void f_arc_sin()
  329. {
  330. double variable;
  331.  
  332. std::cout << "Podaj wartosc: ";
  333. std::cin >> variable;
  334.  
  335. if (true)
  336. {
  337. if (std::cin.fail())
  338. {
  339. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  340. std::cin.clear();
  341. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  342. }
  343. else
  344. if(variable >= -1 && variable <= 1)
  345. std::cout << "Arc sinus z " << variable << " wynosi " << asin(variable) << " rad " << "\n";
  346. else
  347. std::cout << "Brak Arc Sinusa dla tej wartosci.\n";
  348. }
  349. }
  350. //--
  351. void f_arc_cos()
  352. {
  353. double variable;
  354.  
  355. std::cout << "Podaj wartosc: ";
  356. std::cin >> variable;
  357.  
  358. if (true)
  359. {
  360. if (std::cin.fail())
  361. {
  362. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  363. std::cin.clear();
  364. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  365. }
  366. else
  367. if (variable >= -1 && variable <= 1)
  368. std::cout << "Arc cosinus z " << variable << " wynosi " << acos(variable) << " rad " << "\n";
  369. else
  370. std::cout << "Brak Arc Cosinusa dla tej wartosci.\n";
  371. }
  372. }
  373. //--
  374. void f_arc_tan()
  375. {
  376. double variable;
  377.  
  378. std::cout << "Podaj wartosc: ";
  379. std::cin >> variable;
  380.  
  381. if (true)
  382. {
  383. if (std::cin.fail())
  384. {
  385. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  386. std::cin.clear();
  387. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  388. }
  389. else
  390. std::cout << "Arc Tangens z " << variable << " wynosi " << atan(variable) << " rad " << "\n";
  391. }
  392. }
  393. //--
  394. void f_trigonometric()
  395. {
  396. int option;
  397.  
  398. do {
  399.  
  400. std::cout << "\nFunkcje trygonometryczne: \n\n";
  401. std::cout << "1. Sinus. \n";
  402. std::cout << "2. Cosinus. \n";
  403. std::cout << "3. Tangens. \n";
  404. std::cout << "4. Cotangens. \n";
  405. std::cout << "5. Arc Sinus. \n";
  406. std::cout << "6. Arc Cosinus. \n";
  407. std::cout << "7. Arc Tangens. \n";
  408. std::cout << "\n8. Powrot do Menu Liczb Rzeczywistych. \n\n";
  409.  
  410. std::cin >> option;
  411.  
  412. switch (option)
  413. {
  414. case 1:
  415. f_sin();
  416. break;
  417. case 2:
  418. f_cos();
  419. break;
  420. case 3:
  421. f_tan();
  422. break;
  423. case 4:
  424. f_ctan();
  425. break;
  426. case 5:
  427. f_arc_sin();
  428. break;
  429. case 6:
  430. f_arc_cos();
  431. break;
  432. case 7:
  433. f_arc_tan();
  434. break;
  435. case 8:
  436. break;
  437. default:
  438. std::cout << "\n Nie ma takiej opcji. \n\n";
  439. break;
  440. }
  441. } while (option != 8);
  442.  
  443. }
  444. //--
  445. int bin_to_dec(std::string n)
  446. {
  447. std::string num = n;
  448. int dec_value = 0;
  449.  
  450. int base = 1;
  451.  
  452. int len = num.length();
  453. for (int i = len - 1; i >= 0; i--) {
  454. if (num[i] == '1')
  455. dec_value += base;
  456. base = base * 2;
  457. }
  458.  
  459. return dec_value;
  460. }
  461. //--
  462. void s_bin_to_dec()
  463. {
  464. std::string variable;
  465.  
  466. std::cout << "Podaj liczbe w systemie binarnym: \n";
  467. std::cin >> variable;
  468.  
  469. int len = variable.length();
  470.  
  471. for (int i = len - 1; i >= 0; i--)
  472. if (variable[i] != '1' && variable[i] != '0')
  473. std::cout << "Nieprawidlowa liczba. \n";
  474. else
  475. std::cout << "Liczba binarna " << variable << " w systemie dziesetnym to: " << bin_to_dec(variable) << "\n";
  476.  
  477. }
  478. //--
  479. void dec_to_bin(int n)
  480. {
  481. int binaryNum[32];
  482.  
  483. // counter for binary array
  484. int i = 0;
  485. while (n > 0) {
  486.  
  487. // storing remainder in binary array
  488. binaryNum[i] = n % 2;
  489. n = n / 2;
  490. i++;
  491. }
  492.  
  493. // printing binary array in reverse order
  494. for (int j = i - 1; j >= 0; j--)
  495. std::cout << binaryNum[j];
  496. }
  497. //--
  498. void s_dec_to_bin()
  499. {
  500. double variable;
  501.  
  502. std::cout << "Podaj liczbe w systemie dziesetnym: \n";
  503. std::cin >> variable;
  504.  
  505. if (true)
  506. {
  507. if (std::cin.fail())
  508. {
  509. std::cout << "\nBlad, podano znak/ciag znakow. \n";
  510. std::cin.clear();
  511. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  512. }
  513. else
  514. {
  515. if (variable - int(variable) == 0)
  516. {
  517. std::cout << "Liczba dziesetna " << variable << " w systemie binarnym to: ";
  518. dec_to_bin(variable);
  519. std::cout << "\n";
  520. }
  521. else
  522. std::cout << "Blad. Liczba zmiennoprzecinkowa.\n";
  523.  
  524. }
  525. }
  526.  
  527. }
  528. //--
  529. void f_conversion()
  530. {
  531. int option;
  532.  
  533. do {
  534.  
  535. std::cout << "\nPrzeliczanie miedzy systemami liczbowymi: \n\n";
  536. std::cout << "1. Binarny na dziesietny. \n";
  537. std::cout << "2. Dziesietny na binary. \n";
  538.  
  539. std::cout << "\n14. Powrot do Menu Glownego. \n\n";
  540.  
  541. std::cin >> option;
  542.  
  543. switch (option)
  544. {
  545. case 1:
  546. s_bin_to_dec();
  547. break;
  548. case 2:
  549. s_dec_to_bin();
  550. break;
  551.  
  552. case 14:
  553.  
  554. break;
  555. default:
  556. std::cout << "\n Nie ma takiej opcji. \n\n";
  557. break;
  558. }
  559. } while (option != 14);
  560.  
  561.  
  562.  
  563. }
  564. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement