Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
18 / 5 / 2
Регистрация: 24.10.2018
Сообщений: 132

Базовый класс: ПАРА_ЧИСЕЛ (PAIR) Первое_число (first) - int Второе_число (second) –int Определить методы изменения поле

01.02.2020, 14:35. Показов 3504. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Базовый класс:
ПАРА_ЧИСЕЛ (PAIR)
Первое_число (first) - int
Второе_число (second) –int
Определить
методы изменения полей и сравнения пар (пара p1 больше пары р2, если (p1.first>p2.first)|| (p1.first==p2.first &&p1.second>p2.second).
Создать производный класс ДРОБЬ (FRACTION), с полями Целая_часть_числаи Дробная_часть_числа. Определить полный набор методов сравнения.


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
internal class Pair
        {
             int first;
            public int First
            {
                get { return first; }
                set { first = value; }
            }
             int second;
            public int Second
            {
                get { return second; }
                set { second = value; }
            }
 
            public Pair(int a,int b)
            {
                first = a;
                second = b;
            }
 
            public void Sravnenie(Pair p1, Pair p2)
            {
                if ((p1.First > p2.First) || (p1.Second > p2.Second) && (p1.First == p2.First))
                {
                    Console.WriteLine("Пара р1 больше пары р2");
                }
                if ((p1.First < p2.First) || (p1.Second < p2.Second) && (p1.First == p2.First))
                {
                    Console.WriteLine("Пара p1 меньше пары р2");
                }
                if ((p1.First == p2.First) && (p1.Second == p2.Second))
                {
                    Console.WriteLine("Параы равны");
                }
 
            }
        }
 
 
         class Fraction : Pair
        {
            double drob;
            int cel;
 
            public Fraction(double drob, int cel,int a,int b) : base (a,b)
            {
                drob = (double) a/ b;
                this.drob = drob;
 
                cel = a / b;
                this.cel = cel;
            }
        }
        static void Main(string[] args)
        {
            Pair first = new Pair(1, 9);
            Pair second = new Pair(6, 8);
            first.Sravnenie(first, second);
        }
Не понимаю что значит "Полный набор методов сравнения",может кто сталкивался?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2020, 14:35
Ответы с готовыми решениями:

Как считать данные в vector<pair<int, pair<int, int>>> arr(m) ?
Здравствуйте! Помогите, как считать данные данные в массив такого типа? vector&lt;pair&lt;int, pair&lt;int, int&gt;&gt;&gt; arr(m) Пытался...

Как в vector<pair <класс, int> > добавлять свой объект в качестве первого элемента pair?
#include&lt;iostream&gt; #include &quot;Employee.h&quot; #include&lt;string&gt; #include&lt;algorithm&gt; #include&lt;vector&gt; #include&lt;list&gt; #include &lt;map&gt; ...

Создать класс Pair, определить методы изменения полей и вычисления произведения чисел
Уважаемые участники форума,напишите пожалуйста код следующей программы на C# Создать класс Pair (пара чисел); определить методы...

3
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16117 / 11238 / 2887
Регистрация: 21.04.2018
Сообщений: 33,038
Записей в блоге: 2
01.02.2020, 21:14
Лучший ответ Сообщение было отмечено Angelosus как решение

Решение

Цитата Сообщение от Angelosus Посмотреть сообщение
Не понимаю что значит "Полный набор методов сравнения",может кто сталкивался?
Надо реализовать:
  • интерфейсы IEquatable<T> (T - в вашем случае, это Pair), IComparable, IComparable<T>
  • задать метод Equals(T other) (реализация IEquatable<T>)
  • переопределить методы Equals(object obj) (используя Equals(T other)) и GetHashCode()
  • задать методы CompareTo(T other) (реализация IComparable<T>) и метод CompareTo(object obj) (используя CompareTo(T other) реализация IComparable)
  • определить статические методы операторов ==, !=, >=, <=, >, <

Добавлено через 24 минуты
Для базового класса
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
    public class Pair : IEquatable<Pair>, IComparable, IComparable<Pair>
    {
        //int first;
        public int First { get; set; }
 
        //int second;
        public int Second { get; set; }
 
        public int CompareTo(object obj)
            => CompareTo(this, obj as Pair);
 
        public int CompareTo(Pair other)
            => CompareTo(this, other);
 
        //пара p1 больше пары р2, если(p1.first>p2.first)|| (p1.first==p2.first &&p1.second>p2.second
        public static  int CompareTo(Pair left, Pair right)
        {
            if (left == null && right == null)
                return 0;
            if (left == null)
                return -1;
            if (right == null)
                return 1;
 
            int comp = left.First.CompareTo(right.First);
            if (comp != 0)
                return comp;
            return left.Second.CompareTo(right.Second);
        }
 
        public bool Equals(Pair other)
            => other != null
            && First.Equals(other.First)
            && Second.Equals(other.Second);
 
        public override bool Equals(object obj)
            => obj is Pair other && Equals(other);
 
        public override int GetHashCode()
            => First.GetHashCode() ^ Second.GetHashCode();
 
        public static bool operator ==(Pair left, Pair right)
            => (left == null && right == null)
             || (left != null && left.Equals(right));
 
        public static bool operator !=(Pair left, Pair right)
            => !(left == right);
 
        public static bool operator <(Pair left, Pair right)
            => CompareTo(left, right) == -1;
 
        public static bool operator <=(Pair left, Pair right)
            => CompareTo(left, right) != 1;
 
        public static bool operator >(Pair left, Pair right)
            => CompareTo(left, right) == 1;
 
        public static bool operator >=(Pair left, Pair right)
            => CompareTo(left, right) != -1;
    }
Для производного аналогично, но надо учитывать, что First и Second это не просто числа, а представление простой дроби.
Так же по смыслу в таком классе эти свойства должны быть неизменяемыми.
То есть сеттеры из свойств лучше убрать.
0
18 / 5 / 2
Регистрация: 24.10.2018
Сообщений: 132
01.02.2020, 22:56  [ТС]
Элд Хасп, сложновато,как для меня,но спасибо огромное

Добавлено через 10 минут
Элд Хасп, а как это все в main реализовать,просто я кое что пока не понимаю в коде
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16117 / 11238 / 2887
Регистрация: 21.04.2018
Сообщений: 33,038
Записей в блоге: 2
01.02.2020, 22:58
Цитата Сообщение от Angelosus Посмотреть сообщение
как это все в main реализовать,просто я кое что пока не понимаю в коде
В Main вы создаёте экземпляры классов и используете их применяя методы и оператор (операторы, по сути тоже методы).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2020, 22:58
Помогаю со студенческими работами здесь

Класс Pair (пара чисел), определить методы изменения полей и сравнения пар
на программе С++ BUILDER6 Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше пары p2,...

Создать класс Pair, определить методы изменения значений полей и вычисления произведения чисел
Создать класс Pair(пара чисел); определить методы изменения значений полей и вычисления произведения чисел. Определить производный класс...

Как удалить повторяющиеся элементы в vector<pair<int, int>>
Есть вот такой вот вектор: vector&lt;pair&lt;int, int&gt;&gt; a(n); Мне нужно убрать все повторяющиеся элементы именно по первому полю пары. Как...

Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел.
Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел. Определить производный класс Rectangle...

Замена Vector<Pair<int, int>> в java
Добрый день. Подскажите пж как аналогично можно представить объявление массива из с++ в java : Vector&lt;Pair&lt;int, int&gt;&gt; vect;


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru