//Визуально разделил циклы, чтобы было более читаемо
var ar:array[1..10] of integer; max,i:integer; begin; randomize; //чтобы random() работал как надо writeln('Array');
for i:=1 to 10 do begin; ar[i]:=random(-10,10); //случайное число от -10 до 10 write(ar[i]:4); end;
for i:=1 to 10 do //"проходим" через весь массив if (ar[i]<0) and (max<abs(ar[i])) then max:=abs(ar[i]); {если элемент массива меньше нуля и его модуль больше максимума тогда записать модуль этого числа в максимум}
writeln; writeln('Max:-',max); //выводим на всякий случай максимум
writeln('Final array:'); for i:=1 to 10 do //снова проходим по всему массиву begin; if ar[i]=-max then ar[i]:=0; {если элемент равен отрицательному максимуму(мы брали модуль) присвоить ему 0} write(ar[i]:4); end; end.
// PascalABC.Net 3.0, сборка 1066 type Point=record x,y:double; end;
procedure GetPoint(c:char; var M:point); begin Write('введите координаты точки ',c,': '); Read(M.x,M.y) end;
function L(A,B:Point):double; begin Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y)) end;
function S(A,B,C:Point):double; var p,la,lb,lc:double; begin la:=L(A,B); lb:=L(B,C); lc:=L(C,A); if (la+lb>lc) and (la+lc>lb) and (lb+lc>la) then begin p:=0.5*(la+lb+lc); Result:=sqrt(p*(p-la)*(p-lb)*(p-lc)) end else Result:=0 end;
var A,B,C,D:Point; S1,S2:double;
begin GetPoint('A',A); GetPoint('B',B); GetPoint('C',C); GetPoint('D',D); S1:=S(A,B,C); if S1=0 then Write('По точкам А,В,С нельзя построить треугольник') else begin S2:=S(C,D,A); if S2=0 then Write('По точкам C,D,A нельзя построить треугольник') else Writeln('Площадь четырехугольника равна ',S1+S2) end end.
Тестовое решение: введите координаты точки A: -5 -7 введите координаты точки B: -2 4 введите координаты точки C: 5 9 введите координаты точки D: 9 -3 Площадь четырехугольника равна 123
var ar:array[1..10] of integer;
max,i:integer;
begin;
randomize; //чтобы random() работал как надо
writeln('Array');
for i:=1 to 10 do
begin;
ar[i]:=random(-10,10); //случайное число от -10 до 10
write(ar[i]:4);
end;
for i:=1 to 10 do //"проходим" через весь массив
if (ar[i]<0) and (max<abs(ar[i])) then max:=abs(ar[i]);
{если элемент массива меньше нуля и его модуль больше максимума тогда записать модуль этого числа в максимум}
writeln;
writeln('Max:-',max); //выводим на всякий случай максимум
writeln('Final array:');
for i:=1 to 10 do //снова проходим по всему массиву
begin;
if ar[i]=-max then ar[i]:=0;
{если элемент равен отрицательному максимуму(мы брали модуль) присвоить ему 0}
write(ar[i]:4);
end;
end.
type
Point=record
x,y:double;
end;
procedure GetPoint(c:char; var M:point);
begin
Write('введите координаты точки ',c,': ');
Read(M.x,M.y)
end;
function L(A,B:Point):double;
begin
Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;
function S(A,B,C:Point):double;
var
p,la,lb,lc:double;
begin
la:=L(A,B); lb:=L(B,C); lc:=L(C,A);
if (la+lb>lc) and (la+lc>lb) and (lb+lc>la) then begin
p:=0.5*(la+lb+lc);
Result:=sqrt(p*(p-la)*(p-lb)*(p-lc))
end
else
Result:=0
end;
var
A,B,C,D:Point;
S1,S2:double;
begin
GetPoint('A',A);
GetPoint('B',B);
GetPoint('C',C);
GetPoint('D',D);
S1:=S(A,B,C);
if S1=0 then Write('По точкам А,В,С нельзя построить треугольник')
else begin
S2:=S(C,D,A);
if S2=0 then Write('По точкам C,D,A нельзя построить треугольник')
else Writeln('Площадь четырехугольника равна ',S1+S2)
end
end.
Тестовое решение:
введите координаты точки A: -5 -7
введите координаты точки B: -2 4
введите координаты точки C: 5 9
введите координаты точки D: 9 -3
Площадь четырехугольника равна 123