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

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

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

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

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

textual
Листинг программы
  1. const max=10;
  2. var a:array[1..max,1..max] of integer;
  3.     b:array[1..max*max+1] of integer;
  4.     n,m,k,i,j,p,x:integer;
  5.     f:boolean;
  6. begin
  7. clrscr;
  8. randomize;
  9. repeat
  10. write('Количество строк до ',max,' m=');
  11. readln(m);
  12. until m in [1..max];
  13. repeat
  14. write('Количество столбцов до ',max,' n=');
  15. readln(n);
  16. until n in [1..max];
  17. b[1]:=-2*max*max+random(4*max*max+1);
  18. k:=1;
  19. for i:=1 to m do
  20. for j:=1 to n do
  21.  begin
  22.   repeat
  23.   x:=-2*max*max+random(4*max*max+1);
  24.   f:=true;
  25.   p:=1;
  26.   while(p<=k)and f do
  27.   if x=b[p] then f:=false
  28.   else inc(p);
  29.   until f;
  30.   a[i,j]:=x;
  31.   inc(k);
  32.   b[k]:=x;
  33.  end;
  34. for i:=1 to m do
  35.  begin
  36.   for j:=1 to n do
  37.   write(a[i,j]:4);
  38.   writeln;
  39.  end;
  40. readln
  41. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы