Заполнить массив так, чтобы в каждой строке и каждом столбце не было повторяющихся элементов - Free Pascal

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

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

Есть матрица NxN (N<=10). Требуется заполнить массив так, чтобы в каждой строке и каждом столбце не было повторяющихся элементов. Вход 3 0 2 0 0 1 0 2 0 0 выход 1 2 3 3 1 2 2 3 1

Решение задачи: «Заполнить массив так, чтобы в каждой строке и каждом столбце не было повторяющихся элементов»

textual
Листинг программы
var a:array[1..10,1..10] of integer;
     i,j,k,n:integer;
begin
write('n=');readln(n);
for i:=1 to n do
  begin
   k:=i-1;
   for j:=1 to n do
     begin
       k:=k+1;
       if k>n then k:=1;
       a[i,j]:=k;
       write(a[i,j]:3);
     end;
   writeln;
  end;
end.

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

  1. Объявлены переменные: a (массив), i, j, k, n (циклы)
  2. Задается значение переменной n с помощью ввода с клавиатуры
  3. Заполняется массив a с помощью двух вложенных циклов а) Внешний цикл (i) перебирает строки массива (от 1 до n) б) Внутренний цикл (j) перебирает столбцы массива (от 1 до n) в) Вычисляется значение k как i-1 (для удобства работы со строками массива) г) Если k больше n, то значение k устанавливается равным 1 (для обеспечения заполнения массива без повторений) д) Значение k присваивается элементу массива a[i,j] е) Значение k выводится на экран с помощью функции write(a[i,j],3) (для контроля заполнения массива)
  4. После завершения внутреннего цикла, выводится символ новой строки с помощью функции writeln (для разделения строк массива)
  5. После завершения внешнего цикла, выводится символ новой строки с помощью функции writeln (для разделения строк массива)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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