Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2013, 21:24   #1
midiss
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 24
Восклицание Треугольник

даны координаты точек треугольника
найти 1) площади, периметра;
2) длины медианы, принадлежащей любой стороне;
3) определение значений углов;
4) перемещение в направлении одной из осей;
5) поворот вокруг центра тяжести треугольника.
в последних двух пунктах можно найти только измененные координаты
площадь, периметр, медианы и углы нашла, а остальные никак
Код:
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <conio.h>

using namespace std;
const double Pi=3.14159265359;

class Triangle
{private:
    double x1, y1, x2, y2, x3, y3;
	double xx, yy;
public:
    Triangle();
	explicit Triangle( double, double, double, double, double, double );
	~Triangle() {}
    double square() const;
    double perimeter() const;
	double mediana() const;
	double alfa() const;
	double betta() const;
	double gamma() const;
	double per();
    static double length ( double, double, double, double );
    friend std::ostream& operator << ( std::ostream&, const Triangle& );

};
 
Triangle::Triangle()
{
    cout<<"Введите координаты вершин треугольника:"<<endl;
	cout<<"x1: "; cin>>x1;
	cout<<"y1: "; cin>>y1;
	cout<<"x2: "; cin>>x2;
	cout<<"y2: "; cin>>y2;
	cout<<"x3: "; cin>>x3;
	cout<<"y3: "; cin>>y3;
}
 
Triangle::Triangle( double _x1, double _y1, double _x2, double _y2, double _x3, double _y3 )
{
    x1 = _x1;
    y1 = _y1;
    x2 = _x2;
    y2 = _y2;
    x3 = _x3;
    y3 = _y3;
}
 
double Triangle::length( double x1, double y1, double x2, double y2 )
{
    return sqrt( (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) );
}
 
double Triangle::perimeter() const 
{
    return length(x1, y1, x2, y2) + length(x1, y1, x3, y3) + length(x2, y2, x3, y3);
}
 
double Triangle::square() const
{
    return fabs( x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2) ) / 2.;
}
double Triangle::mediana() const
{
	return sqrt( 2*(length(x2,y2, x3, y3)*length(x2,y2, x3, y3)) +2*(length(x1, y1, x3, y3)*length(x1, y1, x3, y3))-(length(x1, y1, x2, y2)*length(x1, y1, x2, y2)))/2.;
}
 
double Triangle::alfa() const
{
	return (180/Pi)*acos((length(x2,y2, x3, y3)*length(x2,y2, x3, y3)+length(x1, y1, x3, y3)*length(x1, y1, x3, y3)-length(x1, y1, x2, y2)*length(x1, y1, x2, y2))/(2*length(x2,y2, x3, y3)*length(x1, y1, x3, y3)));
}
double Triangle::betta() const
{
	return (180/Pi)*acos((length(x1, y1, x2, y2)*length(x1, y1, x2, y2)+length(x1, y1, x3, y3)*length(x1, y1, x3, y3)-length(x2,y2, x3, y3)*length(x2,y2, x3, y3))/(2*length(x2,y2, x1, y1)*length(x1, y1, x3, y3)));
}
double Triangle::gamma() const
{
	return (180/Pi)*acos((length(x1, y1, x2, y2)*length(x1, y1, x2, y2)+length(x2, y2, x3, y3)*length(x2, y2, x3, y3)-length(x1,y1, x3, y3)*length(x1,y1, x3, y3))/(2*length(x2,y2, x1, y1)*length(x2, y2, x3, y3)));
}
double Triangle::per() 
{
	cout<<"На сколько переместить треугольник?"<<endl;
	cout<<"По оси Х"; cin>>xx;
	cout<<"По оси У"; cin>>yy;
	x1=x1+xx; x2=x2+xx; x3=x3+xx;
	y1=y1+yy; y2=y2+yy; y3=y3+yy;
	return 1;
}
std::ostream& operator << ( std::ostream& stream, const Triangle& t )
{
    stream << '(' << t.x1 << ';' << t.y1 << "), "
           << '(' << t.x2 << ';' << t.y2 << "), "
           << '(' << t.x3 << ';' << t.y3 << ')' ;
	
    return stream;
}
int main()
{	setlocale(0, "");
    Triangle t;
    cout << "Координаты вершин треугольника: " << t << endl;
    cout << "Площадь: " << t.square() << endl;
    cout << "Периметр: " << t.perimeter() << endl;
	cout << "Медиана: " << t.mediana() << endl;
	cout << "Угол альфа: " << t.alfa() << endl;
	cout << "Угол бетта: " << t.betta() << endl;
	cout << "Угол гамма: " << t.gamma() << endl;
	cout<<"На сколько переместить треугольник?"<<endl;
	_getch();
}
midiss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Треугольник Паскаля vadiprog Помощь студентам 4 02.10.2020 23:44
Треугольник С++ i.yakushev Помощь студентам 18 05.05.2011 20:55
C++(треугольник) Runner Помощь студентам 2 13.05.2010 10:32
Рисуем треугольник Познающий Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 19.11.2009 22:24
Треугольник serega11 Помощь студентам 2 22.05.2008 09:01