Создание двумерного массива, все элементы которого различны - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Создание двумерного массива, все элементы которого различны»

textual
Листинг программы
const max=10;
var a:array[1..max,1..max] of integer;
    b:array[1..max*max+1] of integer;
    n,m,k,i,j,p,x:integer;
    f:boolean;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',max,' m=');
readln(m);
until m in [1..max];
repeat
write('Количество столбцов до ',max,' n=');
readln(n);
until n in [1..max];
b[1]:=-2*max*max+random(4*max*max+1);
k:=1;
for i:=1 to m do
for j:=1 to n do
 begin
  repeat
  x:=-2*max*max+random(4*max*max+1);
  f:=true;
  p:=1;
  while(p<=k)and f do
  if x=b[p] then f:=false
  else inc(p);
  until f;
  a[i,j]:=x;
  inc(k);
  b[k]:=x;
 end;
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
readln
end.

Объяснение кода листинга программы

Данный код на Turbo Pascal создает двумерный массив, все элементы которого различны.

  1. В начале кода объявляются необходимые переменные: максимальное значение для строк и столбцов (макс), двумерный массив a, одномерный массив b, переменные n, m, k, i, j, p и x, а также логическое значение f.
  2. Затем происходит инициализация массива a случайными значениями.
  3. Далее идет цикл, который повторяется столько раз, сколько строк и столбцов в массиве. Внутри цикла вычисляется индекс текущего элемента массива a и b, а также переменная p, которая отслеживает текущий элемент в цикле.
  4. Пока значение переменной p меньше или равно k и значение переменной f равно true, происходит проверка: если текущий элемент в массиве a равен значению b[p], то значение переменной f устанавливается в false, иначе значение переменной p увеличивается на 1.
  5. После того как значение переменной f становится false, значение переменной p увеличивается на 1.
  6. После завершения внутреннего цикла происходит установка значения текущего элемента массива a в значение x.
  7. Затем происходит повторное вычисление индекса текущего элемента массива a и b, и значение переменной p снова сбрасывается на 1.
  8. После окончания внешнего цикла выводится содержимое каждой строки массива a.
  9. В конце кода выводится сообщение с количеством строк и столбцов, а также сгенерированным значением x.

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы