{
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)