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

Определить, какой из треугольников имеет самую большую площадь

20.05.2013, 23:04. Показов 1481. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
procedure TForm1.Button1Click(Sender: TObject);
Var x11,y11,x12,y12,x13,y13:real; 
x21,y21,x22,y22,x23,y23:real; 
S1,S2:real; 
Flag:Boolean;
Function Len (a,b,c,d:real):real; 
Begin
Len:=sqrt(sqr(a-b)+sqr(c-d)); 
End; 
Function Input(var x1,y1,x2,y2,x3,y3:real):boolean; 
Var a,b,c:real; 
Begin
a:=Len(x1,y1,x2,y2); 
b:=Len(x1,y1,x3,y3); 
c:=Len(x3,y3,x2,y2); 
if (a>=b+c) or (c>=a+b) or (b>=a+c)then
label17.Caption:='Ïîìèëêà! Ïîâòîð³òü ââåäåííÿ:'
else
Begin
Function P(x,y,z:real):real;
Begin
P:=x+y+z;
End;
 
Function S(a,b,c:real):real;
 Var PP:real;
Begin
PP:=P(x,y,z)/2;
S:=sqrt(PP*(PP-a)*(PP-b)*(PP-c));
End;
End;
End;
begin
x11:=Strtofloat(edit1.Text);
x12:=Strtofloat(edit2.Text);
x13:=Strtofloat(edit3.Text);
y11:=Strtofloat(edit4.Text);
y12:=Strtofloat(edit5.Text);
y13:=Strtofloat(edit6.Text);
x21:=Strtofloat(edit7.Text);
x22:=Strtofloat(edit8.Text);
x23:=Strtofloat(edit9.Text);
y21:=Strtofloat(edit10.Text);
y22:=Strtofloat(edit11.Text);
y23:=Strtofloat(edit12.Text);
 
repeat
Flag:=Input(x11,y11,x12,y12,x13,y13); 
until Flag; 
repeat 
Flag:=Input(x21,y21,x22,y22,x23,y23); 
until Flag; 
S1:=S(x11,y11,x12,y12,x13,y13);
S2:=S(x21,y21,x22,y22,x23,y23);
Procedure Output(S1,S1:real); 
Begin  
if S1>S2 
then  
begin
Label17.caption:='Á³ëüøó ïëîùó ìຠïåðøèé òðèêóòíèê.';
Label18.Caption:='Éîãî ïëîùà äîð³âíþº -> '+floattostr(s1);
end 
else 
if S2>S1 
then 
begin 
Label17.caption:='Á³ëüøó ïëîùó ìຠäðóãèé òðèêóòíèê.';
Label18.Caption:='Éîãî ïëîùà äîð³âíþº -> '+floattostr(s2);
end 
else  
begin
Label17.caption:='Òðèêóòíèêè ìàþòü îäíàêîâó ïëîùó.';
Label18.Caption:=' ïëîùà äîð³âíþº -> '+floattostr(s1);
end; 
End;
Добавлено через 17 минут
или дайте свой вариант....

Добавлено через 1 минуту
Даны координаты вершин двух треугольников. Определить, какой из них имеет большую площадь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.05.2013, 23:04
Ответы с готовыми решениями:

Определить, какой из треугольников имеет большую площадь
добрый вечер, уважаемые программисты, студенты-программисты, а также все посетители этого форума. помогите, пожалуйста,написать программу...

Определить, какой из треугольников имеет большую площадь
Даны координаты вершин 2 треугольников определить какой из них имеет большую площадь? подскажите начинающему программеру!

Вычислить площади 2-х треугольников формулой Герона и определить, какой треугольник имеет большую площадь
Два треугольника заданы координатами своих вершин. Вычислить площади треугольников с помощью формулы Герона и определить, какой треугольник...

14
 Аватар для Mixer FM
38 / 38 / 6
Регистрация: 28.11.2009
Сообщений: 96
21.05.2013, 00:00
Вот скрины:
как форомлять код на делфи:

Название: 2.jpg
Просмотров: 34

