Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Zlomky
- {
- class Program
- {
- static void Main(string[] args)
- {
- Zlomek zlomek1 = new Zlomek("5/6");
- Zlomek zlomek2 = new Zlomek("10/56");
- Console.WriteLine("První zlomek: ");
- zlomek1.vypisZlomek();
- Console.WriteLine("Druhý zlomek: ");
- zlomek2.vypisZlomek();
- zlomek1.zjednodus();
- zlomek2.zjednodus();
- Console.WriteLine("První zlomek zjednodušený: ");
- zlomek1.vypisZlomek();
- Console.WriteLine("Druhý zlomek zjednodušený: ");
- zlomek2.vypisZlomek();
- Zlomek soucet = zlomek1 + zlomek2;
- Zlomek rozdil = zlomek1 - zlomek2;
- Zlomek soucin = zlomek1 * zlomek2;
- Zlomek podil = zlomek1 / zlomek2;
- Console.WriteLine("Sčítání: " + soucet);
- Console.WriteLine("Odčítání: " + rozdil);
- Console.WriteLine("Násobení: " + soucin);
- Console.WriteLine("Dělení: " + podil);
- }
- }
- }
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace Zlomky
- {
- class Zlomek
- {
- public int citatel;
- public int jmenovatel;
- //konstruktory
- public Zlomek(int citatel)
- {
- this.citatel = citatel;
- this.jmenovatel = 1;
- }
- public Zlomek(int citatel, int jmenovatel)
- {
- this.citatel = citatel;
- this.jmenovatel = jmenovatel;
- }
- public Zlomek(double desetinneCislo)
- {
- this.jmenovatel = 1;
- while (desetinneCislo % 1 != 0)
- {
- desetinneCislo *= 10;
- this.jmenovatel *= 10;
- }
- this.citatel = Convert.ToInt32(desetinneCislo);
- }
- public Zlomek(string text)
- {
- string[] array = text.Split('/');
- this.citatel = int.Parse(array[0]);
- this.jmenovatel = int.Parse(array[1]);
- }
- public void vypisZlomek()
- {
- Console.WriteLine("{0}/{1}", this.citatel, this.jmenovatel);
- }
- public override string ToString()
- {
- return this.citatel.ToString() + "/" + this.jmenovatel.ToString();
- }
- //zlomek na zakladni tvar
- public void zjednodus()
- {
- //nejvetsi spolecny delitel cisel a, b
- int a = this.citatel;
- int b = this.jmenovatel;
- int c;
- while (b != 0)
- {
- c = b;
- b = a % b;
- a = c;
- }
- //citatel a jmenovatel se deli nejvetsim spolecnym delitelem
- this.citatel = this.citatel / a;
- this.jmenovatel = this.jmenovatel / a;
- }
- //nasobeni
- public static Zlomek operator *(Zlomek a, Zlomek b)
- {
- return new Zlomek(a.citatel * b.citatel, a.jmenovatel * b.jmenovatel);
- }
- //deleni
- public static Zlomek operator /(Zlomek a, Zlomek b)
- {
- return new Zlomek(a.citatel * b.jmenovatel, a.jmenovatel * b.citatel);
- }
- //scitani
- public static Zlomek operator +(Zlomek a, Zlomek b)
- {
- //nejmensi spolecny nasobek
- int x = Math.Max(a.jmenovatel, b.jmenovatel);
- while (true)
- {
- if (x % a.jmenovatel == 0 && x % b.jmenovatel == 0)
- break;
- x++;
- }
- //scitaji se nove citatele, jmenovatel = x
- return new Zlomek(a.citatel * (x / a.jmenovatel) + b.citatel * (x / b.jmenovatel), x);
- }
- //odcitani
- public static Zlomek operator -(Zlomek a, Zlomek b)
- {
- //nejmensi spolecny nasobek
- int x = Math.Max(a.jmenovatel, b.jmenovatel);
- while (true)
- {
- if (x % a.jmenovatel == 0 && x % b.jmenovatel == 0)
- break;
- x++;
- }
- //odecitaji se nove citatele, jmenovatel = x
- return new Zlomek(a.citatel * (x / a.jmenovatel) - b.citatel * (x / b.jmenovatel), x);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment