Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.80 KB | None | 0 0
  1. using System;
  2. using static System.Console;
  3.  
  4.  
  5. ////////////////////////////////////////////////////////////////////////////////////////////////////
  6. // namespace: zad1
  7. //
  8. // summary: .Zadanie 1 z listy 7. Zawiera zdefiniowaną strukturę Fraction oraz klasę Solution
  9. // prezentującom działanie struktury.
  10. ////////////////////////////////////////////////////////////////////////////////////////////////////
  11.  
  12. namespace zad1
  13. {
  14. ////////////////////////////////////////////////////////////////////////////////////////////////////
  15. /// <summary> Struktura Fraction. Udostępnia typowe działania na ułamkach. </summary>
  16. ///
  17. /// <remarks> Ayane, 2017-11-24. </remarks>
  18. ////////////////////////////////////////////////////////////////////////////////////////////////////
  19.  
  20. struct Fraction
  21. {
  22.  
  23. /// <summary> Licznik ułamka. </summary>
  24. int licznik;
  25.  
  26. /// <summary> Mianownik ułamka. </summary>
  27. int mianownik;
  28.  
  29. ////////////////////////////////////////////////////////////////////////////////////////////////////
  30. /// <summary> Niejawna konwersja zmieniająca podaną liczbę całkowitą na ułamek w postaci (liczba/1) </summary>
  31. ///
  32. /// <remarks> Ayane, 2017-11-24. </remarks>
  33. ///
  34. /// <param name="x"> Liczba całkowita. </param>
  35. ///
  36. /// <returns> Ułamek z podanej liczby całkowitej w postaci (liczba/1) - Fraction. </returns>
  37. ////////////////////////////////////////////////////////////////////////////////////////////////////
  38.  
  39. public static implicit operator Fraction(int x)=> new Fraction(x,1);
  40.  
  41. ////////////////////////////////////////////////////////////////////////////////////////////////////
  42. /// <summary> Jawna konwersja zmieniająca ułamek na liczbę całkowitą. </summary>
  43. ///
  44. /// <remarks> Ayane, 2017-11-24. </remarks>
  45. ///
  46. /// <param name="f"> Ułamek. </param>
  47. ///
  48. /// <returns> Liczba całkowita z podanego ułamka - int. </returns>
  49. ////////////////////////////////////////////////////////////////////////////////////////////////////
  50.  
  51. public static explicit operator int(Fraction f)=>f.licznik/f.mianownik;
  52.  
  53. ////////////////////////////////////////////////////////////////////////////////////////////////////
  54. /// <summary> Konstruktor ułamka. </summary>
  55. ///
  56. /// <remarks> Ayane, 2017-11-24. </remarks>
  57. ///
  58. /// <param name="l"> Licznik ułamka. </param>
  59. /// <param name="m"> Mianownik ułamka. </param>
  60. ////////////////////////////////////////////////////////////////////////////////////////////////////
  61.  
  62. public Fraction(int l, int m)
  63. {
  64. if ((l < 0 && m < 0) || (l > 0 && m < 0))
  65. {
  66. l *= -1;
  67. m *= -1;
  68. }
  69. licznik = l;
  70. mianownik = m;
  71. }
  72.  
  73. ////////////////////////////////////////////////////////////////////////////////////////////////////
  74. /// <summary> Funkcja zwraca skrócony ułamek. </summary>
  75. ///
  76. /// <remarks> Ayane, 2017-11-24. </remarks>
  77. ///
  78. /// <returns> Ułamek. </returns>
  79. ////////////////////////////////////////////////////////////////////////////////////////////////////
  80.  
  81. public Fraction simplifyFraction()
  82. {
  83. Fraction f;
  84. if (licznik > 0)
  85. {
  86. int l = licznik;
  87. int m = mianownik;
  88. int nwd = findNWD(l, m);
  89. if (l % nwd == 0)
  90. {
  91. int newLicznik = l / nwd;
  92. int newMianownik = m / nwd;
  93. f = new Fraction(newLicznik, newMianownik);
  94. }
  95. else
  96. {
  97. f = new Fraction(licznik, mianownik);
  98. }
  99. }
  100. else if(licznik < 0)
  101. {
  102. int l = Math.Abs(licznik);
  103. int m = mianownik;
  104. int nwd = findNWD(l, m);
  105. if (l % nwd == 0)
  106. {
  107. int newLicznik = (l / nwd)*-1;
  108. int newMianownik = m / nwd;
  109. f = new Fraction(newLicznik, newMianownik);
  110. }
  111. else
  112. {
  113. f = new Fraction(licznik, mianownik);
  114. }
  115. }
  116. else
  117. {
  118. f = new Fraction(licznik, mianownik);
  119. }
  120. return f;
  121. }
  122.  
  123. ////////////////////////////////////////////////////////////////////////////////////////////////////
  124. /// <summary> Przeciążony operator dodawania (+) dla dwóch ułamków. </summary>
  125. ///
  126. /// <remarks> Ayane, 2017-11-24. </remarks>
  127. ///
  128. /// <param name="f1"> Pierwszy ułamek. </param>
  129. /// <param name="f2"> Drugi ułamek. </param>
  130. ///
  131. /// <returns> Suma ułamków - Fraction. </returns>
  132. ////////////////////////////////////////////////////////////////////////////////////////////////////
  133.  
  134. public static Fraction operator+(Fraction f1, Fraction f2)
  135. {
  136. int newLicznik = f1.licznik*f2.mianownik + f2.licznik*f1.mianownik;
  137. int newMianownik = f1.mianownik*f2.mianownik;
  138. return new Fraction(newLicznik, newMianownik);
  139. }
  140.  
  141. ////////////////////////////////////////////////////////////////////////////////////////////////////
  142. /// <summary> Przeciążony operator dodawania (+) dla ułamka oraz liczby całkowitej. </summary>
  143. ///
  144. /// <remarks> Ayane, 2017-11-24. </remarks>
  145. ///
  146. /// <param name="f1"> Ułamek. </param>
  147. /// <param name="n"> Liczba całkowita. </param>
  148. ///
  149. /// <returns> Suma - Fraction. </returns>
  150. ////////////////////////////////////////////////////////////////////////////////////////////////////
  151.  
  152. public static Fraction operator+(Fraction f1, int n)
  153. {
  154. Fraction f = n;
  155. return f + f1;
  156. }
  157.  
  158. ////////////////////////////////////////////////////////////////////////////////////////////////////
  159. /// <summary> Przeciążony operator odejmowania (-) dla dwóch ułamków. </summary>
  160. ///
  161. /// <remarks> Ayane, 2017-11-24. </remarks>
  162. ///
  163. /// <param name="f1"> Pierwszy ułamek. </param>
  164. /// <param name="f2"> Drugi ułamek. </param>
  165. ///
  166. /// <returns> Różnica ułamków - Fraction. </returns>
  167. ////////////////////////////////////////////////////////////////////////////////////////////////////
  168.  
  169. public static Fraction operator-(Fraction f1, Fraction f2)
  170. {
  171. int newLicznik = f1.licznik * f2.mianownik - f2.licznik * f1.mianownik;
  172. int newMianownik = f1.mianownik * f2.mianownik;
  173. return new Fraction(newLicznik, newMianownik);
  174. }
  175.  
  176. ////////////////////////////////////////////////////////////////////////////////////////////////////
  177. /// <summary> Przeciążony operator odejmowania (-) dla ułamka oraz liczby całkowitej. </summary>
  178. ///
  179. /// <remarks> Ayane, 2017-11-24. </remarks>
  180. ///
  181. /// <param name="f1"> Ułamek. </param>
  182. /// <param name="n"> Liczba całkowita. </param>
  183. ///
  184. /// <returns> Różnica - Fraction. </returns>
  185. ////////////////////////////////////////////////////////////////////////////////////////////////////
  186.  
  187. public static Fraction operator-(Fraction f1, int n)
  188. {
  189. Fraction f = n;
  190. return f1 - f;
  191. }
  192.  
  193. ////////////////////////////////////////////////////////////////////////////////////////////////////
  194. /// <summary> Przeciążony operator mnożenia (*) dla dwóch ułamków. </summary>
  195. ///
  196. /// <remarks> Ayane, 2017-11-24. </remarks>
  197. ///
  198. /// <param name="f1"> Pierwszy ułamek. </param>
  199. /// <param name="f2"> Drugi ułamek. </param>
  200. ///
  201. /// <returns> Iloczyn ułamków - Fraction. </returns>
  202. ////////////////////////////////////////////////////////////////////////////////////////////////////
  203.  
  204. public static Fraction operator*(Fraction f1, Fraction f2)
  205. {
  206. int newLicznik = f1.licznik * f2.licznik;
  207. int newMianownik = f1.mianownik * f2.mianownik;
  208. return new Fraction(newLicznik, newMianownik);
  209. }
  210.  
  211. ////////////////////////////////////////////////////////////////////////////////////////////////////
  212. /// <summary> Przeciążony operator mnożenia (*) dla ułamka oraz liczby całkowitej. </summary>
  213. ///
  214. /// <remarks> Ayane, 2017-11-24. </remarks>
  215. ///
  216. /// <param name="f1"> Ułamek. </param>
  217. /// <param name="n"> Liczba całkowita. </param>
  218. ///
  219. /// <returns> Iloczyn - Fraction. </returns>
  220. ////////////////////////////////////////////////////////////////////////////////////////////////////
  221.  
  222. public static Fraction operator*(Fraction f1, int n)
  223. {
  224. int newLicznik = f1.licznik * n;
  225. int newMianownik = f1.mianownik;
  226. return new Fraction(newLicznik, newMianownik);
  227. }
  228.  
  229. ////////////////////////////////////////////////////////////////////////////////////////////////////
  230. /// <summary> Przeciążony operator dzielenia (/) dla dwóch ułamków. </summary>
  231. ///
  232. /// <remarks> Ayane, 2017-11-24. </remarks>
  233. ///
  234. /// <param name="f1"> Pierwszy ułamek - dzielna. </param>
  235. /// <param name="f2"> Drugi ułamek - dzielnik. </param>
  236. ///
  237. /// <returns> Iloraz ułamków - Fraction. </returns>
  238. ////////////////////////////////////////////////////////////////////////////////////////////////////
  239.  
  240. public static Fraction operator/(Fraction f1, Fraction f2)
  241. {
  242. int newLicznik = f1.licznik * f2.mianownik;
  243. int newMianownik = f1.mianownik * f2.licznik;
  244. return new Fraction(newLicznik, newMianownik);
  245. }
  246.  
  247. ////////////////////////////////////////////////////////////////////////////////////////////////////
  248. /// <summary> Przeciążony operator dzielenia (/) dla ułamka oraz liczby całkowitej. </summary>
  249. ///
  250. /// <remarks> Ayane, 2017-11-24. </remarks>
  251. ///
  252. /// <param name="f1"> Ułamek - dzielna. </param>
  253. /// <param name="n"> Liczba całkowita - dzielnik. </param>
  254. ///
  255. /// <returns> Iloraz - Fraction. </returns>
  256. ////////////////////////////////////////////////////////////////////////////////////////////////////
  257.  
  258. public static Fraction operator/(Fraction f1, int n)
  259. {
  260. int newLicznik = f1.licznik;
  261. int newMianownik = f1.mianownik * n;
  262. return new Fraction(newLicznik, newMianownik);
  263. }
  264.  
  265. ////////////////////////////////////////////////////////////////////////////////////////////////////
  266. /// <summary> Operator podnoszący ułamek do podanej potęgi. </summary>
  267. ///
  268. /// <remarks> Ayane, 2017-11-24. </remarks>
  269. ///
  270. /// <param name="f"> Ułamek. </param>
  271. /// <param name="pow"> Potęga w postaci liczby całkowitej. </param>
  272. ///
  273. /// <returns> Ułamek podniesiony do potęgi - Fraction. </returns>
  274. ////////////////////////////////////////////////////////////////////////////////////////////////////
  275.  
  276. public static Fraction operator^(Fraction f, int pow)
  277. {
  278. if (pow > 0)
  279. {
  280. int l = f.licznik;
  281. int m = f.mianownik;
  282. f.licznik = (int)Math.Pow(l,pow);
  283. f.mianownik = (int)Math.Pow(m, pow);
  284. }
  285. else if( pow < 0)
  286. {
  287. pow *= -1;
  288. int l = f.licznik;
  289. int m = f.mianownik;
  290. f.licznik = (int)Math.Pow(m, pow);
  291. f.mianownik = (int)Math.Pow(l, pow);
  292. }
  293. else
  294. {
  295. f.licznik = 1;
  296. f.mianownik = 1;
  297. }
  298. return f;
  299. }
  300.  
  301. ////////////////////////////////////////////////////////////////////////////////////////////////////
  302. /// <summary> Opreator porównania 'większy niż' (>) dwóch ułamków - F1 > F2. </summary>
  303. ///
  304. /// <remarks> Ayane, 2017-11-24. </remarks>
  305. ///
  306. /// <param name="f1"> Pierwszy ułamek. </param>
  307. /// <param name="f2"> Drugi ułamek. </param>
  308. ///
  309. /// <returns> Wartość bool wynikająca z porównania ułamków - bool. </returns>
  310. ////////////////////////////////////////////////////////////////////////////////////////////////////
  311.  
  312. public static bool operator>(Fraction f1, Fraction f2) {
  313. int licznik1 = f1.licznik * f2.mianownik;
  314. int licznik2 = f2.licznik * f1.mianownik;
  315. return licznik1 > licznik2;
  316. }
  317.  
  318. ////////////////////////////////////////////////////////////////////////////////////////////////////
  319. /// <summary> Opreator porównania 'większy niż' (<) dwóch ułamków - F1 < F2. </summary>
  320. ///
  321. /// <remarks> Ayane, 2017-11-24. </remarks>
  322. ///
  323. /// <param name="f1"> Pierwszy ułamek. </param>
  324. /// <param name="f2"> Drugi ułamek. </param>
  325. ///
  326. /// <returns> Wartość bool wynikająca z porównania ułamków - bool. </returns>
  327. ////////////////////////////////////////////////////////////////////////////////////////////////////
  328.  
  329. public static bool operator<(Fraction f1, Fraction f2) {
  330. int licznik1 = f1.licznik * f2.mianownik;
  331. int licznik2 = f2.licznik * f1.mianownik;
  332. return licznik1 < licznik2;
  333. }
  334.  
  335. ////////////////////////////////////////////////////////////////////////////////////////////////////
  336. /// <summary> Opreator porównania 'większy niż lub równy' (>=) dwóch ułamków - F1 >= F2. </summary>
  337. ///
  338. /// <remarks> Ayane, 2017-11-24. </remarks>
  339. ///
  340. /// <param name="f1"> Pierwszy ułamek. </param>
  341. /// <param name="f2"> Drugi ułamek. </param>
  342. ///
  343. /// <returns> Wartość bool wynikająca z porównania ułamków - bool. </returns>
  344. ////////////////////////////////////////////////////////////////////////////////////////////////////
  345.  
  346. public static bool operator>=(Fraction f1, Fraction f2) {
  347. int licznik1 = f1.licznik * f2.mianownik;
  348. int licznik2 = f2.licznik * f1.mianownik;
  349. return licznik1 >= licznik2;
  350. }
  351.  
  352. ////////////////////////////////////////////////////////////////////////////////////////////////////
  353. /// <summary> Opreator porównania 'większy niż lub równy' (<=) dwóch ułamków - F1 <= F2. </summary>
  354. ///
  355. /// <remarks> Ayane, 2017-11-24. </remarks>
  356. ///
  357. /// <param name="f1"> Pierwszy ułamek. </param>
  358. /// <param name="f2"> Drugi ułamek. </param>
  359. ///
  360. /// <returns> Wartość bool wynikająca z porównania ułamków - bool. </returns>
  361. ////////////////////////////////////////////////////////////////////////////////////////////////////
  362.  
  363. public static bool operator <=(Fraction f1, Fraction f2) {
  364. int licznik1 = f1.licznik * f2.mianownik;
  365. int licznik2 = f2.licznik * f1.mianownik;
  366. return licznik1 <= licznik2;
  367. }
  368.  
  369. ////////////////////////////////////////////////////////////////////////////////////////////////////
  370. /// <summary> Operator sprawdzający równość dwóch ułamków - F1 == F2. </summary>
  371. ///
  372. /// <remarks> Ayane, 2017-11-24. </remarks>
  373. ///
  374. /// <param name="f1"> Pierwszy ułamek. </param>
  375. /// <param name="f2"> Drugi ułamek. </param>
  376. ///
  377. /// <returns> Wartość bool wynikająca z porównania ułamków - bool. </returns>
  378. ////////////////////////////////////////////////////////////////////////////////////////////////////
  379.  
  380. public static bool operator==(Fraction f1, Fraction f2) {
  381. bool answer = false;
  382. if (f1.licznik == f2.licznik && f1.mianownik == f2.mianownik)
  383. {
  384. answer = true;
  385. }
  386. return answer;
  387. }
  388.  
  389. ////////////////////////////////////////////////////////////////////////////////////////////////////
  390. /// <summary> Operator sprawdzający nierówność dwóch ułamków - F1 != F2. </summary>
  391. ///
  392. /// <remarks> Ayane, 2017-11-24. </remarks>
  393. ///
  394. /// <param name="f1"> Pierwszy ułamek. </param>
  395. /// <param name="f2"> Drugi ułamek. </param>
  396. ///
  397. /// <returns> Wartość bool wynikająca z porównania ułamków - bool. </returns>
  398. ////////////////////////////////////////////////////////////////////////////////////////////////////
  399.  
  400. public static bool operator!=(Fraction f1, Fraction f2) {
  401. bool answer = false;
  402. if (f1.licznik != f2.licznik || f1.mianownik != f2.mianownik)
  403. {
  404. answer = true;
  405. }
  406. return answer;
  407. }
  408.  
  409. ////////////////////////////////////////////////////////////////////////////////////////////////////
  410. /// <summary> Funkcja szukająca Największy Wspólny Dzielnik dwóch licz całkowitych. </summary>
  411. ///
  412. /// <remarks> Ayane, 2017-11-24. </remarks>
  413. ///
  414. /// <param name="l"> Liczba całkowita. </param>
  415. /// <param name="m"> Liczba całkowita. </param>
  416. ///
  417. /// <returns> NWD - int. </returns>
  418. ////////////////////////////////////////////////////////////////////////////////////////////////////
  419.  
  420. public int findNWD(int l, int m)
  421. {
  422. while (l != m)
  423. {
  424. if (l > m)
  425. {
  426. l -= m;
  427. }
  428. else
  429. {
  430. m -= l;
  431. }
  432. }
  433. return l;
  434. }
  435.  
  436. ////////////////////////////////////////////////////////////////////////////////////////////////////
  437. /// <summary>
  438. /// Funkcja tworząca tekst o ułamku.
  439. /// 1) Jeżeli licznik > mianownika - pokaże ułamek w postaci liczby
  440. /// całkowitej z ułamkiem właściwym.
  441. /// 2) W przeciwnym przypadku pokaże go jako ułamek niewłaściwy.
  442. /// </summary>
  443. ///
  444. /// <remarks> Ayane, 2017-11-24. </remarks>
  445. ///
  446. /// <returns> Napis - string. </returns>
  447. ////////////////////////////////////////////////////////////////////////////////////////////////////
  448.  
  449. public string printFraction()
  450. {
  451. string fraction;
  452. if((Math.Abs(licznik) > Math.Abs(mianownik)) || (licznik == 0))
  453. {
  454. int stalaPrzed = (int)(licznik / mianownik);
  455. int l = licznik - mianownik * stalaPrzed;
  456. if(stalaPrzed < 0 && l < 0)
  457. {
  458. l *= -1;
  459. }
  460. fraction = $"{stalaPrzed} ( {l} / {FracMianownik} )";
  461. if (l%mianownik == 0)
  462. {
  463. fraction = $"{stalaPrzed}";
  464. }
  465. if (licznik == 0)
  466. {
  467. fraction = "0";
  468. }
  469. }
  470. else
  471. {
  472. if (Math.Abs(licznik) == Math.Abs(mianownik))
  473. {
  474. if (licznik > 0)
  475. {
  476. fraction = "1";
  477. }
  478. else
  479. {
  480. fraction = "-1";
  481. }
  482. }
  483. else {
  484. fraction = $"{FracLicznik} / {FracMianownik}";
  485. }
  486. }
  487.  
  488. return fraction;
  489. }
  490.  
  491. ////////////////////////////////////////////////////////////////////////////////////////////////////
  492. /// <summary> Napis ułamka w postaci niewłaściwej. </summary>
  493. ///
  494. /// <remarks> Ayane, 2017-11-24. </remarks>
  495. ///
  496. /// <returns> Napis - string. </returns>
  497. ////////////////////////////////////////////////////////////////////////////////////////////////////
  498.  
  499. public string simplyPrint()
  500. {
  501. string fraction = $"{FracLicznik} / {FracMianownik}";
  502. return fraction;
  503. }
  504.  
  505. ////////////////////////////////////////////////////////////////////////////////////////////////////
  506. /// <summary> Getter mianownika. </summary>
  507. ///
  508. /// <value> Mianownik ułamka. </value>
  509. ////////////////////////////////////////////////////////////////////////////////////////////////////
  510.  
  511. public int FracMianownik => mianownik;
  512.  
  513. ////////////////////////////////////////////////////////////////////////////////////////////////////
  514. /// <summary> Getter licznika. </summary>
  515. ///
  516. /// <value> Licznik ułamka. </value>
  517. ////////////////////////////////////////////////////////////////////////////////////////////////////
  518.  
  519. public int FracLicznik => licznik;
  520. }
  521.  
  522. ////////////////////////////////////////////////////////////////////////////////////////////////////
  523. /// <summary> Klasa Solution przedstawiająca użytkownikowi działanie struktury Fraction. </summary>
  524. ///
  525. /// <remarks> Ayane, 2017-11-24. </remarks>
  526. ////////////////////////////////////////////////////////////////////////////////////////////////////
  527.  
  528. class Solution
  529. {
  530. ////////////////////////////////////////////////////////////////////////////////////////////////////
  531. /// <summary> Metoda w klasie Solution. Główny punkt wejścia dla aplikacji. </summary>
  532. ///
  533. /// <remarks> Ayane, 2017-11-24. </remarks>
  534. ///
  535. /// <param name="args"> Tablica ciągów argumentów z wiersza poleceń. </param>
  536. ////////////////////////////////////////////////////////////////////////////////////////////////////
  537.  
  538. static void Main(string[] args)
  539. {
  540. int l1, l2, m1, m2;
  541. Fraction f1, f2, f3, f4, f5, f6;
  542. int n;
  543. string input;
  544.  
  545. WriteLine();
  546. WriteLine("TWORZENIE PIERWSZEGO UŁAMKA - F1");
  547. WriteLine("Wpisz licznik:");
  548. input = ReadLine();
  549. if(input == "")
  550. {
  551. l1 = 1;
  552. }
  553. else
  554. {
  555. l1 = Int32.Parse(input);
  556. }
  557. WriteLine("Wpisz mianownik:");
  558. input = ReadLine();
  559. if (input == "")
  560. {
  561. m1 = 1;
  562. }
  563. else
  564. {
  565. m1 = Int32.Parse(input);
  566. }
  567.  
  568. WriteLine("TWORZENIE DRUGIEGO UŁAMKA - F2");
  569. WriteLine("Wpisz licznik:");
  570. input = ReadLine();
  571. if (input == "")
  572. {
  573. l2 = 1;
  574. }
  575. else
  576. {
  577. l2 = Int32.Parse(input);
  578. }
  579. WriteLine("Wpisz mianownik:");
  580. input = ReadLine();
  581. if (input == "")
  582. {
  583. m2 = 1;
  584. }
  585. else
  586. {
  587. m2 = Int32.Parse(input);
  588. }
  589.  
  590. WriteLine("LICZBA CAŁKOWITA DO TESTÓW");
  591. WriteLine("Wpisz liczbę całkowitą:");
  592. input = ReadLine();
  593. if (input == "")
  594. {
  595. n = 1;
  596. }
  597. else
  598. {
  599. n = Int32.Parse(input);
  600. }
  601.  
  602. Write($"{"Skrócone F1:",30}");
  603. f1 = new Fraction(l1, m1);
  604. f6 = f1.simplifyFraction();
  605. string F1 = f1.simplyPrint();
  606. WriteLine($"{f6.simplyPrint(),9}");
  607.  
  608. Write($"{"Skrócone F2:",30}");
  609. f2 = new Fraction(l2, m2);
  610. f6 = f2.simplifyFraction();
  611. string F2 = f2.simplyPrint();
  612. WriteLine($"{f6.simplyPrint(),9}");
  613.  
  614. WriteLine($"{$"Liczba n = {n}",39}");
  615. WriteLine();
  616.  
  617. WriteLine("PRZYKŁADY DZIAŁANIA OPERATORÓW");
  618. WriteLine();
  619.  
  620. f3 = f1 + f2;
  621. Write($"{$"{F1} + {F2} = {f3.printFraction()}", 10}");
  622.  
  623. f3 = f1 + n;
  624. WriteLine($"{$"{F1} + {n} = {f3.simplyPrint()}",40}");
  625.  
  626. f3 = f1 - f2;
  627. Write($"{$"{F1} - {F2} = {f3.printFraction()}",10}");
  628.  
  629. f3 = f1 - n;
  630. WriteLine($"{$"{F1} - {n} = {f3.simplyPrint()}",40}");
  631.  
  632. f3 = f1 * f2;
  633. Write($"{$"{F1} * {F2} = {f3.printFraction()}",10}");
  634.  
  635. f3 = f1 * n;
  636. WriteLine($"{$"{F1} * {n} = {f3.simplyPrint()}",40}");
  637.  
  638. f3 = f1 / f2;
  639. Write($"{$"{F1} / {F2} = {f3.printFraction()}",10}");
  640.  
  641. f3 = f1 / n;
  642. WriteLine($"{$"{F1} / {n} = {f3.simplyPrint()}",40}");
  643.  
  644. f3 = f1 ^ n;
  645. Write($"{$"{F1} ^ {n} = {f3.simplyPrint()}",10}");
  646.  
  647. f3 = f2 ^ n;
  648. WriteLine($"{$"{F2} ^ {n} = {f3.simplyPrint()}",40}");
  649.  
  650. WriteLine();
  651. WriteLine("OPERATORY RELACJI");
  652. f4 = new Fraction(l1,m1);
  653. string F4 = f4.simplyPrint();
  654. WriteLine($"F4: {F4}");
  655. WriteLine();
  656.  
  657. Write($"{$"{F1} > {F2} ? {f1 > f2}",10}");
  658. WriteLine($"{$"{F2} < {F1} ? {f2 < f1}",40}");
  659. Write($"{$"{F1} >= {F2} ? {f1 >= f2}",10}");
  660. WriteLine($"{$"{F1} <= {F4} ? {f1 <= 42}",40}");
  661. Write($"{$"{F1} == {F2} ? {f1 == f2}",10}");
  662. WriteLine($"{$"{F1} == {F4} ? {f1 == f4}",40}");
  663. Write($"{$"{F1} != {F2} ? {f1 != f2}",10}");
  664. WriteLine($"{$"{F1} != {F4} ? {f1 != f4}",40}");
  665.  
  666. WriteLine();
  667. WriteLine("INNE PRZYŁADY");
  668.  
  669. f5 = n;
  670. WriteLine($"Ułamek z liczby {n} => {f5.simplyPrint()}");
  671. int i = (int)f1;
  672. WriteLine($"Liczba z ułamka {F1} => {i}");
  673. i = (int)f2;
  674. WriteLine($"Liczba z ułamka {F2} => {i}");
  675. WriteLine();
  676. WriteLine("KONIEC");
  677. }
  678. }
  679. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement