Программа проверена на Pascal ABC и ABC.NET. Если нужно, чтобы программа работала не только с целыми числами - поменяй integer на real в первых трёх строчках после Var.
ПРАВИЛЬНЫЙ алгоритм: 1. Находим координаты вектора каждой стороны по координатам вершин стороны (пусть эти координаты - х1,у1 и х2,у2): х=х2-х1, у=у2-у1 2. Находим длину каждой стороны: длина=корень квадратный (х*х+у*у) 3. Периметр=сумма длин всех сторон
Если четырехугольник в трехмерном пространстве, везде добавляем координату z: 1z=z2-z1 2корень квадратный (х*х+у*у+z*z)
Пример на языке С: (имеется в виду, что все переменные уже объявлены где-то выше)
1) Program massiv1; Uses Crt; Type Mas=Array [1..10] of integer; Var a:Mas; d,s:integer; Procedure Vvod(Var x:Mas); Var i:Integer; Begin For i:=1 To 10 Do x[i]:=Random(50); End; Procedure Vivod(Var x:Mas); Var i:Integer; Begin For i:=1 To 10 do Write(x[i]:4); writeln; End; Procedure p1(Var x:Mas; d:integer; Var s:integer); Var i:Integer; Begin s:=0; For i:=1 To 10 Do If x[i] mod d=0 Then s:=s+x[i]; End; Begin Vvod(a); Vivod(a); write('d = '); readln(d); p1(a,d,s); Writeln('Сумма элементов, кратных ',d,' = ',s); End.
2) Program massiv2; Uses Crt; Type Mas=Array [1..10] of Real; Var a:Mas; k:integer; Procedure Vvod(Var x:Mas); Var i:Integer; Begin For i:=1 To 10 Do x[i]:=30*Random-20;{(B-A)*random+A} End; Procedure Vivod(Var x:Mas); Var i:Integer; Begin For i:=1 To 10 do Write(x[i]:8:2); writeln; End; Procedure p2(Var x:Mas;Var k:integer); Var i:Integer; Begin k:=0; For i:=1 To 10 Do If x[i]<0 Then k:=k+1; End; Begin Vvod(a); Vivod(a); p2(a,k); Writeln('Количество отрицательных элементов = ',k); End.
Пример: -13.77 -11.34 -2.35 7.69 -18.85 -12.48 -6.11 -17.10 7.12 -9.60 Количество отрицательных элементов = 8
3) Program massiv3; Uses Crt; Type Mas=Array [1..10] of Real; Var a:Mas; p:real; Procedure Vvod(Var x:Mas); Var i:Integer; Begin For i:=1 To 10 Do x[i]:=30*Random;{(B-A)*random+A} End; Procedure Vivod(Var x:Mas); Var i:Integer; Begin For i:=1 To 10 do Write(x[i]:8:2); writeln; End; Procedure p3(Var x:Mas;Var p:real); Var i:Integer; Begin p:=1; For i:=1 To 10 Do If x[i]<10 Then p:=p*x[i]; End; Begin Vvod(a); Vivod(a); p3(a,p); Writeln('Произведение элементов, меньших десяти = ',p:8:3); End.
Пример: 24.36 22.50 3.31 5.50 21.68 8.22 19.89 24.86 2.69 23.78 Произведение элементов, меньших десяти = 402.027
Если нужно, чтобы программа работала не только с целыми числами - поменяй integer на real в первых трёх строчках после Var.