задача про 5-угольник (через функции) |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
задача про 5-угольник (через функции) |
Catherinektz |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Екатерина Репутация: 1 |
Разработать программу расчета периметра и площади пятиугольника заданного координатами своих вершин.
Использовать две подпрограммы-функции. Одна рассчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин (формула Герона). Предусмотреть проверочные примеры. |
TarasBer |
Сообщение
#2
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> площадь треугольника по заданным координатам вершин (формула Герона)
Лооол, какой дурак считает площадь по координатам через формулу Герона? Вам гланды выравать через задницу не заставляют в качестве домашнего задания? sqrt(|A|2*|B|2-<A,B>2) - это формула площади для многомерного случая. Для двумерного - тупо <A,tr(B)> -------------------- |
Catherinektz |
Сообщение
#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. |
TarasBer |
Сообщение
#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 - -------------------- |
Catherinektz |
Сообщение
#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; |
TarasBer |
Сообщение
#6
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Мы не можем помочь, потому что разговариваем с ботом, который ваще не читает то, что мы пишем.
-------------------- |
Catherinektz |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Екатерина Репутация: 1 |
Я читаю, что вы пишите, но не понимаю, и от задания не могу отойти ни влево, ни вправо, иначе расстрел!!!
|
TarasBer |
Сообщение
#8
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Я ещё раз повторяю: выложите код в нормальном виде, то есть внутри тега code=pas, потому что иначе я ничего не пойму.
А ещё тут опечатка: > St1:=DL(X[ 1 ],Y[ I ],X[I+1],Y[I+1]); А сказать преподу, что предлагаемый способ - лажа, стесняться не надо. Сообщение отредактировано: TarasBer - -------------------- |
Catherinektz |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Екатерина Репутация: 1 |
Вот вся задача!!!Я защитила на "5". |
Текстовая версия | 27.04.2024 1:03 |