Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 14.04.2011
Сообщений: 4
1

Заданы координаты острых углов прямоугольного треугольника и длина его катета. Определить координаты третьей вершины, длину всех сторон, площадь и угл

28.04.2011, 10:58. Просмотров 2615. Ответов 2
Метки нет (Все метки)

Здравствуйте, дорогие программисты!!! Я снова к вам за помощью. Вот такая у меня задача:
Заданы координаты острых углов прямоугольного треугольника и длина его катета. Определить координаты третьей вершины, длину всех сторон, площадь и углы треугольника (четыре решения)!
Помогите пожалуйста!!! Или хоть скажите с чего начинать!!! Заранее благодарен!!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2011, 10:58
Ответы с готовыми решениями:

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

Найти координаты третьей вершины треугольника и составить уравнения его сторон
Даны две вершины треугольника (2,3) и (6, 7) и точка пересечения его медиан (4.1). Найти координаты...

Заданы координаты сторон треугольника, найти его площадь
Здравствуйте, нужна ваша помощь. Нужно решить вот такую задачу. Даны действительные числа a,...

Заданы координаты сторон треугольника, найти его площадь
14. Заданы координаты сторон треугольника. Если такой треугольник существу- ет, то найти его...

__________________
2
2183 / 1253 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
28.04.2011, 13:04 2
причем тут класс? или тебе задание нужно именно через класс сделать?
вот то что тебе нужно, но не через ООП, сам доделай.
Кликаешь на пайитбокс 2 раза в разных местах (задаешь точки вершин А и В) потом жми расчитать и справа в label выведутся все данные какие тебе нужны
0
Вложения
Тип файла: zip работа с триугольниками.zip (204.9 Кб, 57 просмотров)
0 / 0 / 1
Регистрация: 14.04.2011
Сообщений: 4
12.05.2011, 11:27  [ТС] 3
Лучший ответ Сообщение было отмечено patenko как решение

Решение

Нет) Не так! ВОТ ПРИМЕР ПРОГРАММЫ!
Delphi
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
{============================ Класс точки =====================================}
  TDot = class(TObject)
  private
    X,Y:integer;                       {координаты центра точки}
    R:integer;                         {радиус точки}
    Color:COLORREF;                    {цвет точки}
  public
    procedure Init(Xo,Yo,Ro:Integer;   {инициализация точки}
                   Cr:COLORREF);
    procedure Draw;                    {рисование точки}
  end;
{============================ Класс вектора ===================================}
  TVec = class(TObject)                {класс вектора}
  private
    X,Y:integer;                       {проекции вектора}
    R:integer;                         {толщина вектора}
    Color:COLORREF;                    {цвет вектора}
  public
    procedure Init(A,B:TDot;D:Integer; {инициализация вектора}
                  Cr:COLORREF);        {по координатам его концов}
    procedure Draw(A:TDot);            {рисование вектора}
    procedure Rotate(A:TVec;f:real);   {поворот вектора}
    procedure EndVector(A:TDot;Var B:TDot);{вычисление конца вектора}
  end;
{============================ Класс формы =====================================}
  TMain = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    A,B,C:TDot;                        {объявление точек}
    AB,AC,BC:TVec;                     {объявление векторов}
    Count:Integer;                     {счётчик щелчков кнопкой мыши на форме}
  end;
 
var
  Main: TMain;
implementation
{$R *.dfm}
{======================= Методы класса TDot ===================================}
{инициализация точки}
procedure TDot.Init(Xo,Yo,             {координаты центра точки}
                    Ro:Integer;        {радиус точки}
                    Cr:COLORREF);      {цвет точки}
begin
   X:=Xo;   Y:=Yo;    R:=Ro;    Color:=Cr;
end;
{рисование точки в соответствии с её атрибутами}
procedure TDot.Draw;
begin
   Main.Canvas.Brush.Color:=Color;      {изменение цвета кисти}
   Main.Canvas.Pen.Color:=Color;        {изменение цвета карандаша}
   Main.Canvas.Ellipse(x-R,y-R,x+R,y+R);{рисование закрашенного круга радиуса R}
end;
 
