Создание двумерного массива, все элементы которого различны - 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 создает двумерный массив, все элементы которого различны.
- В начале кода объявляются необходимые переменные: максимальное значение для строк и столбцов (макс), двумерный массив a, одномерный массив b, переменные n, m, k, i, j, p и x, а также логическое значение f.
- Затем происходит инициализация массива a случайными значениями.
- Далее идет цикл, который повторяется столько раз, сколько строк и столбцов в массиве. Внутри цикла вычисляется индекс текущего элемента массива a и b, а также переменная p, которая отслеживает текущий элемент в цикле.
- Пока значение переменной p меньше или равно k и значение переменной f равно true, происходит проверка: если текущий элемент в массиве a равен значению b[p], то значение переменной f устанавливается в false, иначе значение переменной p увеличивается на 1.
- После того как значение переменной f становится false, значение переменной p увеличивается на 1.
- После завершения внутреннего цикла происходит установка значения текущего элемента массива a в значение x.
- Затем происходит повторное вычисление индекса текущего элемента массива a и b, и значение переменной p снова сбрасывается на 1.
- После окончания внешнего цикла выводится содержимое каждой строки массива a.
- В конце кода выводится сообщение с количеством строк и столбцов, а также сгенерированным значением x.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д