Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
1

Проконсультируйте по коду класса дробей-рациональных чисел

26.10.2016, 21:44. Показов 1123. Ответов 2

Author24 — интернет-сервис помощи студентам
Здравствуйте, дали мне задачку - описать класс дробей.
Полное условие: Описать класс дробей-рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть методы сложения, вычитания, умножения и деления дробей.
Нашел я свою задачку в интернете и стал разбираться.
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
class Drob
        {
            public double c;
            public double z;
            public double k = 0;
            public Drob(int ch, int zn)
            {
                c = ch;
                z = zn;
            }
            public override string ToString()
            {
                return c.ToString() + "/" + z.ToString();
            }
            public static Drob operator +(Drob a, Drob b)
            {
                Drob t = new Drob(1, 1); ////////////////
                t.c = (a.c * b.z + a.z * b.c);
                t.z = a.z * b.z;
                return t;
            }
            public static Drob operator -(Drob a, Drob b)
            {
                Drob t = new Drob(1, 1); ////////////////
                t.c = (a.c * b.z - a.z * b.c);
                t.z = a.z * b.z;
                return t;
            }
            public static Drob operator *(Drob a, Drob b)
            {
                Drob t = new Drob(1, 1); //////////////
                t.c = (a.c * b.c);
                t.z = a.z * b.z;
                return t;
            }
            public static Drob operator /(Drob a, Drob b)
            {
                Drob t = new Drob(1, 1); //////////////
                t.c = (a.c / b.c);
                t.z = a.z / b.z;
                return t;
            }
    }
В общем то разобрался, но не во всем. Меня интересуют строки
C#
1
Drob t = new Drob(1, 1);
. Никак не пойму, зачем там в скобочках 1,1 и почему именно 1,1? Объясните плиз.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2016, 21:44
Ответы с готовыми решениями:

Описать класс дробей — рациональных чисел, являющихся отношением двух целых чисел
Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля,...

Описать класс дробей — рациональных чисел, являющихся отношением двух целых чисел
Помогите,пожалуйста.. 1)В одномерном массиве, состоящем из п вещественных элементов, вычислить: •...

Описать класс дробей рациональных чисел
Как описать класс дробей рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть...

Описать класс дробей-рациональных чисел, являющихся отношением двух целых чисел
Описать класс дробей-рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть...

2
Эксперт .NETАвтор FAQ
10410 / 5140 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
26.10.2016, 22:12 2
Цитата Сообщение от mazahaler Посмотреть сообщение
Никак не пойму, зачем там в скобочках 1,1 и почему именно 1,1? Объясните плиз.
Вместо 1,1 на самом деле могут быть любые числа.
Просто автор класса предусмотрел только один конструктора для класса Drob. И этот конструктор принимает на вход числитель и знаменатель. Поэтому что бы создать новый экземпляр Drob, вам обязательно нужно передать в него два параметра.

Что бы код был красивее, нужно либо создать еще один конструктор, без параметров:
C#
1
2
3
            public Drob()
            {
            }
Либо в операторах писать вот так:
C#
1
2
3
4
            public static Drob operator +(Drob a, Drob b)
            {
                return new Drob(a.c * b.z + a.z * b.c, a.z * b.z);
            }
Ну и кроме того, вот здесь есть вариант класса дроби получше:
Реализовать приложение "Калькулятор для обыкновенных дробей"
Ваше вариант плох тем, что он не нормализует дробь.
1
7 / 7 / 4
Регистрация: 01.10.2015
Сообщений: 327
26.10.2016, 22:32  [ТС] 3
Спасибо большое)
0
26.10.2016, 22:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2016, 22:32
Помогаю со студенческими работами здесь

Описание класса рациональных дробей
Доброго всем времени суток! Не до конца понимаю, как описать класс рациональных дробей. Вот я...

Умножение рациональных дробей
7. Напишите программу умножения двух рациональных дробей. Если полученный результат является...

Класс рациональных дробей
Написать пользоват. тип рациональных дробей. Внутреннее представление типа: int a, b; должно быть...

Калькулятор рациональных дробей
Первая программа принимает от пользователя три строки, (первая и третья строки – это правильные...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru