Заполнить двумерный массив случайными числами. Размерность массива и диапазон генерации...

0 голосов
93 просмотров

Заполнить двумерный массив случайными числами. Размерность массива и диапазон генерации вводятся с клавиатуры. Составить программу, которая вычисляет сумму всех элементов массива.
Затем организовать новый массив В, в котором заменить отрицательные элементы исходного массива на 1, а значения остальных элементов оставить без изменения. Подсчитать количество замен.


Информатика (22 баллов) | 93 просмотров
0

в каком формате диапазон чисел указываться будет?

0

от и до или от о (не изменно) и до

0

а, да, коли там отрицательные есть... вопрос более не актуален.

0

какой язык?

Дан 1 ответ
0 голосов

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;  begin
Randomize;
sum:=0;
writeln('Кол-во строк и столбцов массива? //X,Y\\  ');
read(i,j); //Размерность массива
writeln('Диапазон чисел //от X,до Y\\ '); 
read(x,y); //и диапазон генерации вводятся с клавиатуры.
if (x=y) then
c:=7
else
if(x<0) and (y<0) then <br>if (xc:=8
else
c:=9
else
if (x=0) or (y=0) then 
if(x<0) or (y<0) then <br>c:=6
else
c:=5
else
if(x<0) or (y<0) then <br>if (xc:=1
else 
c:=2
else
if (xc:=3
else 
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  <br>       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

(724 баллов)