vojta249

Maturita_22 - zlomky

May 5th, 2022
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.29 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Zlomky
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Zlomek zlomek1 = new Zlomek("5/6");
  10.             Zlomek zlomek2 = new Zlomek("10/56");
  11.             Console.WriteLine("První zlomek: ");
  12.             zlomek1.vypisZlomek();
  13.             Console.WriteLine("Druhý zlomek: ");
  14.             zlomek2.vypisZlomek();
  15.             zlomek1.zjednodus();
  16.             zlomek2.zjednodus();
  17.             Console.WriteLine("První zlomek zjednodušený: ");
  18.             zlomek1.vypisZlomek();
  19.             Console.WriteLine("Druhý zlomek zjednodušený: ");
  20.             zlomek2.vypisZlomek();
  21.  
  22.             Zlomek soucet = zlomek1 + zlomek2;
  23.             Zlomek rozdil = zlomek1 - zlomek2;
  24.             Zlomek soucin = zlomek1 * zlomek2;
  25.             Zlomek podil = zlomek1 / zlomek2;
  26.             Console.WriteLine("Sčítání: " + soucet);
  27.             Console.WriteLine("Odčítání: " + rozdil);
  28.             Console.WriteLine("Násobení: " + soucin);
  29.             Console.WriteLine("Dělení: " + podil);
  30.  
  31.         }
  32.     }
  33. }
  34.  
  35.  
  36.  
  37. using System;
  38. using System.Collections.Generic;
  39. using System.Text;
  40.  
  41. namespace Zlomky
  42. {
  43.     class Zlomek
  44.     {
  45.         public int citatel;
  46.         public int jmenovatel;
  47.         //konstruktory
  48.         public Zlomek(int citatel)
  49.         {
  50.             this.citatel = citatel;
  51.             this.jmenovatel = 1;
  52.         }
  53.         public Zlomek(int citatel, int jmenovatel)
  54.         {
  55.             this.citatel = citatel;
  56.             this.jmenovatel = jmenovatel;
  57.         }
  58.         public Zlomek(double desetinneCislo)
  59.         {
  60.             this.jmenovatel = 1;
  61.             while (desetinneCislo % 1 != 0)
  62.             {
  63.                 desetinneCislo *= 10;
  64.                 this.jmenovatel *= 10;
  65.             }
  66.             this.citatel = Convert.ToInt32(desetinneCislo);
  67.         }
  68.         public Zlomek(string text)
  69.         {
  70.             string[] array = text.Split('/');
  71.             this.citatel = int.Parse(array[0]);
  72.             this.jmenovatel = int.Parse(array[1]);
  73.         }
  74.         public void vypisZlomek()
  75.         {
  76.             Console.WriteLine("{0}/{1}", this.citatel, this.jmenovatel);
  77.         }
  78.         public override string ToString()
  79.         {
  80.             return this.citatel.ToString() + "/" + this.jmenovatel.ToString();
  81.         }
  82.         //zlomek na zakladni tvar
  83.         public void zjednodus()
  84.         {
  85.             //nejvetsi spolecny delitel cisel a, b
  86.             int a = this.citatel;
  87.             int b = this.jmenovatel;
  88.             int c;
  89.             while (b != 0)
  90.             {
  91.                 c = b;
  92.                 b = a % b;
  93.                 a = c;
  94.             }
  95.             //citatel a jmenovatel se deli nejvetsim spolecnym delitelem
  96.             this.citatel = this.citatel / a;
  97.             this.jmenovatel = this.jmenovatel / a;
  98.         }
  99.         //nasobeni
  100.         public static Zlomek operator *(Zlomek a, Zlomek b)
  101.         {
  102.             return new Zlomek(a.citatel * b.citatel, a.jmenovatel * b.jmenovatel);
  103.         }
  104.         //deleni
  105.         public static Zlomek operator /(Zlomek a, Zlomek b)
  106.         {
  107.             return new Zlomek(a.citatel * b.jmenovatel, a.jmenovatel * b.citatel);
  108.         }
  109.         //scitani
  110.         public static Zlomek operator +(Zlomek a, Zlomek b)
  111.         {
  112.             //nejmensi spolecny nasobek
  113.             int x = Math.Max(a.jmenovatel, b.jmenovatel);
  114.             while (true)
  115.             {
  116.                 if (x % a.jmenovatel == 0 && x % b.jmenovatel == 0)
  117.                     break;
  118.                 x++;
  119.             }
  120.             //scitaji se nove citatele, jmenovatel = x
  121.             return new Zlomek(a.citatel * (x / a.jmenovatel) + b.citatel * (x / b.jmenovatel), x);
  122.         }
  123.         //odcitani
  124.         public static Zlomek operator -(Zlomek a, Zlomek b)
  125.         {
  126.             //nejmensi spolecny nasobek
  127.             int x = Math.Max(a.jmenovatel, b.jmenovatel);
  128.             while (true)
  129.             {
  130.                 if (x % a.jmenovatel == 0 && x % b.jmenovatel == 0)
  131.                     break;
  132.                 x++;
  133.             }
  134.             //odecitaji se nove citatele, jmenovatel = x
  135.             return new Zlomek(a.citatel * (x / a.jmenovatel) - b.citatel * (x / b.jmenovatel), x);
  136.         }
  137.     }
  138. }
  139.  
Advertisement
Add Comment
Please, Sign In to add comment