program P_180810;
const
{ Размерность}
DIM=8;
type
{ Тип для матрицы }
TMatrix=array[1..8,1..8]of Double;
var
Matrix:TMatrix;
I,J,C,H:Integer;
D:Double;
begin
I:=0;
H:=1;
{ Заполняем матрицу в порядке согласно условия }
for J:=1 to DIM do begin
C:=DIM;
while C>0 do begin
I:=I+H;
Write('A[',I,',',J,']=');
ReadLn(D);
Matrix[I][J]:=D;
Dec(C);
end;
I:=I+H;
H:=-H;
end;
{ Выводим }
WriteLn('Matrix:');
for I:=1 to DIM do begin
for J:=1 to DIM do begin
Write(Matrix[I][J]:7:3,' ');
end;
WriteLn;
end;
ReadLn;
end.
/home/.../Pascal/P_180810
A[1,1]=1
A[2,1]=2
A[3,1]=3
A[4,1]=4
A[5,1]=5
A[6,1]=6
A[7,1]=7
A[8,1]=8
A[8,2]=9
A[7,2]=10
A[6,2]=11
A[5,2]=12
A[4,2]=13
A[3,2]=14
A[2,2]=15
A[1,2]=16
A[1,3]=17
A[2,3]=18
A[3,3]=19
A[4,3]=20
A[5,3]=21
A[6,3]=22
A[7,3]=23
A[8,3]=24
A[8,4]=25
A[7,4]=26
A[6,4]=27
A[5,4]=28
A[4,4]=29
A[3,4]=30
A[2,4]=31
A[1,4]=32
A[1,5]=33
A[2,5]=34
A[3,5]=35
A[4,5]=36
A[5,5]=37
A[6,5]=38
A[7,5]=39
A[8,5]=40
A[8,6]=41
A[7,6]=42
A[6,6]=43
A[5,6]=44
A[4,6]=45
A[3,6]=46
A[2,6]=47
A[1,6]=48
A[1,7]=49
A[2,7]=50
A[3,7]=51
A[4,7]=52
A[5,7]=53
A[6,7]=54
A[7,7]=55
A[8,7]=56
A[8,8]=57
A[7,8]=58
A[6,8]=59
A[5,8]=60
A[4,8]=61
A[3,8]=62
A[2,8]=63
A[1,8]=64
Matrix:
1.000 16.000 17.000 32.000 33.000 48.000 49.000 64.000
2.000 15.000 18.000 31.000 34.000 47.000 50.000 63.000
3.000 14.000 19.000 30.000 35.000 46.000 51.000 62.000
4.000 13.000 20.000 29.000 36.000 45.000 52.000 61.000
5.000 12.000 21.000 28.000 37.000 44.000 53.000 60.000
6.000 11.000 22.000 27.000 38.000 43.000 54.000 59.000
7.000 10.000 23.000 26.000 39.000 42.000 55.000 58.000
8.000 9.000 24.000 25.000 40.000 41.000 56.000 57.000
Uses
Crt;
Const
MaxRange = 8; {размер матрицы}
SqrMaxRange = MaxRange * MaxRange; {количество элементов в квадратной матрице}
Var
sAr: Array[1..SqrMaxRange] of Real; {исходный массив элементов}
Ar: Array[1..MaxRange, 1..MaxRange] of Real; {результирующий массив}
i, r, c: Byte; {счетчики}
begin
ClrScr; {очистка экрана}
Randomize; {инициализация генератора псевдослучайных чисел}
{initialize varialble}
for i := 1 to SqrMaxRange do
begin {заполнение исходного массива случайной последовательностью действительных чисел}
sAr[i] := Random;
Write(sAr[i]:5:2); {с выводом элементов массива на экран}
end;
writeln;
{solving}
for r := 1 to MaxRange do
begin {последовательно пройдем по всем строкам квадратной матрицы}
for c := 1 to MaxRange do
begin {и заполним каждый элемент строки вычисляя индекс следующим образом}
if odd(c) then {для нечетных номеров колонки}
Ar[r, c] := sAr[(c-1) * MaxRange + r]
else {для четных номеров}
Ar[r, c] := sAr[c * MaxRange - r + 1];
Write(Ar[r, c]:5:2);
end;
WriteLn;
end; {что и даст такую последовательность, которая изображена на рисунке}
readkey; {ожидать нажатия пользователем любой клавиши}
end.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.