Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
| Goldgryx |
17.12.2010, 7:21
Сообщение
#1
|
|
Пользователь Группа: Пользователи Сообщений: 2 Регистрация: 17.12.2010 Пользователь №: 23 477 |
Не знаю как сделать
Язык программирования: Паскаль Разработать программу расчёта периметра и площади пятиугольника заданного координатами своих вершин. Использовать две подпрограммы-функции (Function). Одна расчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин(Формула герона). |
| Goldgryx |
17.12.2010, 12:45
Сообщение
#2
|
|
Пользователь Группа: Пользователи Сообщений: 2 Регистрация: 17.12.2010 Пользователь №: 23 477 |
Вот попробовал написать сам, проверьте пожалуйста
type pType = record X, Y : real; end; function Len(P1, P2 : pType) : Real; begin Len := Sqrt((P1.X - P2.X)*(P1.X - P2.X) + (P1.Y - P2.Y)*(P1.Y - P2.Y)); end; function Pl(P1, P2, P3 : pType) : Real; var a, b, c, p : Real; begin a := Len(P1, P2); b := Len(P2, P3); c := Len(P1, P3); p := (a + b + c) / 2; Pl := Sqrt(p * (p - a) * (p - end; var P : array [1..5] of pType; begin Write('Введите через пробел координаты 1 точки: '); ReadLn(P[1].X, P[1].Y); Write('Введите через пробел координаты 2 точки: '); ReadLn(P[2].X, P[2].Y); Write('Введите через пробел координаты 3 точки: '); ReadLn(P[3].X, P[3].Y); Write('Введите через пробел координаты 4 точки: '); ReadLn(P[4].X, P[4].Y); Write('Введите через пробел координаты 5 точки: '); ReadLn(P[5].X, P[5].Y); WriteLn('Площадь пятиугольника = ', Pl(P[1], P[2], P[3]) + Pl(P[1], P[3], P[4]) + Pl(P[1], P[4], P[5]):6:3); end. |
| PolPoll |
23.12.2010, 8:46
Сообщение
#3
|
![]() :) Группа: Главные администраторы Сообщений: 5 858 Регистрация: 24.11.2005 Из: Москва Пользователь №: 5 327 |
Надеюсь, пятиугольник выпуклый...
в формуле Герона в последней скобке надо не -1, а -c -------------------- |
![]() ![]() |
|
Текстовая версия | Сейчас: 20.5.2012, 23:53 |