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

Перегрузка оператора +

19.10.2021, 22:41. Показов 938. Ответов 1

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток
---------------------------------------
Вот у меня есть небольшая программа по нахождению площади треугольника. И по заданию нужно ещё добавить один пункт:

операция «+» перегружена: для двух треугольников создает новый треугольник, стороны которого равны суммам соответствующих сторон этих двух треугольников; при добавлении с числом меняет свою площадь на эту величину.
---------------------------------------
Сложно понять эту тему, а задание нужно как-то доделать. Был бы рад за любую помощь такому студенту, как я!
---------------------------------------
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
using System;
 
namespace LB12
{
    class Triangle
    {
        public double size_a, size_b, size_c, area, p;
 
        public void GetSide(double size_a, double size_b, double size_c)
        {
            this.size_a = size_a;
            this.size_b = size_b;
            this.size_c = size_c;
 
            p = (size_a + size_b + size_c) / 2;
            area = Math.Sqrt(p*(p-size_a)*(p-size_b)*(p-size_c));
        }
        
        public void PrintSqr()
        {
            Console.WriteLine($"\nСторона а = {size_a} см, \nСторона b = {size_b} см, \nСторона c = {size_c} см, \nПлощадь = {area} см^2.");
        }
 
        public Triangle()
        {
            this.size_a = 0;
            this.size_b = 0;
            this.size_c = 0;
 
            p = 0;
            area = 0;
            Console.WriteLine("##  Default contructor run!");
        }
        public Triangle(double size_a, double size_b, double size_c)
        {
            this.size_a = size_a;
            this.size_b = size_b;
            this.size_c = size_c;
 
            p = (size_a + size_b + size_c) / 2;
            area = Math.Sqrt(p * (p - size_a) * (p - size_b) * (p - size_c));
            Console.WriteLine("\n##  Parametrized contructor run!");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Triangle tr1 = new Triangle();
            Triangle tr2 = new Triangle(3.2, 4.5, 2.8);
            tr1.PrintSqr();
            tr2.PrintSqr();
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2021, 22:41
Ответы с готовыми решениями:

Перегрузка оператора >
хочу перегрузить оператор >, но не получается ... вот часть кода: public train Error = new train(); public vokzal Obj = new vokzal();...

Перегрузка оператора +
начал делать задание в котором описать класс для хранеия массива чисел, перегрузить в классе оператор +, который должен слаживать среднее...

Перегрузка оператора %
Здравствуйте! Уже задавала похожий вопрос. Как переопределить оператор %, для нахождения процента чисел. Причем оба объекта должны быть...

1
 Аватар для esperanto_qun
1124 / 656 / 393
Регистрация: 28.01.2021
Сообщений: 1,336
20.10.2021, 10:16
Лучший ответ Сообщение было отмечено William Way как решение

Решение

William Way, для сложения двух треугольников, в класс перегрузку оператора '+':

C#
1
2
3
4
public static Triangle operator +(Triangle t1, Triangle t2)
        {
            return new Triangle { size_a = t1.size_a + t2.size_a, size_b = t1.size_b + t2.size_b, size_c = t1.size_c = t2.size_c };
        }
После этого, в методе Main, можете выполнять операцию сложения для объектов данного класса:

C#
1
2
3
4
5
6
7
8
9
static void Main(string[] args)
        {
            Triangle tr1 = new Triangle(2.2,4.1,3.5);
            Triangle tr2 = new Triangle(3.2, 4.5, 2.8);
            tr1.PrintSqr();
            tr2.PrintSqr();
            Triangle tr3 = tr1 + tr2;
            tr3.PrintSqr();
        }
Для сложения с числом, оператор перегружается и выглядит следующим образом:

C#
1
2
3
4
public static Triangle operator +(Triangle t1, int num)
        {
            return new Triangle {  };
        }
Саму логику, в качестве практики, реализуйте самостоятельно.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2021, 10:16
Помогаю со студенческими работами здесь

Перегрузка оператора
Здравствуйте. У меня проблема, не могу сделать перегрузку оператора "!", надо подсчитать факториал числа. class Factorial { ...

Перегрузка оператора ++
Есть класс ThreeD и метод перегрузки ++: public static ThreeD operator ++(ThreeD op) { ThreeD result = new ThreeD(); ...

Перегрузка оператора *
Надо перегрузить оператор * найти площадь треугольника по формуле герона Сделал все что смог using System; namespace нс2...

Перегрузка оператора
Здравствуйте! Есть класс Fraction(дробь), хочу перегрузить оператор + для массива таких дробей... Внутри класса объявляю: public...

Перегрузка оператора
public Set operator < (Set ob1, Set ob2) { if(ob1.len > ob2.len) return false; //если множество ob1 содержит больше...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru