{uses Crt;} {Для древних сред Паскаль, работающих в DOS-режиме, снять комментарии в операторах uses, ClrScr, ReadKey } const n = 9; var x: array[1..n, 1..n] of real; y: array[1..n*(n-1) div 2] of real; i, j, k: integer; max, min, d: real;
begin Randomize; {ClrScr;} Writeln('Исходный массив'); for i := 1 to n do begin for j := 1 to n do begin x[i, j] := 100*Random - 50; Write(x[i, j]:4:0) end; Writeln end; { задание 1 } k:=0; for i:=2 to n do for j:=1 to i-1 do if x[i,j]<0 then begin Inc(k); y[k]:=x[i,j] end; Writeln('Сформированный одномерный массив'); for i:=1 to k do Write(y[i]:4:0); Writeln; { задание 2 } max:=y[1]; min:=max; for i:=2 to k do if y[i]>max then max:=y[i] else if y[i]<min then min:=y[i]; d:=max-min; i:=1; while (abs(y[i])<=d) and (i<=k) do Inc(i); if i<=k then begin d:=y[1]; y[1]:=y[i]; y[i]:=d end; Writeln('Результирующий одномерный массив'); for i:=1 to k do Write(y[i]:4:0); Writeln; {ReadKey} end.
Const
n = 12;
var
i, p: integer;
a: array[1..n] of integer;
begin
p := 1;
for i := 1 to n do
begin
a[i] := random(150) - 100;
write(a[i], ' ');
if a[i] > 0 then p := p * a[i];
end;
writeln;
writeln('P = ', p);
end.
2)uses crt;
var a:array [1..10] of integer;
i:integer;
begin
clrscr;
randomize;
{генерируем и выводим новый массив}
for i:=1 to 10 do
begin
a[i]:=random(9)+1;
write(a[i]:3);
end;
writeln;
{в цикле проверяем если счетчик i делится на 2 ( признак четности) то либо возводим в степень либо удваиваем}
for i:=1 to 10 do
begin
if (i mod 2=0 ) then a[i]:=a[i]*a[i]
else a[i]:=a[i]*2;
end;
{выводим конечный массив}
for i:=1 to 10 do
write(a[i]:3);
readkey;
end.
3)var arr:array[1..20] of integer;
max,q:integer;
begin
writeln ('ARRAY: ');
for q:=1 to 20 do
begin
arr[q]:=random(80);
write (arr[q]:3);
end;
max:=arr[1];
for q:=2 to 20 do
if arr[q]>max then max:=arr[q];
writeln;
writeln('MAX = ',max);
end.