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

Описать класс "Треугольник"

12.04.2012, 10:41. Показов 10977. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В классе определить поля с длинами сторон треугольника, автовычисляемые поля с периметром и площадью треугольника, непараметризированный метод, определяющий типа треугольника (прямой, равнобедренный, равносторонний, разносторонний), параметризированный метод, считающий длину высоты треугольника, опущенной на заданную сторону.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.04.2012, 10:41
Ответы с готовыми решениями:

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

Описать класс треугольник
Описать класс треугольник, содержащий длины сторон, и методы: определяющий правильность введения данных, т.е. возможность построения...

C# Шарп. Описать класс треугольник
Народ помогите пожалуйста с программой на C# Шарп учусь на 2 курсе "СибГУТИ" Пример: Описать класс, представляющий треугольник....

9
 Аватар для Alex_oo7
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
12.04.2012, 13:44
Mishanya_94, треугольник задаётся точками или длинами сторон ?

Добавлено через 38 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Triangle{
    private double ax, ay, bx, by, cx, cy;
    public double ab, bc, ca, p, s;
    
    public Triangle(double _ax, double _ay, double _bx, double _by, double _cx, double _cy){
        ax = _ax; ay = _ay;
        bx = _bx; by = _by;
        cx = _cx; cy = _cy;
        s = Math.Abs(((cy - ay) * (bx - ax)) - ((cx - ax) * (by - ay))) / 2;
        ab = Math.Pow(Math.Pow(bx - ax, 2) + Math.Pow(by - ay, 2), 0.5);
        bc = Math.Pow(Math.Pow(bx - cx, 2) + Math.Pow(by - cy, 2), 0.5);
        ca = Math.Pow(Math.Pow(cx - ax, 2) + Math.Pow(cy - ay, 2), 0.5);
        p = ab + bc + ca;
    }
}
1
12 / 12 / 2
Регистрация: 28.03.2012
Сообщений: 49
12.04.2012, 14:50
классы создаются следющим образом:
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
public class Treugolnik {
 
// это поле. поля должны обязательно иметь тип. в данном случае это double
public double ab { get; set;} 
// после этой записи везде в классе ab можно использовать как переменную
 
//это метод. у него тип bool поэтому он обязательно возвращает значения (return)
public bool ravnostoronny() {
return true;
}
// это тоже метод. тип void. он не возвращает значения.
public void vysota(double ab) {
}
 
// в отличие от полей методы могут принимать параметры (параметризированы).
// параметры указываются в круглых скобках
// если параметров нет, то в круглых скобках ничего не надо писать
// у методов круглые скобки должны быть обязательно
// у полей круглых скобок нет.
 
 
// это конструктор класса
public Treugolnik(/*пареметры*/) {
// присвоение параметров, н-р ab = _ab;
}
// в конструкторе задаются первоначальные элементы класса
// конструктор имеет тоже название, что и класс
// в данном случае 6 точек на координатной плоскости, как это сделал [B]Alex_oo7[/B]
}
 
 
// void Main() {
 
//тут надо завести переменную класса
//делается это с помощью модификатора new
 
Treugolnik t = new Treugolnik(1,2,3,4,5,6);
 
// чтобы подсчитать высоту, надо завести соотв. переменную
// и в параметре указать сторону.
double h = t.vysota(1);
 
}
1
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 33
12.04.2012, 16:53  [ТС]
[QUOTE=Alex_oo7;2902990]Mishanya_94, треугольник задаётся точками или длинами сторон ?

длинами))
0
 Аватар для Alex_oo7
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
12.04.2012, 19:14
Mishanya_94,
Тогда конструктор такой:
C#
1
2
3
4
5
6
7
8
9
public class Triangle{
    public double a, b, c, p, s;
    
    public Triangle(double _a, double _b, double _c){
        a = _a; b = _b; c = _c;
        p = a + b + c;
        s = Math.Pow(p * (p - 2 * a) * (p - 2 * b) * (p - 2 * c), 0.5) / 4;
    }
}
0
79 / 79 / 12
Регистрация: 07.01.2012
Сообщений: 167
12.04.2012, 19:20
Лучший ответ Сообщение было отмечено как решение

Решение

Треугольник
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
using System;
 
 
namespace ConsoleApplication1
{
    class Triangle
    { 
 
        # region basis fields and relevant properties
        
        //vertices вершины
        
        private Point _verticeA;
        private Point _verticeB;
        private Point _verticeC;
 
        public Point VerticeA { get { return _verticeA; } }
        public Point VerticeB { get { return _verticeB; } }
        public Point VerticeC { get { return _verticeC; } }
        
        //sides стороны
        private Line _sideAB;
        private Line _sideBC;
        private Line _sideCA;
        
        public Line SideAB { get { return _sideAB; } }
        public Line SideBC { get { return _sideBC; } }
        public Line SideCA { get { return _sideCA; } }
 
        # endregion
 