Размер: 14.3 Кб
0
0 / 0 / 1
Регистрация: 09.03.2012
Сообщений: 23
21.05.2013, 00:08  [ТС]
Кликните здесь для просмотра всего текста
[Error] Unit1.pas(77): Statement expected but 'FUNCTION' found
[Error] Unit1.pas(85): Undeclared identifier: 'x'
[Error] Unit1.pas(89): '.' expected but ';' found
[Error] Unit1.pas(91): Undeclared identifier: 'x11'
[Error] Unit1.pas(91): Undeclared identifier: 'edit1'
[Error] Unit1.pas(92): Missing operator or semicolon
[Error] Unit1.pas(92): Undeclared identifier: 'edit2'
[Error] Unit1.pas(93): Missing operator or semicolon
[Error] Unit1.pas(93): Undeclared identifier: 'edit3'
[Error] Unit1.pas(94): Missing operator or semicolon
[Error] Unit1.pas(94): Undeclared identifier: 'edit4'
[Error] Unit1.pas(95): Missing operator or semicolon
[Error] Unit1.pas(95): Undeclared identifier: 'edit5'
[Error] Unit1.pas(96): Missing operator or semicolon
[Error] Unit1.pas(96): Undeclared identifier: 'edit6'
[Error] Unit1.pas(97): Missing operator or semicolon
[Error] Unit1.pas(97): Undeclared identifier: 'edit7'
[Error] Unit1.pas(98): Missing operator or semicolon
[Error] Unit1.pas(98): Undeclared identifier: 'edit8'
[Error] Unit1.pas(99): Missing operator or semicolon
[Error] Unit1.pas(99): Undeclared identifier: 'edit9'
[Error] Unit1.pas(100): Missing operator or semicolon
[Error] Unit1.pas(100): Undeclared identifier: 'edit10'
[Error] Unit1.pas(100): '(' expected but ')' found
[Error] Unit1.pas(101): Missing operator or semicolon
[Error] Unit1.pas(101): Undeclared identifier: 'edit11'
[Error] Unit1.pas(101): '(' expected but ')' found
[Error] Unit1.pas(102): Missing operator or semicolon
[Error] Unit1.pas(102): Undeclared identifier: 'edit12'
[Error] Unit1.pas(102): '(' expected but ')' found
[Error] Unit1.pas(104): Missing operator or semicolon
[Error] Unit1.pas(105): Undeclared identifier: 'Flag'
[Error] Unit1.pas(105): Missing operator or semicolon
[Error] Unit1.pas(108): Missing operator or semicolon
[Error] Unit1.pas(110): Undeclared identifier: 'S1'
[Error] Unit1.pas(111): Undeclared identifier: 'S2'
[Error] Unit1.pas(112): Statement expected but 'PROCEDURE' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'


Добавлено через 59 секунд
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
procedure TForm1.Button1Click(Sender: TObject);
Var x11,y11,x12,y12,x13,y13:real; 
x21,y21,x22,y22,x23,y23:real; 
S1,S2:real; 
Flag:Boolean;
Function Len (a,b,c,d:real):real; 
Begin
Len:=sqrt(sqr(a-b)+sqr(c-d)); 
End; 
Function Input(var x1,y1,x2,y2,x3,y3:real):boolean; 
Var a,b,c:real; 
Begin
a:=Len(x1,y1,x2,y2); 
b:=Len(x1,y1,x3,y3); 
c:=Len(x3,y3,x2,y2); 
if (a>=b+c) or (c>=a+b) or (b>=a+c)then
label17.Caption:='Ïîìèëêà! Ïîâòîð³òü ââåäåííÿ:'
else
Begin
Function P(x,y,z:real):real;
Begin
P:=x+y+z;
End;
 
Function S(a,b,c:real):real;
 Var PP:real;
Begin
PP:=P(x,y,z)/2;
S:=sqrt(PP*(PP-a)*(PP-b)*(PP-c));
End;
End;
End;
begin
x11:=Strtofloat(edit1.Text);
x12:=Strtofloat(edit2.Text);
x13:=Strtofloat(edit3.Text);
y11:=Strtofloat(edit4.Text);
y12:=Strtofloat(edit5.Text);
y13:=Strtofloat(edit6.Text);
x21:=Strtofloat(edit7.Text);
x22:=Strtofloat(edit8.Text);
x23:=Strtofloat(edit9.Text);
y21:=Strtofloat(edit10.Text);
y22:=Strtofloat(edit11.Text);
y23:=Strtofloat(edit12.Text);
 
