0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 26
1

Треугольник в С++

29.05.2014, 15:32. Показов 6149. Ответов 7
Метки нет (Все метки)

Добрый день!
Я уже обращался к Вам (Класс С++ для работы с треугольником) по этому вопросу, однако так и не разобрался. Еще раз перепишу задачку "Разработать класс на языке С++ реализующий методы для работы с треугольником: построение треугольника, вычисление периметра, площади, длин сторон".
Если вкратце, то все, до чего я дошел, это то, что:
1. Раз надо найти длины сторон, то получается треугольник надо строить по координатам вершин, правильно?
2. в Интернете я наткнулся на лекции по С++ и интересный код:
C++ (Qt)
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
#include <iostream.h>
#include <graphics.h>
class Triangle
{
pointtype a,b,c; //Детали треугольника = три точки для построения
public:
  void Show(pointtype,pointtype,pointtype); //Метод, помогающий понять треугольнику, как себя рисовать
};
void Triangle::Show(pointtype a,pointtype b,pointtype c) //Описываю метод Show вне класса
{
int Poly[8]={a.x,a.y,b.x,b.y,c.x,c.y,a.x,a.y} ; //Инициализация массива параметрами переданными в объект
fillpoly(4,Poly); //Рисование закрашенного треугольника по данным, записанным в массив
}
void main()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"");
pointtype a,b,c; //Три точки треугольника
      a.x=20;   a.y=20;
      b.x=100; b.y=90;
      c.x=33;   c.y=88;
Triangle Tr1; //Объявили объект, типа треугольник
Tr1.Show(a,b,c); //Заставили объект нарисовать себя по указанным координатам
    
      a.x=500;   a.y=70;
      b.x=600; b.y=100;
      c.x=10;   c.y=70;
     setfillstyle(1,1); //Установка цвета и стиля заливки
     Tr1.Show(a,b,c); //Рисование закрашенного треугольника по координатам точек а,b,c
cin.get();
closegraph();
}
Однако тут используется <graphics.h>, а насколько я понял это сильно устаревший модуль и его уже нет. Во всяком случае найти и прикрепить такой модуль я не смог. А как построить его по-другому я не знаю вообще. Подскажите, пожалуйста!
В общем, я так и застрял на построении, помогите пожалуйста с кодом!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2014, 15:32
Ответы с готовыми решениями:

Создать базовый класс Треугольник с 2 наследниками: Равносторонний треугольник, Прямоугольный треугольник
Задание звучит так: Нужно создать базовый класс Треугольник с двумя наследующими его классами - ...

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

Построить треугольник Паскаля. Используя треугольник Паскаля, вычислить 𝑘−ое число Фиббоначчи. Нумерация чисел Фиббона
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); ...

Создать абстрактный класс "Треугольник" и производный - "Равнобедренный треугольник"
Задание Создать абстрактный класс треугольник. Предусмотреть в классе методы проверки...

