Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
3 / 3 / 0
Регистрация: 16.09.2018
Сообщений: 173
1

Класс треугольник, члены класса длины 3-х сторон

04.03.2019, 20:33. Показов 3869. Ответов 3

Задание: создать класс треугольник, члены класса длины 3-х сторон. Предусмотреть в классе методы проверки существования треугольника, вычисление и вывода сведений о фигуре - длины сторон, углы,периметр,площадь. Создать производный класс - равносторонний треугольник, предусмотреть в классе проверку,является ли треугольник равносторонним. Написать программу, демонстрирующую работу с классом: дани N треугольников и M равносторонних треугольников, найти количество треугольников имеющих максимальную площадь и равносторонний треугольник с наибольшей медианой.
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
namespace ConsoleApplication1
{
    class Triangle
    {
        public int a, b, c; double P, S, A, B, C;
        public Triangle(int a = 3, int b = 4, int c = 5)
        {
            this.a = a;
            this.b = b;
            this.c = c;
        }
        public virtual bool ExistTriangle()
        {
            return ((a + b < c) || (b + c > a) || (c + a > b));
        }
        public double Perimetr()
        {
            double P = a + b + c;
            return P;
        }
        public virtual double Square()
        {
            double S = ((P * (P - a) * (P - c) * (P - b))* ((P * (P - a) * (P - c) * (P - b))));
            return S;
 
        }
        public virtual double Degree1()
        {
            double A = Math.Acos(Math.Pow(b, 2)) + Math.Pow(c, 2) - Math.Pow(a, 2) / (2 * b * c);
            return A;
        }
        public virtual double ggg()
        { 
            double B = Math.Acos(Math.Pow(a, 2)) + Math.Pow(c, 2) - Math.Pow(b, 2) / (2 * a * c);
            return B;
        }
        public virtual double aaa()
        {
            double C = Math.Acos(Math.Pow(b, 2)) + Math.Pow(a, 2) - Math.Pow(c, 2) / (2 * b * c);
            return C;
        }
        public virtual void Print()
        {
            Console.WriteLine("1 сторона = {0}, 2 сторона = {1},3 сторона = {2},Периметр = {3},Площадь = {4},Угол A = {5}, Угол B = {6}," +
                " Угол C = {7}" ,a,b,c,Perimetr(),Square(),Degree1(),ggg(),aaa());
        }
        class TriangleEqui
        {
            public double a, b, c;
            public TriangleEqui(double a = 2, double b = 4, double c = 2)
            {
                this.a = a;
                this.b = b;
                this.c = c;
            }
            public virtual double ExistTriangle1()
            {
                return (a = b = c);
            }
            public virtual double Mediana()
            {
                double L = Math.Sqrt((3) * a) / 2;
                return L;
            }
            class Program
            {
                static void Main(string[] args)
                {
                    Triangle tr1 = new Triangle(5);
                    Triangle tr2 = new Triangle(3);
                    TriangleEqui tr3 = new TriangleEqui(7);
                    TriangleEqui tr4 = new TriangleEqui(5);
                    tr1.Print();
                    double max;
                    if (tr1.Square() > tr2.Square())
                        max = tr1.Square();
                    else max = tr2.Square();
                    Console.WriteLine("Максимальна площадь :{0}", max);
                    double max1;
                    if (tr3.Mediana() > tr4.Mediana())
                    max1 = tr3.Mediana();
                    else max1 = tr4.Mediana();
                    Console.WriteLine("Максимальная медиана :{0}", max1);
                    Console.ReadKey();
                }
            }
        }
    }
}
Нужно сделать так чтобы пользователь сам вводил длины сторон треугольников и при выполнении программы значения площади, углов и максимальную площадь выводит ноль, помогите решить проблему.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2019, 20:33
Ответы с готовыми решениями:

Создать класс треугольник. Члены класса - координаты 3-х точек
Создать класс треугольник. Члены класса - координаты 3-х точек. Предусмотреть в классе методы...

Создать класс четырехугольник, члены класса - координаты 4-х точек
1) Создать класс четырехугольник, члены класса - координаты 4-х точек. Предусмотреть в классе...

Создать класс Rectangle, содержащий следующие члены класса
VS 2010. Компилятор выдает ошибки, Предложение using должно предшествовать любым другим элементам...

Создать класс Point, содержащий следующие члены класса
Методы, позволяющие: • вывести координаты точки на экран; • рассчитать расстояние от начала...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
3
1210 / 751 / 394
Регистрация: 23.02.2019
Сообщений: 1,890
04.03.2019, 22:00 2
Цитата Сообщение от SmokyStarCat Посмотреть сообщение
максимальную площадь выводит ноль, помогите решить проблему.
Площадь у вас вычисляется методом Square, в этом методе используется переменная P, которой нигде не присваивается значение, кроме дефолтного при создании.
0
13 / 8 / 5
Регистрация: 27.02.2019
Сообщений: 25
05.03.2019, 00:22 3
Вот так вы создаёте локальную переменную, а не инициализируете поле класса, что впрочем логично
(не обязан же треугольник хранить всю инфу о себе)
C#
1
double P = a + b + c;
Для определения площади можно вызывать собственный метод поиска периметра
C#
1
2
3
4
5
public virtual double Square()
        {
            double P = Perimetr();
            return ((P * (P - a) * (P - c) * (P - b))* ((P * (P - a) * (P - c) * (P - b)))); 
        }
И вообще судя по всему у вас какие то сложности с пониманием областей видимости, почему TriangleEqui вложенный класс Triangle и в нём находится точка входа в программу
0
3 / 3 / 0
Регистрация: 16.09.2018
Сообщений: 173
04.04.2019, 09:31  [ТС] 4
Помогите пожалуйста сделать так чтобы пользователь сам вводил количество треугольников.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2019, 09:31

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Создать класс box, конструктору которого передаются три значения double, представляющие собой длины сторон параллелепипеда
Создать класс box, конструктору которого передаются три значения double, пресдтавляющие собой длины...

Треугольник задан длинами сторон A,B,C. Разработать схему алгоритма,определяющую,существует ли данный треугольник
Треугольник задан длинами сторон A,B,C. Разработать схему алгоритма,определяющую,существует ли...

Реализовать в программе класс фигура, потомки класса треугольник, круг и квадрат
Доброго времени суток. Есть задача: реализовать в программе класс фигура, потомки класса...

Дан класс "треугольник", создать методы задания значения длины стороны и двух углов
надо сделать программу в Microsoft visual studio 2010 или 2008...оч надо Дан класс...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.