repeat
Flag:=Input(x11,y11,x12,y12,x13,y13); 
until Flag; 
repeat 
Flag:=Input(x21,y21,x22,y22,x23,y23); 
until Flag; 
S1:=S(x11,y11,x12,y12,x13,y13);
S2:=S(x21,y21,x22,y22,x23,y23);
Procedure Output(S1,S1:real); 
Begin  
if S1>S2 
then  
begin
Label17.caption:='Á³ëüøó ïëîùó ìຠïåðøèé òðèêóòíèê.';
Label18.Caption:='Éîãî ïëîùà äîð³âíþº -> '+floattostr(s1);
end 
else 
if S2>S1 
then 
begin 
Label17.caption:='Á³ëüøó ïëîùó ìຠäðóãèé òðèêóòíèê.';
Label18.Caption:='Éîãî ïëîùà äîð³âíþº -> '+floattostr(s2);
end 
else  
begin
Label17.caption:='Òðèêóòíèêè ìàþòü îäíàêîâó ïëîùó.';
Label18.Caption:=' ïëîùà äîð³âíþº -> '+floattostr(s1);
end; 
End;
0
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
21.05.2013, 00:19
Объявление функции в процедуре нажатия кнопки? Что-то новое. Исправляй.
Delphi
1
2
3
4
Function Len (a,b,c,d:real):real; 
Begin
Len:=sqrt(sqr(a-b)+sqr(c-d)); 
End;
Вот это отдельно вынеси.
Вообще как это возможно, что функция объявляется внутри другой процедуры.
Перенеси все функции вне обработчика нажатия кнопки. Ошибок будет явно меньше.
Так же добавь Эдиты с 1 по 12.
0
 Аватар для Mixer FM
