Сформировать матрицу из массива - Turbo Pascal
Формулировка задачи:
Задание во вложении. Ввод/вывод написал, помогите с формированием матрицы. Индексация именно с нуля должна быть.
Решение задачи: «Сформировать матрицу из массива»
textual
Листинг программы
const n=5; var a: array [0..(n-1)*2] of Char; b: array [0..n-1,0..(n-1)*2] of Char; i, j: Integer; begin for i:=0 to (n-1)*2 do a[i]:=Chr(Ord('A')+i); FillChar(b,SizeOf(b),'0'); for i:=0 to n-1 do begin j:=2*i+1; if j<n then b[i,j]:='1' else j:=n; for j:=j-1 downto 0 do b[i,j]:=a[2*i-j]; end; for i:=0 to n-1 do begin for j:=0 to n-1 do Write(b[i,j]:2); WriteLn; end; end.
Объяснение кода листинга программы
- Переменная
n
инициализируется значением 5. - Создаются две переменные
a
иb
, которые являются массивами символов. - В цикле
for
заполняется массивa
символами 'A' с помощью функцииFillChar
. - Создается пустой массив
b
. - В цикле
for
заполняется массивb
нулями с помощью функцииFillChar
. - Для каждого элемента
i
в массивеa
и каждого элементаj
в массивеb
выполняется следующий блок кода:j
устанавливается равным 2*i+1.- Если
j
меньшеn
, тоb[i,j]
устанавливается равным '1'. j
устанавливается равнымn
.- Для каждого элемента
j
в массивеb
выполняется следующая последовательность операций:b[i,j]
устанавливается равнымa[2*i-j]
.
- Для каждого элемента
i
в массивеa
выполняется блок кода:- Выводится значение
b[i,j]
с помощью функцииWrite
. - Выводится символ новой строки с помощью функции
WriteLn
.
- Выводится значение
- Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д