.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");
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы