Другие языки программирования и технологии

Turbo pascal 7.0,задача

двумерные массивы----------------------------------даны действительные числа а1,...а64. Получить действительную квадратную матрицу 8-ого порядка, жэлементами которого являются числа а1,...а64, расположенные в них по схеме, которая приведена на рисунке:=============--------------->-------- ----------------------<-- - -->--------------------- ----------<----------------------->----------------================
Панов Андрей
Панов Андрей
1 538
Доброго времени суток.

Не совсем понятоно, что значит даны? Они в одномерном массиве, вводятся с клавиатуры, еще как-то?

Такой код решает поставленную задачу. Пусть вас не смущает тиg элментов массива Integer. Это сделано только для тестирования.

var
A : array[1..8, 1..8] of Integer;
i, j, k : Integer;
begin
k := 1; {первое число из 64 заданных}
for i:=1 to 8 do {цикл по строкам}
for j:=1 to 8 do begin {цикл по столбцам}
if i mod 2 = 1 then A[i,j] := k {для не четных строк}
else A[i,9-j] := k; {для четных строк}
k := k + 1; {переход к следующему из заданных чисел}
end;

{а это чтобы проверить заполнение массива}
for i:=1 to 8 do begin
for j:=1 to 8 do Write (A[i,j]:3);
WriteLn;
end;

ReadLn; {и увидеть результат}
end.

Здесь к может быть индексом одномерного массива, в котором заданы входные числа. Если числа вводятся с клавиатуры, то вместо присваивания := k;, нужно организовать ввод ReadLn(A[i,j]); или ReadLn(A[i,9-j]);

Удачи!
Ильгиз Салихов
Ильгиз Салихов
59 612
Лучший ответ
и в схеме первая строка без изменений вторая в обратном потом снова без изменений и обратно?..
Famil Nebiyev
Famil Nebiyev
1 023
слово "действительная" меняет суть? не особо помню ( если нет, то вот:
a: array [1..8, 1..8] of real;
numbers: array [1..64] of real; {если числа даны как-то кроме массива, надо или перегнать их в него, или подправить мой код}
...
for i:=1 to 8 do
if i mod 2 <> 0 then
for j:=1 to 8 do
a[i, j]:=numbers[(i-1)*8+j]
else
for j:=8 downto 1 do
a[i, 9-j]:=numbers[(i-1)*8+j]
end;

вроде так