Предмет: Информатика, автор: logvinovadiana6

помогите найти ошибку))

Приложения:

eugene7870: попробуй закомментить эту строку
logvinovadiana6: S1=area(a, f, e);
eugene7870: что?
eugene7870: закомментить
eugene7870: и посмотри, будут ли еще ошибки после нее
eugene7870: стой
eugene7870: дк у тебя area, это процедура
eugene7870: она ничего не возвращает
eugene7870: если ты хочешь, чтобы area, что то возвращала и можно было это значение прировнять переменной, то ты должна ее объявлять как функцию
eugene7870: ты понимаешь?

Ответы

Автор ответа: ulyanavafina
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
0
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

Похожие вопросы
Предмет: Английский язык, автор: bnm0402iua