Создать любое событие в классе "обыкновенная дробь" - C#
Формулировка задачи:
Создать любое событие в классе ОБЫКНОВЕННАЯ ДРОБЬ
например, чтоб ноль нельзя было вводить....
например, чтоб ноль нельзя было вводить....
Решение задачи: «Создать любое событие в классе "обыкновенная дробь"»
textual
Листинг программы
namespace Drobi { delegate void EventHandler();//объявление делегата class drob { int a; public int A { get { return a; } set { a = value; } } int b; public int B { get { return b; } set { b = value; } } public drob(int a, int b) { this.a = a; this.b = b; } public override string ToString() { return "\n" + a.ToString() + "\n" + "--" + "\n" + b.ToString(); } public static drob operator *(drob d1, drob d2) { return new drob(d1.A * d2.A, d1.B * d2.B); } public static drob operator /(drob d1, drob d2) { return new drob(d1.A * d2.B, d2.A * d1.B); } public static drob operator +(drob d1, drob d2) { return new drob(d1.a * d2.b + d2.a * d1.b, d1.b * d2.b); } public static drob operator -(drob d1, drob d2) { return new drob(d1.a * d2.b - d2.a * d1.b, d1.b * d2.b); } public drob obratnaya() { return new drob(this.b, this.a); } //объявление события на основе делегата public event EventHandler f; //объявление метода, в котором вызывается событие public void func(int a, int b) { if (A == 0 || B == 0) //условие для того, чтобы выводить сообщение при нулевом значении { f(); } } } } namespace Drobi { class Program { private static void ob()// создаём обработчик для события { Console.WriteLine("Значение дроби не может равняться нулю"); Console.Clear(); } static void Main(string[] args) { Console.WriteLine("Введите числитель1 "); int a = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Введите знаменатель1 "); int a1 = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Введите числитель2 "); int b = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Введите знаменатель2 "); int b1 = Convert.ToInt16(Console.ReadLine()); drob d1 = new drob(a, a1); drob d2 = new drob(b, b1); //добавляем обработчика события (для первой дроби) d1.f += new EventHandler(ob); d1.func(a,a1);//метод, в котором вызывается событие (для первой дроби) d2.f += new EventHandler(ob); //добавляем обработчика события(для второй дроби) d2.func(b, b1);//метод, в котором вызывается событие (для второй дроби) drob m = d1 * d2; drob q = d1 / d2; drob w = d1 + d2; drob z = d1 - d2; drob p1 = d1.obratnaya(); drob p2 = d2.obratnaya(); Console.WriteLine("умножение=" + m.ToString()); Console.WriteLine("деление=" + q.ToString()); Console.WriteLine("сложение=" + w.ToString()); Console.WriteLine("вычитание=" + z.ToString()); Console.WriteLine("обратная дробь=" + p1.ToString() + " " + p2.ToString()); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д