        # region Constructors
        // по точкам
        public Triangle(Point verticeA, Point verticeB, Point verticeC)
        {
            this._verticeA = verticeA;
            this._verticeB = verticeB;
            this._verticeC = verticeC;
            this._sideAB = new Line(_verticeA, _verticeB);
            this._sideBC = new Line(_verticeB, _verticeC);
            this._sideCA = new Line(_verticeC, _verticeA);
        }
 
        /* по длинам
        public Triangle(int LenghtA, int LenghtB, int LenghtC)
        {
            this._verticeA = new Point(0, 0);//первая вершина
            this._verticeB = new Point(0, LenghtA);// вторая вершина
            // метод поиска третьей вершины есть длинная формула если нужно разберешься  ))
            // 
 
        }
        */
        # endregion
 
        # region calculated properties
        //corners in Radians 
        public double AngleA { get { return GetAngleRadians(SideAB, SideCA, SideBC); } }
        public double AngleB { get { return GetAngleRadians(SideAB, SideBC, SideCA); } }
        public double AngleC { get { return GetAngleRadians(SideBC, SideCA, SideAB); } }
        //Периметр
        public double Perimeter 
        {
            get
            {
                return SideAB.Lenght + SideBC.Lenght + SideCA.Lenght;
            }
        }
        //Площадь
        public double Area 
        {
            get
            {
                return (0.5 * SideAB.Lenght * Altitude(SideAB));
            }
        }
        //Прямоугольный
        public bool Rectangled 
        { 
            get {
                if (this.GetAngleDegree(AngleA) == 90 ||
                    this.GetAngleDegree(AngleB) == 90 ||
                    this.GetAngleDegree(AngleC) == 90) 
                    return true;
                return false;
                }
        }
        //Равнобедренный
        public bool Isosceles 
        {
            get 
            {
                if (this.Rectangled)
                    if (this.SideAB.Lenght == this.SideBC.Lenght ||
                        this.SideBC.Lenght == this.SideCA.Lenght ||
                        this.SideAB.Lenght == this.SideCA.Lenght)
                        return true;
                return false;
            }
        }
        //Равносторонний
        public bool Equilateral 
        {
            get
            {
                if (this._sideAB.Lenght ==this.SideBC.Lenght && 
                    this.SideBC.Lenght == this.SideCA.Lenght)
                    return true;
                return false;
            }
        }
        //Разносторонний
        public bool Versatile 
        {
            get
            {
                if (this.SideAB.Lenght != this.SideBC.Lenght &&
                    this.SideBC.Lenght != this.SideCA.Lenght &&
                    this.SideCA.Lenght != this.SideAB.Lenght)
                    return true;
                return false;
            }
        }
 
        # endregion
        # region private methods
 
        //Получить Угол в радианах
        private double GetAngleRadians(Line side1, Line side2, Line oppositeSide)
        {
            return Math.Acos((side1.Lenght * side1.Lenght +
                              side2.Lenght * side2.Lenght -
                              oppositeSide.Lenght * oppositeSide.Lenght
                              ) / (2 * side1.Lenght * side2.Lenght)
                             );
        }
        /*
                    .C 
                   *|*angleC
                  * | *
                 *  |  *
                *   |   *
               *    |    * 
      angleA  *     |     *angleB
           A ***************B
        */
        //длина высоты
        private double Altitude(Line oppositeSide)// параметр -сторона на которую опущена высота
        {
             if(oppositeSide==SideAB)
                 return SideCA.Lenght * Math.Sin(AngleA);
             if(oppositeSide==SideBC)
                 return SideAB.Lenght * Math.Sin(AngleB);
             if (oppositeSide == SideCA)
                 return SideBC.Lenght * Math.Sin(AngleC);
             return 0.0;
        }
 
 
        # endregion
 
        # region public methods
 
        //Получить Угол в градусах округленный до 2х знаков после запятой
        public double GetAltitudeLenght(Line oppositeSide) { return Altitude(oppositeSide); }
        public double GetAngleDegree(double Angle)
        {
            return Math.Round(Angle * 180 / Math.PI, 2);
        }
 
        # endregion
 
    }
 
    public class Line
    {
        public Point StartPoint;
        public Point EndPiont;
 
        public double Lenght
        {
            get
            {
                return Math.Sqrt(
                      (StartPoint.X - EndPiont.X) * (StartPoint.X - EndPiont.X) +
                      (StartPoint.Y - EndPiont.Y) * (StartPoint.Y - EndPiont.Y)
                      );
            }
        }
 
        public Line(int startX, int startY, int endX, int endY)
            {
                this.StartPoint = new Point(startX, startY);
                this.EndPiont = new Point(endX, endY);
            }
 
        public Line(Point startPoint, Point endPoint)
            {
                this.StartPoint = startPoint;
                this.EndPiont = endPoint;
            }
 
    
    }
 
    public class Point
    {
        public int X { get; set; }
        public int Y { get; set; }
 
        public Point(int coordinateX, int coordinateY)
        { 
                this.X = coordinateX;
                this.Y = coordinateY;
        }
    }
}


