.NET 4.x Исправить расчет и вывод дроби - C#
Формулировка задачи:
Здравствуйте! Помогите пожалуйста!
Нужно исправить вывод. Вожу например: 5 7 * 5 7 и на выходе получается 25/0. Вот как мне сделать чтобы считало знаменатель?
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace lab_6_8
- {
- class Program
- {
- static void Main(string[] args)
- {
- try
- {
- NewClass a1 = new NewClass();
- a1.a = 2.5;
- double tmp = (double)a1;
- int tmp1 = (int)a1;
- YoungClass young = new YoungClass();
- OldClass old = new OldClass();
- string[] StrMass = new string[5];
- string str;
- double a, b, answe = 0, answe_1 = 0, a_1, a_2, b_1, b_2;
- Console.WriteLine("Введите через пробел числа a_1 a_2 b_1 b_2 (a_1/a_2 знак b_1/b_2):");
- str = Console.ReadLine();
- StrMass = str.Split(' ');
- a_1 = Convert.ToDouble(StrMass[0]);
- a_2 = Convert.ToDouble(StrMass[1]);
- a = a_1 / a_2;
- b_1 = Convert.ToDouble(StrMass[3]);
- b_2 = Convert.ToDouble(StrMass[4]);
- b = b_1 / b_2;
- if (StrMass[2] == "/")
- {
- //answe = a / b;
- answe = a_1 * b_2;
- answe_1 = b_1 * a_2;
- }
- if (StrMass[2] == "*")
- //answe = a * b;
- answe = a_1 * b_1;
- answe_1 = a_2 * b_2;
- if (StrMass[2] == "+")
- //answe = a + b;
- answe = a_1 + b_1;
- answe_1 = a_2 + b_2;
- if (StrMass[2] == "-")
- //answe = a - b;
- answe = a_1 - b_1;
- answe_1 = a_2 - b_2;
- Console.WriteLine(tmp);
- Console.WriteLine(tmp1);
- Console.WriteLine(a.CompareTo(b));
- Console.WriteLine("Вывод: {0}/{1}",(int)answe,(int)answe_1);
- young.Wow += old.old;
- young.Count(a);
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- }
- finally
- {
- Console.WriteLine("конец");
- }
- Console.ReadKey();
- }
- }
- class NewClass : IComparable
- {
- public double a;
- public double b;
- public int CompareTo(object obj)
- {
- var sort = (NewClass)obj;
- return a.CompareTo(sort.a);
- }
- public static NewClass operator +(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a + obj2.a;
- arr.b = obj1.b + obj2.b;
- return arr;
- }
- public static NewClass operator /(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a / obj2.a;
- arr.b = obj1.b / obj2.b;
- return arr;
- }
- public static NewClass operator -(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a - obj2.a;
- arr.b = obj1.b - obj2.b;
- return arr;
- }
- public static NewClass operator *(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a * obj2.a;
- arr.b = obj1.b * obj2.b;
- return arr;
- }
- public static explicit operator double(NewClass obj) { return (double)(obj.a); }
- public static implicit operator int(NewClass obj) { return (int)(obj.a); }
- }
- class YoungClass
- {
- public delegate void Method();
- public event Method Wow;
- public double Count(double a)
- {
- double ten = 10.0;
- if (a < ten)
- Wow();
- if (a > ten)
- Wow();
- return 0;
- }
- }
- class OldClass
- {
- public void old()
- {
- // Console.WriteLine("число a меньше 10");
- }
- }
- }
Решение задачи: «.NET 4.x Исправить расчет и вывод дроби»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace lab_6_8
- {
- class Program
- {
- static void Main(string[] args)
- {
- try
- {
- NewClass a1 = new NewClass();
- a1.a = 2.5;
- double tmp = (double)a1;
- int tmp1 = (int)a1;
- YoungClass young = new YoungClass();
- OldClass old = new OldClass();
- string[] strMass = new string[5];
- string str;
- double a, b, answe = 0, answe_1 = 0, a_1, a_2, b_1, b_2;
- Console.WriteLine("Введите через пробел числа a_1 a_2 b_1 b_2 (a_1/a_2 знак b_1/b_2):");
- str = Console.ReadLine();
- strMass = str.Split(' ');
- a_1 = Convert.ToDouble(strMass[0]);
- a_2 = Convert.ToDouble(strMass[1]);
- a = a_1 / a_2;
- b_1 = Convert.ToDouble(strMass[3]);
- b_2 = Convert.ToDouble(strMass[4]);
- b = b_1 / b_2;
- switch (strMass[2])
- {
- case "/":
- answe = a_1 * b_2;
- answe_1 = b_1 * a_2;
- break;
- case "*":
- answe = a_1 * b_1;
- answe_1 = a_2 * b_2;
- break;
- case "+":
- answe = a_1 + b_1;
- answe_1 = a_2 + b_2;
- break;
- case "-":
- answe = a_1 - b_1;
- answe_1 = a_2 - b_2;
- break;
- default :
- throw new Exception(string.Format("Ошибка ввода, вводить можно только "/", "*", "+", "-" ,а введено {0}", strMass[2]));
- }
- Console.WriteLine(tmp);
- Console.WriteLine(tmp1);
- Console.WriteLine(a.CompareTo(b));
- Console.WriteLine("Вывод: {0}/{1}", (int)answe, (int)answe_1);
- young.Wow += old.old;
- young.Count(a);
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- }
- finally
- {
- Console.WriteLine("конец");
- }
- Console.ReadKey();
- }
- }
- class NewClass : IComparable
- {
- public double a;
- public double b;
- public int CompareTo(object obj)
- {
- var sort = (NewClass)obj;
- return a.CompareTo(sort.a);
- }
- public static NewClass operator +(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a + obj2.a;
- arr.b = obj1.b + obj2.b;
- return arr;
- }
- public static NewClass operator /(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a / obj2.a;
- arr.b = obj1.b / obj2.b;
- return arr;
- }
- public static NewClass operator -(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a - obj2.a;
- arr.b = obj1.b - obj2.b;
- return arr;
- }
- public static NewClass operator *(NewClass obj1, NewClass obj2)
- {
- NewClass arr = new NewClass();
- arr.a = obj1.a * obj2.a;
- arr.b = obj1.b * obj2.b;
- return arr;
- }
- public static explicit operator double(NewClass obj) { return (double)(obj.a); }
- public static implicit operator int(NewClass obj) { return (int)(obj.a); }
- }
- class YoungClass
- {
- public delegate void Method();
- public event Method Wow;
- public double Count(double a)
- {
- double ten = 10.0;
- if (a < ten)
- Wow();
- if (a > ten)
- Wow();
- return 0;
- }
- }
- class OldClass
- {
- public void old()
- {
- // Console.WriteLine("число a меньше 10");
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д