Определить больший по площади четырехугольник - PascalABC.NET
Формулировка задачи:
Не могу решить на паскале выручайте
Известны координаты точек A, B, C, D и K, L, M, N, образуют два выпуклых четырехугольниках. Определить больший по площади четырехугольник.
Решение задачи: «Определить больший по площади четырехугольник»
textual
Листинг программы
type Rpoint=record x,y:real; end; var a,b,c,d,k,l,m,n:Rpoint; p1,p2,s1,s2:real; function Dlina(x,y:RPoint):real:=sqrt(sqr(x.x-y.x)+sqr(x.y-y.y)); function SemiPerimetr(x,y,z:Rpoint):real:=(Dlina(x,y)+Dlina(y,z)+Dlina(z,x))/2; procedure Read4(s:string;var t1,t2,t3,t4:Rpoint); begin writeln(s); write('Вершина 1:');readln(t1.x,t1.y); write('Вершина 2:');readln(t2.x,t2.y); write('Вершина 3:');readln(t3.x,t3.y); write('Вершина 4:');readln(t4.x,t4.y); end; begin Read4('Первый четырехугольник. Введите воординаты каждой из вершин через пробел',a,b,c,d); p1:=SemiPerimetr(a,b,c);p2:=SemiPerimetr(a,c,d); s1:=sqrt(p1*(p1-Dlina(a,b))*(p1-Dlina(b,c))*(p1-Dlina(c,a)))+ sqrt(p2*(p2-Dlina(a,c))*(p2-Dlina(c,d))*(p2-Dlina(d,a))); writeln('Площадь:',s1); Read4('Второй четырехугольник. Введите воординаты каждой из вершин через пробел',k,l,m,n); p1:=SemiPerimetr(k,l,m);p2:=SemiPerimetr(k,m,n); s2:=sqrt(p1*(p1-Dlina(k,l))*(p1-Dlina(l,m))*(p1-Dlina(m,k)))+ sqrt(p2*(p2-Dlina(k,m))*(p2-Dlina(m,n))*(p2-Dlina(n,k))); writeln('Площадь:',s2); if s1>s2 then writeln('площадь первого четырехугольника больше площади второго') else if s1<s2 then writeln('площадь первого четырехугольника меньше площади второго') else writeln('площади четырехугольников равны'); end.
Объяснение кода листинга программы
Список элементов кода:
- Тип Rpoint, который определяет структуру данных для представления точки в пространстве.
- Объявление переменных a, b, c, d, k, l, m, n типа Rpoint. Эти переменные используются для хранения координат вершин четырехугольников.
- Объявление переменных p1, p2, s1, s2 типа real. Эти переменные используются для хранения полупериметра и площади четырехугольников.
- Функция Dlina, которая вычисляет длину стороны треугольника по координатам вершин.
- Функция SemiPerimetr, которая вычисляет полупериметр четырехугольника по координатам его вершин.
- Процедура Read4, которая считывает координаты вершин четырехугольника с помощью пользовательского ввода.
- Основной блок кода, который сначала считывает координаты вершин первого четырехугольника, затем вычисляет его площадь и полупериметр.
- Затем считываются координаты вершин второго четырехугольника, вычисляется его площадь и полупериметр.
- Сравниваются площади двух четырехугольников, и выводится соответствующее сообщение.
- Код завершается.