38 / 38 / 6
Регистрация: 28.11.2009
Сообщений: 96
21.05.2013, 00:23
Для начала:
все функции на верх и в таком порядке (до procedure TForm1.Button1Click(Sender: TObject):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Function Len (a,b,c,d:real):real;
Begin
Len:=sqrt(sqr(a-b)+sqr(c-d));
End;
  Function Input(var x1,y1,x2,y2,x3,y3:real):boolean;
Var a,b,c:real;
Begin
a:=Len(x1,y1,x2,y2);
b:=Len(x1,y1,x3,y3);
c:=Len(x3,y3,x2,y2);
if (a>=b+c) or (c>=a+b) or (b>=a+c)then
    End;
 
Function P(var x,y,z:real):real;
Begin
P:=x+y+z;
End;
 Function S(var a,b,c:real):real;
Var PP:real;
Begin
PP:=P(a,b,c)/2;
S:=sqrt(PP*(PP-a)*(PP-b)*(PP-c));
End;
Далее:
У вас функция
Delphi
1
 Function S(var a,b,c:real):real;
Имеет 3 параметра
а тут уже целых 6 параметров, вот и ошибка выходит, что too many
Delphi
1
2
3
until Flag;
S1:=S(x11,y11,x12,y12,x13,y13);
S2:=S(x21,y21,x22,y22,x23,y23);
Добавлено через 2 минуты
Далее я исправил вы тоже исправьте в функции:
Delphi
1
2
3
4
5
Function S(a,b,c:real):real;
 Var PP:real;
Begin
PP:=P(x,y,z)/2;
S:=sqrt(PP*(PP-a)*(PP-b)*(PP-c));
PP:=P(x,y,z)/2; тут не x,y,z должны быть те переменные которые задаются в функции , то есть a,b,c
Правильно так:
Delphi
1
2
3
4
5
6
 Function S(var a,b,c:real):real;
Var PP:real;
Begin
PP:=P(a,b,c)/2;
S:=sqrt(PP*(PP-a)*(PP-b)*(PP-c));
End;
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
21.05.2013, 00:26
Цитата Сообщение от Arkaniy Посмотреть сообщение
Объявление функции в процедуре нажатия кнопки? Что-то новое. Исправляй.
и что тут нового? Вполне приемлимо использовать функции или процедуры внутри других функций или процедур.. тут нет ничего такого дикого...
0
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
21.05.2013, 00:27
Цитата Сообщение от Arcor Посмотреть сообщение
Вполне приемлимо использовать функции или процедуры внутри других функций или процедур
Использовать, но не объявлять же.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
21.05.2013, 00:31
на счет кучи переменных я бы обратил внимание.. не проще ли массивом пользоваться тогда.. ну или создать собсвенный тип содержащий "координаты"
Delphi
1
2
3
4
5
6
type TKoordinats = record
  X, Y, Z: Real;
end;
 
 
var ololo: TKoordinats ;
...

далее используем уже переменную содержащую в себе 3 переменных.. и названы соответственно.. логически..
0
0 / 0 / 1
Регистрация: 09.03.2012
Сообщений: 23
21.05.2013, 00:32  [ТС]
ничего не получаеться((((((((
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
21.05.2013, 00:36
Цитата Сообщение от Arkaniy Посмотреть сообщение
Использовать, но не объявлять же.
дружище

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.Button1Click(Sender: TObject);
var A: Array[0..9] of Integer;
    i: Integer;
// вот функция внутри процуедуры ОБЪЯВЛЕНА!!!!!!!!!
function Summ(Ar: Array of Integer): Integer;
var i: Integer;
begin
  Result := 0;
  for i := 0 to Length(Ar) - 1 do
    Result := Result + Ar[i];
end;
// далее используем эту функцию....
begin
  for i := 0 to Length(A) - 1 do
    A[i] := Random(10);
 
  ShowMessage(IntToStr(Summ(A)));
end;
проверь а ради интереса, открой для себя новое что-то
1
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
21.05.2013, 00:40
Arcor, беру слова обратно. Не знал, что так можно. Возьму на заметку.
0
0 / 0 / 1
Регистрация: 09.03.2012
Сообщений: 23
21.05.2013, 00:42  [ТС]
ну вот..и такай тупой человек, как я может чему-то научить..
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
21.05.2013, 00:46
я тут писал программу как-то для использования векторов... там было про векторы многое что реализовано.. найдите.. и вставьте туда формулу решения площади треугольников..
тут же идет речь о треугольнике заданным по вершинам...
0
0 / 0 / 1
Регистрация: 09.03.2012
Сообщений: 23
21.05.2013, 00:52  [ТС]
спасибо конешно вам, но я уже ничего не понимаю...ужас какой!!!
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
21.05.2013, 01:10
тут немного написал..... координаты из эдитов надеюсь сами сможете подставить вместо моих значений....

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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
type
  TKoord = record
    X, Y: Real;
  end;
 
  TTriangleKoord = Array[0..2] of TKoord;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
// тут находим площадь треугольника
function Square(Koord: TTriangleKoord): Real;
begin
  Result :=0.5 * ((Koord[0].X - Koord[2].X) *
                  (Koord[1].Y - Koord[2].Y) -
                  (Koord[1].X - Koord[2].X) *
                  (Koord[0].Y - Koord[2].Y));
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var Tr1, Tr2: TTriangleKoord;
begin
  // тут задаем координаты первого треугольника
  Tr1[0].X := 0;
  Tr1[0].Y := 0;
 
  Tr1[1].X := 1;
  Tr1[1].Y := 1;
 
  Tr1[2].X := 2;
  Tr1[2].Y := 2;
 
  // тут задаем второго...
  Tr2[0].X := 2;
  Tr2[0].Y := 2;
 
  Tr2[1].X := 3;
  Tr2[1].Y := 3;
 
  Tr2[2].X := 4;
  Tr2[2].Y := 4;
  // а тут сравниваем чья площадь больше... и выводим результат
  if Square(Tr1) > Square(Tr2) then
    ShowMessage('Площадь первого больше чем второго')
  else
    ShowMessage('Площадь первого меньше чем второго')
end;
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.05.2013, 01:10
Помогаю со студенческими работами здесь

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

Вычислить площади двух треугольников, и определить, какой из треугольников имеет большую площадь
Два треугольника заданные координатами своих вершин a, b, c. Вычислить площади треугольников, используя формулы Герона, и определить, какой...

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

Определить, какой из треугольников имеет большую площадь
Программы функции Даны координаты вершин двух треугольников. Определить, какой из них имеет большую площадь.

Определить, какой из треугольников имеет большую площадь
Даны квадраты вершин двух треугольников. Определить какой из них имеет большую площадь.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru