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

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

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


Информатика (22 баллов) | 63 просмотров
Дан 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: array of array of integer;
  i,j,x,y,m,p,pro,c:integer;  begin
Randomize;
pro:=1;
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);  
for  m:=0 to i-1 do begin  
writeln();
     for  p:=0 to j-1 do   begin                     
     random(c,x,y,a[m,p]);    {Заполнить матрицу случайными числами}         
 if (m<>p) then pro:=pro*a[m,p]; {Вычислить произведение элементов массива, лежащих вне главной диагонали.}
          write (a[m,p]:3,' ':3);
           end; 
         end;  

 writeln('pro=',pro);        
  a:=NIL;            
end.
// ABC Pascal

(724 баллов)