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

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

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

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


Новичок
*

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

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


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


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

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

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


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

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

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


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


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

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

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


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


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


Новичок
*

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

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


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


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

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

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


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

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

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

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


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





- Текстовая версия 27.04.2024 1:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name