Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lightmen
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 26
#1

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

29.05.2014, 15:32. Просмотров 1339. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 15:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Треугольник в С++ (C++):

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

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

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

Треугольник - C++
Здраствуйте. Помогите решить Дано 1)####### 2)##### ##### ### ### # ...

Треугольник - C++
Вот такая вот задача: Написать подпрограмму-функцию для определения того, можно ли из двух отрезков a и b, заданных в основной...

треугольник - C++
помогите пожалуйста проверить можно ли из векторов a(a1,a2), b(b1,b2) c(c1,c2) образовать треугольник

7
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.05.2014, 15:49 #2
Lightmen, а где в задании сказано, что надо рисовать треугольник? Делай как обычно вывод текстом: "площадь, периметр, стороны".
0
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
29.05.2014, 15:51 #3
Цитата Сообщение от Lightmen Посмотреть сообщение
Раз надо найти длины сторон, то получается треугольник надо строить по координатам вершин, правильно?
да, векторы вам в помощь
корень квадратный из суммы квадратов разностей координат будет длиной
Цитата Сообщение от Lightmen Посмотреть сообщение
"Разработать класс на языке С++ реализующий методы для работы с треугольником: построение треугольника, вычисление периметра, площади, длин сторон".
вы уверены что под построением имеется ввиду отрисовка?
0
Lightmen
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 26
29.05.2014, 16:38  [ТС] #4
Kuzia domovenok, dzrkot - в задании указано "построение треугольника" поэтому я думаю отрисовка. Я не прав? Просто не знаю, как еще интерпретировать этот пункт.
0
Max Dark
шКодер самоучка
1841 / 1641 / 598
Регистрация: 09.10.2013
Сообщений: 3,664
Записей в блоге: 6
Завершенные тесты: 2
29.05.2014, 16:40 #5
Рисование оставьте на потом, сначала разберитесь с вычислениями.
0
Lightmen
0 / 0 / 0
Регистрация: 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
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
01.06.2014, 21:08 #7
Цитата Сообщение от Lightmen Посмотреть сообщение
Помогите, пожалуйста, переделать код так, чтобы использовался класс.
прочитайте рпо классы, всё очень просто, попробуйте написать свой, выложите, мы поправим, пользы будет больше чем если это сделают за вас
0
Lightmen
0 / 0 / 0
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 22:22
Привет! Вот еще темы с ответами:

Треугольник - C++
1.Операторы выбора в С++ Даны три различных числа. Если нельзя построить треугольник с такими длинами сторон, то напечатать 0, иначе...

Треугольник - C++
Составьте программу для выполнения следующих заданий: 1. Ввести с клавиатуры длины отрезков a, b и c. 2. Проверить, могут ли быть эти...

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

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


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
02.06.2014, 22:22
Ответ Создать тему
Опции темы

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