Сортировка массива - Turbo Pascal (29081)
Формулировка задачи:
Помогите пожалуйста отсортировать двумерный массив по диагонали.
Дано целое число
N (0 <N <100).
Расположить в квадратной таблице размером NхN последовательность натуральных чисел 1, 2, ..., N2 таким образом, чтобы наименьшее число было в левом нижнем углу, а самое большое - в правом верхнем, а другие заполняли квадрат по диагоналям с левого верхнего угла к правому нижнему.Входные данные:
в единственной строке записано число N.Выходные данные:
вывести полученную таблицу.Пример:
Входные данные: 3 Выходные данные: 4 7 9 2 5 8 1 3 6Решение задачи: «Сортировка массива»
textual
Листинг программы
- const nmax=20;
- var i,j,i1,n,m:integer;
- a:array[1..nmax,1..nmax] of integer;
- begin
- write('n = ');readln(n);
- m:=1;
- for i1:=n downto 1 do
- begin
- i:=i1;j:=1;
- while i<=n do
- begin
- a[i,j]:=m;inc(m);
- inc(i);inc(j);
- end
- end;
- for i1:=2 to n do
- begin
- j:=i1;i:=1;
- while j<=n do
- begin
- a[i,j]:=m;inc(m);
- inc(i);inc(j)
- end
- end;
- for i:=1 to n do
- begin
- for j:=1 to n do write(a[i,j]:4);
- writeln
- end;
- readln
- end.
Объяснение кода листинга программы
- Переменная
n
инициализируется значением, введенным пользователем. - Переменная
m
инициализируется единицей. - В цикле
for
переменнойi1
отn
до1
происходит следующее:- Переменная
i
инициализируется значением переменнойi1
. - Переменная
j
инициализируется значением переменнойi1
. - Запускается цикл
while
с условиемi<=n
, который выполняется, покаi
меньше или равноn
. - Внутри цикла
while
переменнаяa[i,j]
присваивается значениюm
. - Переменная
m
инкрементируется. - Переменные
i
иj
инкрементируются.
- Переменная
- Повторяется шаг 3 для каждой переменной
i1
от2
доn
. - В цикле
for
переменнойi
от1
доn
происходит следующее:- Выводится значение переменной
a[i,j]
(записанное через точку с запятой) для каждой переменнойj
от1
доn
. - Выводится символ новой строки.
- Выводится значение переменной
- Запрашивается ввод с клавиатуры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д