IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задача про 5-угольник (через функции)
Catherinektz
сообщение 8.12.2011 16:00
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Екатерина

Репутация: -  1  +


Разработать программу расчета периметра и площади пятиугольника заданного координатами своих вершин.
Использовать две подпрограммы-функции. Одна рассчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин (формула Герона). Предусмотреть проверочные примеры.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 8.12.2011 16:14
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> площадь треугольника по заданным координатам вершин (формула Герона)

Лооол, какой дурак считает площадь по координатам через формулу Герона?
Вам гланды выравать через задницу не заставляют в качестве домашнего задания?

sqrt(|A|2*|B|2-<A,B>2) - это формула площади для многомерного случая. Для двумерного - тупо <A,tr(B)>


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catherinektz
сообщение 9.12.2011 8:44
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Екатерина

Репутация: -  1  +


У меня есть решение этой задачи, но что-то работает не так. И это не домашняя работа, а контрольная!!!
Program PP21_KEA;
Const N=5;
Var P,S,St1,St2,St3,Streyg:Real;
X,Y: Array [1..N] Of Real;
I,K: Byte;
Function DL(x1,y1,x2,y2:Real):Real;
Begin
DL:=SQRT((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
End;
Function PL(P,A,B,C:Real):Real;
Begin
P:=P/2;
PL:=SQRT(P*(P-A)*(P-B)*(P-C));
End;
Begin
For I:=1 To N Do Begin
Write('X[',I,']=');
ReadLn(X[I]);
Write('Y[',I,']=');
ReadLn(Y[I]);
End;
K:=1;
For I:=1 To N Do Begin
K:=I+1;
If K=6 Then K:=1;
P:=P+DL(X[I],Y[I],X[K],Y[K]);
End;
WriteLn('P=',P:6:2);
S:=0;
For I:=1 To N-2 Do Begin
St1:=DL(X[1],Y[I],X[I+1],Y[I+1]);
St2:=DL(X[I+1],Y[I+1],X[I+2],Y[I+2]);
St3:=DL(X[1],Y[I],X[I+2],Y[I+2]);
P:=St1+St2+St3;
STreyg:=PL(P,St1,St2,St3);
S:=S+STreyg;
End;

WriteLn('S=',S:6:2);
ReadLn;
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 9.12.2011 9:14
Сообщение #4


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Используй тег [ code=pas ], а то мне ничего не понятно в таком форматировании.

И для площади треугольника используй


((X[i]-X[k])*(Y[j]-Y[k]) - (X[j]-X[k])*(Y[i]-Y[k]))*0.5

А считать площадь треугольника по координатам по формуле Герона - это надо сильно обмазаться героином, извините за каламбур, потому что в данном случае это идиотский способ.

Сообщение отредактировано: TarasBer - 9.12.2011 9:16


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catherinektz
сообщение 12.12.2011 8:56
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Екатерина

Репутация: -  1  +


Вот у меня есть две функции, а что дальше делать не знаю!ПОМОГИТЕ!!!

Function DL(x1,y1,x2,y2:Real):Real;
Begin
DL:=SQRT((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
End;
Function PL(P,A,B,C:Real):Real;
Begin
P:=P/2;
PL:=SQRT(P*(P-A)*(P-B)*(P-C));
End;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 12.12.2011 9:38
Сообщение #6


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Мы не можем помочь, потому что разговариваем с ботом, который ваще не читает то, что мы пишем.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catherinektz
сообщение 12.12.2011 20:43
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Екатерина

Репутация: -  1  +


Я читаю, что вы пишите, но не понимаю, и от задания не могу отойти ни влево, ни вправо, иначе расстрел!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 13.12.2011 9:24
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Я ещё раз повторяю: выложите код в нормальном виде, то есть внутри тега code=pas, потому что иначе я ничего не пойму.

А ещё тут опечатка:
> St1:=DL(X[ 1 ],Y[ I ],X[I+1],Y[I+1]);

А сказать преподу, что предлагаемый способ - лажа, стесняться не надо.

Сообщение отредактировано: TarasBer - 13.12.2011 9:25


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catherinektz
сообщение 1.01.2012 20:27
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Екатерина

Репутация: -  1  +



Program PP21_KEA;
Const N=5;
Var P,S,St1,St2,St3,Streyg:Real;
X,Y: Array [1..N] Of Real;
I,K: Byte;
Function DL(x1,y1,x2,y2:Real):Real;
Begin
DL:=SQRT((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
End;
Function PL(P,A,B,C:Real):Real;
Begin
P:=P/2;
PL:=SQRT(P*(P-A)*(P-B)*(P-C));
End;
Begin
For I:=1 To N Do Begin
Write('X[',I,']=');
ReadLn(X[I]);
Write('Y[',I,']=');
ReadLn(Y[I]);
End;
K:=1;
For I:=1 To N Do Begin
K:=I+1;
If K=6 Then K:=1;
P:=P+DL(X[I],Y[I],X[K],Y[K]);
End;
WriteLn('P=',P:6:2);
S:=0;
For I:=1 To N Do Begin
St1:=DL(X[1],Y[1],X[I+1],Y[I+1]);
St2:=DL(X[I+1],Y[I+1],X[I+2],Y[I+2]);
St3:=DL(X[1],Y[1],X[I+2],Y[I+2]);
P:=St1+St2+St3;
STreyg:=PL(P,St1,St2,St3);
S:=S+STreyg;
End;
WriteLn('S=',S:6:2);
ReadLn;
End.



Вот вся задача!!!Я защитила на "5".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 19:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"