Сформировать матрицу из массива - 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.
- Выводится значение
- Код завершается.