{======================== Методы класса TVec ==================================}
{инициализация вектора по координатам его концов}
procedure TVec.Init(A,B:TDot;           {координаты начала и конца вектора}
                D :Integer;             {толщина вектора}
                Cr:COLORREF);           {цвет вектора}
begin
   X := B.X - A.X;   Y := B.Y - A.Y;
   R:=D;    Color:=Cr;
end;
{рисование вектора, начинающегося в точке А}
procedure TVec.Draw(A:TDot);
begin
   Main.Canvas.Pen.Color:=Color;        {изменение цвета карандаша}
   Main.Canvas.Pen.Width:=R;            {изменение толщины карандаша}
   Main.Canvas.MoveTo(A.X,A.Y);         {перевод карандаша}
   Main.Canvas.LineTo(A.X+X,A.Y+Y);     {рисование отрезка}
end;
{вычисление вектора повёрнутого относительно заданного на заданный угол}
procedure TVec.Rotate(A:TVec;           {заданный вектор}
                      f:real);          {угол поворота (радианы)}
begin
   X := Round(A.X*cos(f) - A.Y*sin(f));
   Y := Round(A.X*sin(f) + A.Y*cos(f));
end;
{вычисление конца вектора по точке начала вектора}
procedure TVec.EndVector(A:TDot;        {начало вектора}
                      Var B:TDot);      {конец вектора}
begin
   B.X := A.X + X;
   B.Y := A.Y + Y;
end;
 
{======================== Методы класса TMain =================================}
{Метод создания формы}
procedure TMain.FormCreate(Sender: TObject);
begin
{выделение памяти для экземпляров A,B,C класса TDot}
   A:=TDot.Create;    B:=TDot.Create;   C:=TDot.Create;
{выделение памяти для экземпляров AB,AC,BC класса TVec}
   AB:=TVec.Create;    AC:=TVec.Create;   BC:=TVec.Create;
{Инициализация счётчика щелчков кнопкой мыши на форме}
   Count:=1;
end;
{Метод обработки события щелчка кнопкой мыши на форме}
procedure TMain.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   If Count mod 2 = 1 then          {нечётный щелчёк}
      A.Init(X,Y,2,RGB(0,0,255))    {инициализация точки А}
   else                             {чётный щелчёк}
   begin
      B.Init(X,Y,2,RGB(0,0,255));   {инициализация точки В}
      AB.Init(A,B,4,RGB(255,255,0));{инициализация вектора AВ}
      AB.Draw(A);                   {рисование отрезка AВ}
 
      AC.Init(A,B,4,RGB(255,255,0));{инициализация вектора AC}
      AC.Rotate(AB,Pi/3);
      AC.Draw(A);                   {рисование отрезка AC}
 
      C.Init(X,Y,2,RGB(0,0,255));   {инициализация точки С}
      AC.EndVector(A,C);            {вычисление координат точки С}
      BC.Init(B,C,4,RGB(255,255,0));{инициализация вектора BC}
      BC.Draw(B);                   {рисование отрезка BC}
   end;
   A.Draw;                          {рисование точки A}
   B.Draw;                          {рисование точки B}
   C.Draw;                          {рисование точки С}
   Count:=Count+1;
end;
 
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2011, 11:27

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

Заданы координаты сторон треугольника. Если такой треугольник существует, то найти его площадь
writeln('Стороны равны: ', a:0:2,' ', b:0:2,' ', c:0:2); writeln('Площадь треугольника = ', sqrt(p...

Дана длина катета а и гипотенузы с прямоугольного треугольника. Найти длину второго катета
Дана длина катета а и гипотенузы с прямоугольного треугольника. Найти длину второго катета....

Найти координаты всех вершин параллелограмма, если известны координаты одной вершины и уравнения двух его сторон
Найти координаты всех вершин параллелограмма, если известны координаты одной вершины А=(12;-7) и...

Определить координаты третьей вершины треугольника
Прошу помощи в написании формулы определения координат третьей вершины треугольника Правила,...

Найти площадь треугольника, если известны координаты его углов
Напишите программу, которая вычисляет площадь треугольника, если известны координаты его углов. ...

Найти площадь прямоугольного треугольника, зная длину гипотенузы и одного катета
/*Пользователь вводит длину гипотенузы, и одного катета. Нужно рассчитать площадь прямоугольного...


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

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

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