Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 26.03.2016
Сообщений: 54
.NET 4.x

Исправить расчет и вывод дроби

17.05.2016, 08:20. Показов 943. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Помогите пожалуйста!

Нужно исправить вывод. Вожу например: 5 7 * 5 7 и на выходе получается 25/0. Вот как мне сделать чтобы считало знаменатель?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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");
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2016, 08:20
Ответы с готовыми решениями:

Исправить класс сокращения дроби
класс реализует сокращение дроби , но он не работает выводит теже числа помогите может сам алгоритм...

Исправить ошибки в решении дроби
у меня проблема с программой выложенной на вашем форуме, выдает ошибки: #include &lt;stdio.h&gt;...

Найти период дроби, как исправить ошибку
Задание: Дана дробь a / b. Определите её период. Мой вариант: using System; namespace...

2
8 / 8 / 10
Регистрация: 29.12.2015
Сообщений: 19
17.05.2016, 10:05
Если я правильно понял, то вот так вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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");
        }
    }
}
0
0 / 0 / 0
Регистрация: 26.03.2016
Сообщений: 54
17.05.2016, 10:43  [ТС]
DeAmouSE, По идее так, проверим потом. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.05.2016, 10:43
Помогаю со студенческими работами здесь

Вывод максимальной дроби
Проблема в том, что в выводе выводится первый элемент, как будто он не проверяет &quot;If&quot;. Вот код:...

Вывод дроби в консоль
Есть матрица, нахожу обратную матрицу, дошел до последнего действия, нужно в конце ее разделить на...

Вывод дроби посредством ООП
Всем привет. Начал изучать Objective-c по книге Кнута С. Выполняю задание, написал все как там...

Вывод дроби double, float
Подскажите пожалуйста почему в консоли выводится только 1 знак дроби(Или, возможно, вообще дробь...

Перевод десятичной дроби в обычную и вывод на экран
Доброго времени суток, у меня такая проблема, мне нужно перевести десятичные дроби в обычные,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru