Другие языки программирования и технологии

Помогите решить задачу на Паскале или basic.

Найти периметр четырехугольника по координатам его вершин. Использовать функцию нахождения длинны отрезка по его координатам начала и конца. Если можно, сразу кинуть код программы.
Очень нужно помощь!
Egor Fomichenko
Egor Fomichenko
706
Sub GetP()
Dim x1, x2, x3, x4, y1, y2, y3, y4 As Double
x1 = 1: x2 = 5: x3 = 7: x4 = 6
y1 = -1: y2 = 15: y3 = 67: y4 = 66
Dim p As Double
p = GetLen(x1, x2, y1, y2, 0, 0) + GetLen(x2, x3, y2, y3, 0, 0) + GetLen(x3, x4, y3, y4, 0, 0) + GetLen(x4, x1, y4, y1, 0, 0)
Debug.Print p
End Sub

Function GetLen(ByVal x1 As Double, ByVal x2 As Double, ByVal y1 As Double, ByVal y2 As Double, ByVal z1 As Double, ByVal z2 As Double)
GetLen = ((x2 - x1) ^ 2 + (y2 - y1) ^ 2 + (z2 - z1) ^ 2) ^ 0.5
End Function
Мерген Карабашов
Мерген Карабашов
6 640
Лучший ответ
длина стороны = корень квадратный из ((x1-x2)^2+(y1-y2)^2+(z1-z2)^2), если в пространстве. А если на плоскости, то то же без 3-й координаты.
периметр- сумма длин всех сторон, значт а+б+с+в, где а. б, с, д - стороны
в программе запрашивай координаты сторон и вычисляй
на паскале - строк 20, на бейсе - столько же)
program Project2;

uses
SysUtils;
var x,y:array[0..3] of Extended;
i:Integer;
s:Extended;
function lineLen(x_,y_,x1_,y1_:extended):extended;
begin
result:=Sqrt(sqr(x_-x1_)+sqr(y_-y1_));

end;

begin
for i:=0 to 3 do begin
write('Enter x: ',i);Readln(x{i});
write('Enter y: ',i);Readln(y{i});
end;
s:=0;
for i:=0 to 2 do begin
s:=lineLen(x{i},y{i},x[i+1],y[i+1]);

end;
s:=s+lineLen(x[0],y[0],x[3],y[3]);
Writeln('perimeter: ',s);
Readln;

end.
заменяем фигурные скобки квадратными
Рати Левидзе
Рати Левидзе
1 400
Формат входных данных, ввод с файла или консоли? Уточняйте!
Egor Fomichenko По условию задачи это значения не имеет. Желательно, что бы программа была написана в виде подпрограммы.