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