Program primer;procedure random(c,x,y:integer; var r:integer); begin case c of 1 : r:=Random(ABS(Y)+ABS(x)+1)+x; 2 : r:=Random(ABS(Y)+ABS(x)+1)+y; 3 : r:=Random(Y-x+1)+x; 4 : r:=Random(x-y+1)+y; 5 : r:=Random(x+y); 6 : r:=Random(ABS(x+y))-ABS(x+y); 7 : r:=x; 8 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(x); 9 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(y); end; end;var a,b: array of array of integer; i,j,x,y,c,m,p,sum:integer; beginRandomize;sum:=0;writeln('Кол-во строк и столбцов массива? //X,Y\\ ');read(i,j); //Размерность массиваwriteln('Диапазон чисел //от X,до Y\\ '); read(x,y); //и диапазон генерации вводятся с клавиатуры.if (x=y) thenc:=7elseif(x<0) and (y<0) then if (x<y) then c:=8elsec:=9elseif (x=0) or (y=0) then if(x<0) or (y<0) then c:=6elsec:=5elseif(x<0) or (y<0) then if (x<y) then c:=1else c:=2elseif (x<y) then c:=3else c:=4;SetLength(a,i);for m:=0 to i-1 do SetLength(a[m],j); SetLength(b,i); for m:=0 to i-1 do SetLength(b[m],j); for m:=0 to i-1 do begin writeln(); for p:=0 to j-1 do begin random(c,x,y,a[m,p]); {Заполнить двумерный массив случайными числами.} sum:=sum+a[m,p]; {вычисляет сумму всех элементов массива} write (a[m,p]:3,' ':3); end; end; c:=0; writeln('summa=',sum); for m:=0 to i-1 do begin {Затем организовать новый массив В }writeln(); for p:=0 to j-1 do begin if (a[m,p] <0) then begin b[m,p]:=1; {в котором заменить отрицательные элементы исходного массива на 1} inc(c); {Подсчитать количество замен. } end else b[m,p]:=a[m,p]; {а значения остальных элементов оставить без изменения } write(b[m, p]:3, ' ':3); end; end; writeln('kol=',c); a:=NIL; b:=NIL; end.// ABC Pascal