- •Министерство Образования Российской Федерации
- •Московский Государственный Индустриальный Университет
- •Филиал в г. Вязьме
- •Отчет по лабораторной работе № 5
- •Лабораторная работа № 5
- •Краткие теоретические сведения: Массивы
- •Представление алгоритма в виде блок-схемы:
- •Представление алгоритма в виде Паскаль программы
Представление алгоритма в виде блок-схемы:
Flag:=false
k:=1
i:=1
j:=1 j:=1
+
Ввод:
A[i,j]
+ -
j:=j+1
i:=i+1
Представление алгоритма в виде Паскаль программы
program lab_5;
uses crt;
var
A,B:array[1..5,1..5] of integer;
i,j,sum,k,sumj,g,sumi,sumd1,sumd2,sumin:integer;
flag:boolean;
begin
clrscr;
randomize;
flag:=false;
k:=1;
writeln('Магический квадрат');
for i:=1 to 5 do
for j:=1 to 5 do
repeat
{read(A[i,j]);}
A[i,j]:=random(4);
until (A[i,j]<25) and (A[i,j]>1);
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
if i=j then sumd1:=sumd1+A[i,j];
if i+j=6 then sumd2:=sumd2+A[i,j];
sumin:=sumin+i+j;
write(A[i,j]:4);
end;
writeln;
writeln;
end;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
sumi:=sumi+A[i,j];
sumj:=sumj+A[j,i];
end;
if (sumj<>sumd1) or (sumi<>sumd1) or (sumd1<>sumd2) then flag:=true;
sumi:=0;
sumj:=0;
end;
if flag=false then
begin
writeln('Матрица является магическим квадратом');
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
B[i,j]:=sumd1*sumd1;
write(B[i,j]:4);
end;
writeln;
writeln;
end;
end
else
begin
writeln('Матрица не является магическим квадратом');
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
for g:=1 to 5 do B[i,j]:=B[i,j]+A[i,g]*(g+j);
write(B[i,j]:4);
end;
writeln;
writeln;
end;
end;
readln;
readln;
end.
Тестовые примеры
Введите матрицу 5*5
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Приведенная матрица - "магический квадрат"
Матрицы из чисел, равных сумме элементов в строке:
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
Вывод матрицы в результате умножения:
25 25 25 25 25
25 25 25 25 25
25 25 25 25 25
25 25 25 25 25
25 25 25 25 25
Введите матрицу 5*5
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Приведенная матрица - не "магический квадрат"
Вывод матрицы в результате умножения на сумму индексов:
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
6 7 8 9 10
Выполнил:_________________
Защитил:___________________