Main
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Triangle MyTriangle = new Triangle(new Point(0, 0), new Point(3, 0), new Point(0, 5));
            Console.WriteLine( MyTriangle.SideAB.Lenght.ToString());
            Console.WriteLine( MyTriangle.GetAngleDegree( MyTriangle.AngleA ).ToString());
            Console.WriteLine("Rectangled? : " +  MyTriangle.Rectangled.ToString());
            Console.WriteLine("Perimeter : " +  Math.Round( MyTriangle.Perimeter, 2 ).ToString());
            Console.WriteLine("Area : " + Math.Round(MyTriangle.Area, 4).ToString());
            Console.WriteLine("Lenght of altitude for Side AB :" + MyTriangle.GetAltitudeLenght(MyTriangle.SideAB).ToString());
            Console.ReadLine();
        }
    }
}
3
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 33
18.05.2012, 14:58  [ТС]
В классе определить поля с длинами сторон треугольника, автовычисляемые поля с периметром и площадью треугольника, непараметризированный метод, определяющий типа треугольника (прямой, равнобедренный, равносторонний, разносторонний), параметризированный метод, считающий длину высоты треугольника, опущенной на заданную сторону.
0
 Аватар для Sanyaslinkz
44 / 44 / 3
Регистрация: 12.03.2011
Сообщений: 100
18.05.2012, 15:30
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    class Treug
    {
        public int A = 5, B = 12, C = 13;//СТОРОНЫ
        public void Type()
        {
            double a=45, b=45, c=45;//углы
            if (a == 90 || b == 90 || c == 90)
                Console.WriteLine("Треугольник прямоугольный");
            if ((a == 45) && (b == 45) && (c == 45))
                Console.WriteLine("Треугольник равносторонний");
            if ((a == 45 && b == 45) || (a == 45 && c == 45) || (b == 45 && c == 45))
                Console.WriteLine("Треугольник равнобедренный");
        }
        public void Hight(int a, int b, int c)
        {
            a = this.A; b = this.B; c = this.C;
            double p=(a+b+c)/2;
            double S=Math.Sqrt(p*(p-a)*(p-b)*(p-c));
            double Ha = (2 * S) / a;
            double Hb = (2 * S) / b;
            double Hc = (2 * S) / c;
        }
    }
1
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
18.05.2012, 15:53
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
        class Triangle
        {
            double a, b, c, P, S;
            public Triangle(double a,double b,double c)
            { 
                this.a = a;
                this.b = b;
                this.c = c;
                this.P = a+b+c;
                this.S = (a*Visota("a"))/2;
            }
 
            public string GetTriangleType()
            {
                string temp = "";
                if ((a * a + b * b) == (c * c) || (a * a) == (b * b + c * c) || (b * b) == (a * a + c * c))
                    temp = "Прямоугольный, ";
                if (a == b && b == c)
                {
                    return temp + "Равносторонний";
                }
                else if (a == b || b == c || a == c)
                {
                    return temp + "Равнобедренный";
                }
                else
                    return temp+"Обычный";
            }
            public double Visota(string storona)
            {
                double p = this.P / 2;
                double temp = Math.Sqrt(p*(p-a)*(p-b)*(p-c))*2;
                switch (storona)
                {
                    case "a": 
                        {
                            return temp/a; 
                        }
                    case "b":
                        {
                            return temp / b;
                        }
                    case "c":
                        {
                            return temp / c;
                        }
                    default:
                        {
                            return 0;
                        }
                }
            }
        }
2
 Аватар для buntar
543 / 544 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
18.05.2012, 16:21
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
namespace KirrilSarr
{
    class Triangle
    {
        // поля
        private int a;
        private int b;
        private int c;
        private double angle_a;
        private double angle_b;
        private double angle_c;
        // конструктор класса
        public Triangle(int A, int B, int C, double Angle_A, double Angle_B, double Angle_C)
        {
            a = A;
            b = B;
            c = C;
            angle_a = Angle_A;
            angle_b = Angle_B;
            angle_c = Angle_C;
        }
        // для равностороннего треугольника
        public void Square_equilateral() { Console.WriteLine("Площадь треугольника = {0} ", a * b / 2); }
 
        // периметр любого треугольника
        public void Perimeter()
        { Console.WriteLine("Его периметр = {0}", a + b + c); }
 
        public void Type()
        {
            if (angle_a == 90 || angle_b == 90 || angle_c == 90)
            {
                Console.WriteLine("Треугольник прямоугольный");
                Perimeter();
            }
 
            if ((angle_a == 45) && (angle_b == 45) && (angle_c == 45))
            {
                Console.WriteLine("Треугольник равносторонний");
                Square_equilateral();
                Perimeter();
            }
            // и т.д 
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Triangle q = new Triangle(6, 3, 3, 45, 45, 45);
            q.Type();
            Console.ReadLine();
        }
 
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2012, 16:21
Помогаю со студенческими работами здесь

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

Описать класс, представляющий треугольник
Здравствуйте, отыскал программу, но исходников к ней нету...очень нужен этот проект запустить, посмотреть работу. Сам пробовал собрать...

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

Описать класс, представляющий треугольник
Описать класс, представляющий треугольник. Предусмотреть методы для создания обьекта, перемещения на плоскости, изменения размеров. Описать...

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru