Процедура заполняет матрицы одинаковыми значениями (решено)
 Добавлено: 08.06.2016 22:59:16
Добавлено: 08.06.2016 22:59:16- Код: Выделить всё
- const N = 2; M = 5;
 type arr = array[1..N,1..M] of integer;
 var
 one,two: arr;
 i,j: byte;
 
 procedure matrix(var a: arr);
 begin
 randomize;
 for i:=1 to N do
 for j:=1 to M do begin
 a[i,j] := random(100);
 end;
 end;
 
 procedure printer(var a: arr);
 begin
 for i:=1 to N do begin
 for j:=1 to M do
 write(a[i,j]:4);
 writeln;
 end;
 end;
 
 begin
 matrix(one);
 printer(one);
 writeln;
 matrix(two);
 printer(two);
 end.
Почему оба массива заполняются одинаковыми значениями?
- Код: Выделить всё
- 61 48 79 82 78
 53 10 13 35 14
 61 48 79 82 78
 53 10 13 35 14
Однако если сделать так:
- Код: Выделить всё
 ...
 procedure matrix(var a: arr; b: integer);
 begin
 randomize;
 for i:=1 to N do
 for j:=1 to M do begin
 a[i,j] := random(b);
 end;
 end;
 ...
 ...
 matrix(one,100);
 matrix(two,200);
 ....
то массивы заполняются по-разному. Если передавать одинаковый второй параметр, то заполняются одинаково.