7
3774 / 2929 / 814
Регистрация: 25.03.2012
Сообщений: 10,785
Записей в блоге: 1
29.05.2014, 15:49 2
Lightmen, а где в задании сказано, что надо рисовать треугольник? Делай как обычно вывод текстом: "площадь, периметр, стороны".
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
29.05.2014, 15:51 3
Цитата Сообщение от Lightmen Посмотреть сообщение
Раз надо найти длины сторон, то получается треугольник надо строить по координатам вершин, правильно?
да, векторы вам в помощь
корень квадратный из суммы квадратов разностей координат будет длиной
Цитата Сообщение от Lightmen Посмотреть сообщение
"Разработать класс на языке С++ реализующий методы для работы с треугольником: построение треугольника, вычисление периметра, площади, длин сторон".
вы уверены что под построением имеется ввиду отрисовка?
0
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 26
29.05.2014, 16:38  [ТС] 4
Kuzia domovenok, dzrkot - в задании указано "построение треугольника" поэтому я думаю отрисовка. Я не прав? Просто не знаю, как еще интерпретировать этот пункт.
0
шКодер самоучка
2152 / 1860 / 910
Регистрация: 09.10.2013
Сообщений: 4,077
Записей в блоге: 7
29.05.2014, 16:40 5
Рисование оставьте на потом, сначала разберитесь с вычислениями.
0
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 26
01.06.2014, 19:12  [ТС] 6
Добрый день еще раз. Как и посоветовали, я решил сначала разобраться с вычислениями. Со скрипом и неоценимой помощью Интернета, но кое-что нацарапал, и вроде бы даже считает. Только у меня теперь большая проблема с классом. Помогите, пожалуйста, переделать код так, чтобы использовался класс.
C++ (Qt)
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
#include <math.h>
#include <iostream>
using namespace std;
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
 
 //ввожу точки для построения
{  double x1,x2,x3,y1,y2,y3, c,p,s,pp,a,b;
  cout<<"x1="; cin>>x1;
  cout<<"y1="; cin>>y1;
  cout<<"x2="; cin>>x2;
  cout<<"y2="; cin>>y2;
  cout<<"x3="; cin>>x3;
  cout<<"y3="; cin>>y3;
 //ищу длины сторон
 a = sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2))); cout<<" a=" <<a<<endl ;
 b = sqrt(((x1-x3)*(x1-x3))+((y1-y3)*(y1-y3))); cout<<" b=" <<b<<endl ;
 c = sqrt(((x2-x3)*(x2-x3))+((y2-y3)*(y2-y3))); cout<<" c=" <<c<<endl ;
//ищу периметр  и полупериметр
 p = a+b+c;  cout<<"perimetr=" <<p<<endl;
 pp=p/2;
 //нахожу площадь по формуле Герона
s=sqrt(pp*(pp-a)*(pp-b)*(pp-c));
cout<<"ploshad=" <<s<<endl;}
system("pause");
    return 0;
}
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
01.06.2014, 21:08 7
Цитата Сообщение от Lightmen Посмотреть сообщение
Помогите, пожалуйста, переделать код так, чтобы использовался класс.
прочитайте рпо классы, всё очень просто, попробуйте написать свой, выложите, мы поправим, пользы будет больше чем если это сделают за вас
0
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 26
02.06.2014, 22:22  [ТС] 8
Почитал, класс объявил
C++ (Qt)
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
#include <math.h>
#include <iostream>
using namespace std;
#include <string>
 
 class Triangle
 {
private:
    double x1,x2,x3,y1,y2,y3, c,p,s,pp,a,b ;
public:
    triangle(double, double, double);
    void show_triangle(void);
};
 
int _tmain(int argc, _TCHAR* argv[])
{
 
 //ввожу точки для построения
{  double x1,x2,x3,y1,y2,y3, c,p,s,pp,a,b;
  cout<<"x1="; cin>>x1;
  cout<<"y1="; cin>>y1;
  cout<<"x2="; cin>>x2;
  cout<<"y2="; cin>>y2;
  cout<<"x3="; cin>>x3;
  cout<<"y3="; cin>>y3;
 //ищу длины сторон
 a = sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2))); cout<<" a=" <<a<<endl ;
 b = sqrt(((x1-x3)*(x1-x3))+((y1-y3)*(y1-y3))); cout<<" b=" <<b<<endl ;
 c = sqrt(((x2-x3)*(x2-x3))+((y2-y3)*(y2-y3))); cout<<" c=" <<c<<endl ;
//ищу периметр  и полупериметр
 p = a+b+c;  cout<<"perimetr=" <<p<<endl;
 pp=p/2;
 //нахожу площадь по формуле Герона
s=sqrt(pp*(pp-a)*(pp-b)*(pp-c));
cout<<"ploshad=" <<s<<endl;}
system("pause");
    return 0;
}
Но как сделать требуемые вычисления методами класса, я не знаю. Помогите, пожалуйста
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2014, 22:22
Помогаю со студенческими работами здесь

Треугольник
имеется класс: Треугольник даны его координаты вершин (координаты точек) выполнить операции: 1)...

треугольник
Добрый вечер. реализую абстрактные фигуры (круг, прямоугольник) и производные от них (площадь,...

Треугольник
помогите!

Треугольник)
Даны произвольные числа a, b, c. Если нельзя построить треугольник с такими длинами сторон, то...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru