ulyanavafina
Точки с запятой проверь, везде поставила.
0 votes Thanks 0
logvinovadiana6
да, там же написано не правильный идентификатор
srzontmp
Поэтому и пишет идентификатор, так как area - это не функция, а процедура. И вообще, не понятна сама логика программы. Что Вы хотите посчитать? Какое назначение переменных a,b,c,d,e,f,m,n ? Они у Вас нигде в программе не задаются, соответственно, равны нулю. Считываете значения переменных S1, S2,S3,S4 а потом пытаетесь изменить значения этих переменных S1:=area( ); В общем, мне не понятно, что должна делать программа.
srzontmp
Даже если Вы оформите area как функцию, которая возвращает площадь треугольника, заданного длинами сторон x y z , то значения S1, S2, S3, S4 - будут равны нулю, т.к. значения переменных a,b,c,d,e,f,m,n равны нулю.
logvinovadiana6
нужно найти площадь четырехугольника суммой площадей ,заключенных в нем, треугольников
srzontmp
Четырехугольник разбивается на 2 треугольника, а не на 4 треугольника. Если заданы только длины четырех сторон, то можно построить несколько четырехугольников с такими длинами сторон, и площади у них будут разными. Если Вам заданы координаты (x,y) всех 4 вершин, то тогда единственное решение. Если это в пространстве, то есть координаты (x,y,z), то нужно проверять, лежат ли все 4 точки в одной плоскости.
srzontmp
Пример того, что четырехугольник однозначно не определяется длинами сторон - это квадрат и ромб с равными длинами сторон, площади разные у ромба и квадрата.
srzontmp
В Вашей задаче, скорее всего, должны вводиться координаты четырех вершин (x,y) четырехугольника, Вы должны посчитать площадь четырехугольника, разбив его на два треугольника.
logvinovadiana6
спасибо конечно, но я уже и сама справилась))
srzontmp
Function sq(var x1,y1,x2,y2,x3,y3: real):real; begin // вычисляем площадь с помощью // векторного произведения sq:=abs((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1))/2; end; // основная программа var x1,y1,x2,y2,x3,y3,x4,y4,s:real; begin write('координаты 4 вершин x1 y1 x2 y2 x3 y3 x4 y4 через пробел: '); readln(x1,y1,x2,y2,x3,y3,x4,y4); s:=sq(x1,y1,x2,y2,x3,y3)+sq(x1,y1,x4,y4,x3,y3); writeln('площадь четырехугольника S = ',s); end.
координаты 4 вершин x1 y1 x2 y2 x3 y3 x4 y4 через пробел: 2 2 4 4 7 4 6 2 площадь четырехугольника S = 7
Answers & Comments
begin
// вычисляем площадь с помощью
// векторного произведения
sq:=abs((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1))/2;
end;
// основная программа
var x1,y1,x2,y2,x3,y3,x4,y4,s:real;
begin
write('координаты 4 вершин x1 y1 x2 y2 x3 y3 x4 y4 через пробел: ');
readln(x1,y1,x2,y2,x3,y3,x4,y4);
s:=sq(x1,y1,x2,y2,x3,y3)+sq(x1,y1,x4,y4,x3,y3);
writeln('площадь четырехугольника S = ',s);
end.
координаты 4 вершин x1 y1 x2 y2 x3 y3 x4 y4 через пробел: 2 2 4 4 7 4 6 2
площадь четырехугольника S = 7