Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 7

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

12.05.2017, 18:34. Показов 6663. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать класс треугольник, члены класса – длины 3-х сторон.
Предусмотреть в классе методы проверки существования треугольника,
вычисления и вывода сведений о фигуре – длины сторон, углы, периметр,
площадь. Создать производный класс – равнобедренный треугольник,
предусмотреть в классе проверку, является ли треугольник
равнобедренным. Написать программу, демонстрирующую работу с
классом: дано N треугольников и M равнобедренных треугольников, найти
минимальную площадь для N треугольников и равнобедренный
треугольник с наибольшим углом при основании.

Проблемки с заданием
Помогите, кто чем сможет, пожалуйста(
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2017, 18:34
Ответы с готовыми решениями:

Создать класс треугольник, члены класса - длины 3-х сторон
Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы, периметр,...

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

Создать класс треугольник, члены класса - длины трех сторон
Создать класс треугольник, члены класса - длины 3-х сторон. Описать в классе конструкторы, деструктор, методы проверки существования...

1
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
12.05.2017, 21:54
Лучший ответ Сообщение было отмечено Денис Булычев как решение

Решение

Для поиска углов, зная 3 стороны треугольника, попроси кто-нибудь поможет функцию void find_angle(void) {...} дописать.
Цитата Сообщение от Денис Булычев Посмотреть сообщение
дано N треугольников и M равнобедренных треугольников, найти
минимальную площадь для N треугольников и равнобедренный
треугольник с наибольшим углом при основании.
И вот это наверное через STL veсtor или array нужно делать. Проси кого-нибудь. Класс считай тебе набросал.
P.s. бесплатный сыр только в мышеловке.
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
#include <iostream>
#include <cstdlib>
#include <clocale>
#include <cmath>
//************************************************************
// Параметры по-умолчанию
#define         __a                 1
#define         __b                 __a
#define         __c                 __a
#define         __a_iso             2
#define         __b_iso             __a_iso
#define         __c_iso             __a_iso/2
 
#define         __alpha             60
#define         __betta             __alpha
#define         __gamma             __alpha
#define         __alpha_iso         75.5
#define         __betta_iso         __alpha_iso
#define         __gamma_iso         180-(__alpha_iso*2)
//************************************************************
using namespace std;
//************************************************************
class Triangle {
protected:
    double a, b, c; // a/b - левая/правая стороны; c - основание
    double alpha, betta, gamma; // alpha/betta - левый/правый углы по основанию; gamma - верхний угол
    void find_angle(void) {
        /* РЕАЛИЗОВАТЬ
        ПОИСК УГЛОВ */
    }
    virtual void check(void) { // Проверка "Является ли треугольником?"
        if (!((this->a < this->b + this->c) && (this->b < this->a + this->c) && (this->c < this->a + this->b))) {
            this->a = __a; this->b = __b; this->c = __c;
            this->alpha = __alpha; this->betta = __betta; this->gamma = __gamma;
        }
    }
public:
    Triangle(void) : a(__a), b(__b), c(__c), alpha(__alpha), betta(__betta), gamma(__gamma) {};
    Triangle(double _a, double _b, double _c) : a(_a), b(_b), c(_c) { check(); find_angle(); };
    friend ostream& operator << (ostream &os, Triangle &obj) {
        os << "Side A: " << obj.a << endl
            << "Side B: " << obj.b << endl
            << "Side C: " << obj.c << endl
            << "Alpha: " << obj.alpha << endl
            << "Betta: " << obj.betta << endl
            << "Gamma: " << obj.gamma << endl
            << "Area (S): " << obj.Area() << endl
            << "Perimeter (P): " << obj.Perimeter() << endl;
        return os;
    }
    double Area(void) { // Площадь
        double p = (this->a + this->b + this->c) / 2;
        return sqrt(p*(p - a)*(p - b)*(p - c));
    }
    double Perimeter(void) { return this->a + this->b + this->c; } // Периметр
    double GetMaxAngle(void) { return this->alpha > this->betta ? this->alpha : this->betta; } // Получения большего угла при основании
    ~Triangle(void) {};
};
//************************************************************
class T_isosceles : public Triangle { // Равнобедренный треугольник
private:
    void check(void) { // Проверка "Является ли равнобедренным треугольником?"
        if ((this->a != this->b && this->b != this->c && this->c != this->a) || (this->a == this->b && this->b == this->c)) {
            this->a = __a_iso; this->b = __b_iso; this->c = __c_iso;
            this->alpha = __alpha_iso; this->betta = __betta_iso; this->gamma = __gamma_iso;
        }
    }
public:
    T_isosceles(void) {
        this->a = __a_iso; this->b = __b_iso; this->c = __c_iso;
        this->alpha = __alpha_iso; this->betta = __betta_iso; this->gamma = __gamma_iso;
    };
    T_isosceles(double _a, double _b, double _c) : Triangle(_a, _b, _c) { check(); find_angle(); };
    friend ostream& operator << (ostream &os, T_isosceles &obj) {
        os << "Side A: " << obj.a << endl
            << "Side B: " << obj.b << endl
            << "Side C: " << obj.c << endl
            << "Alpha: " << obj.alpha << endl
            << "Betta: " << obj.betta << endl
            << "Gamma: " << obj.gamma << endl
            << "Area (S): " << obj.Area() << endl
            << "Perimeter (P): " << obj.Perimeter() << endl;
        return os;
    }
};
//************************************************************
int main(void)
{
    setlocale(LC_ALL, "Russian");
    /// T E S T
    //Triangle One(4,5,6);
    //T_isosceles Two(6, 6, 4);
    //cout << One << endl << Two << endl;
    //cout << "Наибольший угол при основании:" << Two.GetMaxAngle() << endl;
    
    cout << endl; system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2017, 21:54
Помогаю со студенческими работами здесь

Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника.
Добрый вечер, помогите плиз с программой Были наброски такие, с++ изучаю не долго, поэтому не могу додумать( #include&lt;iostream&gt; ...

Создать класс Прямоугольник, члены класса – длины сторон a и b
Создать класс Прямоугольник, члены класса – длины сторон a и b. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – длины...

Создать класс прямоугольник
Создать класс прямоугольник, члены класса – длины сторон a и b. Предусмотреть в классе методы вычисления и вывода сведений о фигуре –...

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

Класс треугольник, члены класса длины 3-х сторон
Задание: создать класс треугольник, члены класса длины 3-х сторон. Предусмотреть в классе методы проверки существования треугольника,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru