Материал: laba6

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

{

get { return f; } set { f = value; }

}

public int S

{

get { return s; } set { s = value; }

}

public int P

{

get { return p; } set { p = value; }

}

public EngMoney(int ff, int ss, int pp)

{

f = ff; s = ss; p = pp;

}

public EngMoney Sum(EngMoney secondsum)

{

int result_f = f + secondsum.F; int result_s = s + secondsum.S; int result_p = p + secondsum.P; while (result_p >= 12)

{

result_p -= 12; result_s++;

}

while (result_s >= 20)

{

result_s -= 20; result_f++;

}

return new EngMoney(result_f, result_s, result_p);

}

public EngMoney Vch(EngMoney secondsum)

{

int result_f = f - secondsum.F; int result_s = s - secondsum.S; int result_p = p - secondsum.P; while (result_p < 0)

{

result_p += 12; result_s--;

}

while (result_s < 0)

{

result_s += 20; result_f--;

}

return new EngMoney(result_f, result_s, result_p);

}

public EngMoney Umn(EngMoney secondsum)

{

int psum1 = f * 240 + s * 12 + p;

int psum2 = secondsum.F * 240 + secondsum.S * 12 + secondsum.P; int result_p = psum1 * psum2;

int result_s = 0; int result_f = 0;

{

while (result_p >= 12)

{

result_p -= 12; result_s++;

}

while (result_s >= 20)

{

result_s -= 20; result_f++;

}

}

return new EngMoney(result_f, result_s, result_p);

}

public EngMoney Del(EngMoney secondsum)

{

int psum1 = s * 12 + f * 240 + p;

int psum2 = secondsum.F * 240 + secondsum.S * 12 + secondsum.P; int result_p = psum1 / psum2;

int result_s = 0; int result_f = 0;

while (result_p >= 12)

{

result_p -= 12; result_s++;

}

while (result_s >= 20)

{

result_s -= 20; result_f++;

}

return new EngMoney(result_f, result_s, result_p);

}

public EngMoney Srav(EngMoney secondsum)

{

int result_com = 0;

int psum1 = f * 240 + s * 12 + p;

int psum2 = secondsum.F * 240 + secondsum.S * 12 + secondsum.P; if (psum1 > psum2)

result_com = 1; else

result_com = 2;

return new EngMoney(result_com, 0, 0);

}

public override string ToString()

{

return $"{f} {s} {p}";

}

}

}

Рисунок 1 – скриншот работы программы

Программа работает корректно.

Задание 2

Создать класс Fraction для работы с дробными числами. Число должно быть представлено двумя полями: целая часть – длинное целое со знаком,

дробная часть – беззнаковое короткое целое. Реализовать арифметические операции сложения, вычитания, умножения и операции сравнения.

Листинг исходного кода программы:

using System;

using System.Collections.Generic; using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace laba6._2

{

class Program

{

static void Main(string[] args)

{

int a1, a2, b11, b22; string b1, b2;

Console.WriteLine("Введите первое число в порядке: целая часть, дробная часть"); a1 = int.Parse(Console.ReadLine());

b1 = Console.ReadLine();

Console.WriteLine("Введите второе число в порядке: целая часть, дробная часть"); a2 = int.Parse(Console.ReadLine());

b2 = Console.ReadLine();

for (int i = b1.Length; i < b2.Length; i++) b1 += '0';

for (int i = b2.Length; i < b1.Length; i++) b2 += '0';

b11 = int.Parse(b1);

b22 = int.Parse(b2);

Fraction Aa = new Fraction(a1, b11); Fraction Bb = new Fraction(a2, b22);

Console.WriteLine($"\nРезультаты:\nСложение: { Aa.Sum(Bb)}\nВычитание: { Aa.Vch(Bb)}");

Console.WriteLine($"Умножение: {Aa.Umn(Bb)}\b "); Console.WriteLine($"Сравнение: Число № {Aa.Srav(Bb)}\b больше");

}

}

class Fraction

{

private double a; private int b; public double A

{

get { return a; }

set { a = value; }

}

public int B

{

get { return b; } set { b = value; }

}

public Fraction(double a, int b)

{

this.a = a; this.b = b;

}

public Fraction Sum(Fraction second)

{

double result_a = a + second.A; int result_b = b + second.B;

if (result_b > 10)

{

result_b -= 10; result_a++;

}

return new Fraction(result_a, result_b);

}

public Fraction Vch(Fraction second)

{

double result_a = a - second.A; int result_b = b - second.B;

if (result_b < 0)

{

result_b = result_b * (-1);

}

return new Fraction(result_a, result_b);

}

public Fraction Umn(Fraction second)

{

double m1 = int.Parse(Convert.ToString(a) + Convert.ToString(b)) / Math.Pow(10, Convert.ToString(b).Length);

double m2 = int.Parse(Convert.ToString(second.A) +

Convert.ToString(second.B)) / Math.Pow(10, Convert.ToString(second.B).Length); double result_a = m1 * m2;

return new Fraction(result_a, 0);

}

public Fraction Srav(Fraction second)

{

double result_srav; if (a > second.A)

result_srav = 1; else

if (a < second.A) result_srav = 2;

else

if (b > second.b)