Программа
CONST PowerA=4; { Размерность массивов }
PowerB=5;
TYPE Matrix4x4=array [1..PowerA,1..PowerA] of real;
Matrix5x5=array [1..PowerB,1..PowerB] of real;
VAR A:Matrix4x4; { Матрицы }
B:Matrix5x5;
S:real; { Сумма элементов матрицы }
SpA,SpB:real; { Следы }
PROCEDURE InputMatrix (var A:Matrix4x4); { Процедура ввода матрицы }
Var i,j:word; { Счетчики }
Begin
for i:=1 to PowerA do { Цикл ввода строк матрицы }
for j:=1 to PowerA do { Цикл ввода элементов матрицы }
begin
Write('Введите элемент [',i,',',j,'] ');
{ Вывод приглашения ввести элемент матрицы }
ReadLn(A[i,j]) { Ввод элемента матрицы }
end
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
***************** :
* * :
* * :
* j:=1 * :
* * :
* * :
***************** :
: :
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
: : :
: ***************** :
: * * :
: * * :
: * j:=j+1 * : ┌─
: * * : │ Цикл
: * * : │ ввода
: ***************** :∙∙∙∙∙∙∙∙∙│ строк
: : : │ матрицы
: : : │
: : : └─
: ***************** :
: :
: * Ввод элемента * :
: массива :
* * [i,j] * :
* * :
* * ***************** :
* * Нет : :
* j>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙ :
* * :
* * :
* * :
* :
: Да :
: :
: *****************
: * *
: * *
: * i:=i+1 *
* * *
* * * *
* * *****************
* * Нет :
* i>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
* *
* *
* *
*
: Да
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
PROCEDURE GetMatrix (var B:Matrix5x5); { Процедура формирования матрицы }
Var i,j:word; { Счетчики }
Begin
for i:=1 to PowerB do { Цикл формирования строк матрицы }
for j:=1 to PowerB do { Цикл формирования элементов матрицы }
if i+j>5 then B[i,j]:=i+2*j { Выбор формулы по условию }
else B[i,j]:=i-Sin(j)
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
***************** :
* * :
* * :
* j:=1 * :
* * :
* * :
***************** :
: :
:∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
: : :
: : :
: ***************** :
: * * :
: * * :
: * i:=i+1 * :
: * * :
: * * :
: ***************** :
: : :
: : :
: .∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
: : : :
: : : :
: ***************** ***************** :
: * * * * : ┌─
: * * * B[i,j]:= * : │ Цикл
: * B[i,j]:=i+2*j * * * : │ формирования
: * * * i-Sin(j) * :∙∙∙∙│ строк
: * * * * : │ матрицы
: ***************** * ***************** : │
: : * * : : └─
: : * * : :
: : Да * * Нет : :
: `∙∙∙∙* i+j>5 *∙∙∙∙∙' :
: * * :
* * * :
* * * * :
* * * :
* * Нет : :
* j>PowerB *∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙' :
* * :
* * :
* * :
* :
: Да :
: :
: *****************
: * *
: * *
: * i:=i+1 *
* * *
* * * *
* * *****************
* * Нет :
* i>PowerB *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
* *
* *
* *
*
: Да
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
FUNCTION GetSpA (A:Matrix4x4):real; { Функция вычисления следа матрицы 4x4 }
Var Sp:real; { След }
i:word; { Счетчик }
Begin
Sp:=0; { Обнуление переменной }
for i:=1 to PowerA do { Цикл просмотра диагональных элементов матрицы }
Sp:=Sp+A[i,i]; { Набор суммы }
GetSpA:=Sp { Определение значения функции }
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* Sp:=0 *
* *
* *
*****************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
: :
: *****************
: * *
: * *
: * i:=i+1 *
: * *
: * *
: *****************
: :
: :
: *****************
: * *
: * *
: * Sp:=Sp+A[i,i] *
* * *
* * * *
* * *****************
* * Нет :
* i>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙'
* *
* *
* *
*
: Да
:
:
***************** ┌─
* * │
* * │ Определение
* GetSpA:=Sp *∙∙∙∙│ значения
* * │ функции
* * │
***************** └─
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
FUNCTION GetSpB (B:Matrix5x5):real; { Функция вычисления следа матрицы 5x5 }
Var Sp:real; { След }
i:word; { Счетчик }
Begin
Sp:=0; { Обнуление переменной }
for i:=1 to PowerB do { Цикл просмотра диагональных элементов матрицы }
Sp:=Sp+B[i,i]; { Набор суммы }
GetSpB:=Sp { Определение значения функции }
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* Sp:=0 *
* *
* *
*****************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
: :
: *****************
: * *
: * *
: * i:=i+1 *
: * *
: * *
: *****************
: :
: :
: *****************
: * *
: * *
: * Sp:=Sp+B[i,i] *
* * *
* * * *
* * *****************
* * Нет :
* i>PowerB *∙∙∙∙∙∙∙∙∙∙∙∙'
* *
* *
* *
*
: Да
:
:
*****************
* * ┌─
* * │ Определение
* GetSpB:=Sp *∙∙∙∙│ значения
* * │ функции
* * └─
*****************
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
FUNCTION SumA (A:Matrix4x4):real;
{ Функция вычисления суммы элементов матрицы A }
Var i,j:word; { Счетчики }
Sum:real; { Сумма }
Begin
Sum:=0; { Обнуление суммы }
for i:=1 to PowerA do { Цикл просмотра строк }
for j:=1 to PowerA do { Цикл просмотра элементов }
Sum:=Sum+A[i,j]; { Набор суммы }
SumA:=Sum { Определение значения функции }
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* Sum:=0 *
* *
* *
*****************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
***************** :
* * :
* * :
* j:=1 * :
* * :
* * :
***************** :
: :
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
: : :
: ***************** :
: * * :
: * * :
: * j:=j+1 * :
: * * : ┌─
: * * : │ Цикл
: ***************** :∙∙∙∙∙∙∙│ просмотра
: : : │ строк
: : : └─
: : :
: ***************** :
: * * :
: * * :
: *Sum:=Sum+A[i,j]* :
* * * :
* * * * :
* * ***************** :
* * Нет : :
* j>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙' :
* * :
* * :
* * :
* :
: Да :
: :
: *****************
: * *
: * *
: * i:=i+1 *
* * *
* * * *
* * *****************
* * Нет :
* i>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
* *
* *
* *
*
: Да
:
:
*****************
* * ┌─
* * │ Определение
* SumA:=Sum *∙∙∙∙│ значения
* * │ функции
* * └─
*****************
:
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
FUNCTION SumB (B:Matrix5x5):real;
{ Функция вычисления суммы элементов матрицы B }
Var i,j:word; { Счетчики }
Sum:real; { Сумма }
Begin
Sum:=0; { Обнуление суммы }
for i:=1 to PowerB do { Цикл просмотра строк }
for j:=1 to PowerB do { Цикл просмотра элементов }
Sum:=Sum+B[i,j]; { Набор суммы }
SumB:=Sum { Определение значения функции }
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* Sum:=0 *
* *
* *
*****************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
***************** :
* * :
* * :
* j:=1 * :
* * :
* * :
***************** :
: :
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. :
: : :
: ***************** :
: * * :
: * * :
: * j:=j+1 * :
: * * : ┌─
: * * : │ Цикл
: ***************** :∙∙∙∙∙∙∙│ просмотра
: : : │ строк
: : : └─
: : :
: ***************** :
: * * :
: * * :
: *Sum:=Sum+B[i,j]* :
* * * :
* * * * :
* * ***************** :
* * Нет : :
* j>PowerB *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙' :
* * :
* * :
* * :
* :
: Да :
: :
: *****************
: * *
: * *
: * i:=i+1 *
* * *
* * * *
* * *****************
* * Нет :
* i>PowerB *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
* *
* *
* *
*
: Да
:
:
*****************
* * ┌─
* * │ Определение
* SumB:=Sum *∙∙∙∙│ значения
* * │ функции
* * └─
*****************
:
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
PROCEDURE OutputMatrixA (A:Matrix4x4); { Процедура вывода матрицы 4x4 }
Var i,j:word; { Счетчики }
Begin
for i:=1 to PowerA do { Цикл вывода строк матрицы }
begin
for j:=1 to PowerA do { Цикл вывода элементов матрицы }
Write (A[i,j],' '); { Вывод элемента матрицы }
WriteLn { Вывод конца строки }
end
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
***************** :
* * :
* * *****************
* j:=1 * * *
* * * *
* * * i:=i+1 *
***************** * *
: * *
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. *****************
: : :
: ***************** :
: * * :
: * * :
: * j:=j+1 * : ┌─
: * * : │ Цикл
: * * : │ вывода
: ***************** :∙∙∙∙∙∙∙∙∙│ строк
: : : │ матрицы
: : : │
: : : └─
: ***************** :
: :
: * Вывод элемента* :
: массива :
* * [i,j] * :
* * :
* * ***************** :
* * Нет : :
* j>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ :
* * :
* * :
* * :
* :
: Да :
: :
: :
: :
: :
: :
* :
* * :
* * :
* * Нет :
* i>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
* *
* *
* *
*
: Да
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
PROCEDURE OutputMatrixB (B:Matrix5x5); { Процедура вывода матрицы 5x5 }
Var i,j:word; { Счетчики }
Begin
for i:=1 to PowerB do { Цикл вывода строк матрицы }
begin
for j:=1 to PowerB do { Цикл вывода элементов матрицы }
Write (B[i,j]:14,' '); { Вывод элемента матрицы }
end
End;
{
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* *
* *
* i:=1 *
* *
* *
*****************
:
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
: :
***************** :
* * :
* * *****************
* j:=1 * * *
* * * *
* * * i:=i+1 *
***************** * *
: * *
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙. *****************
: : :
: ***************** :
: * * :
: * * :
: * j:=j+1 * : ┌─
: * * : │ Цикл
: * * : │ вывода
: ***************** :∙∙∙∙∙∙∙∙∙│ строк
: : : │ матрицы
: : : │
: : : └─
: ***************** :
: :
: * Вывод элемента* :
: массива :
* * [i,j] * :
* * :
* * ***************** :
* * Нет : :
* j>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ :
* * :
* * :
* * :
* :
: Да :
: :
: :
: :
: :
: :
* :
* * :
* * :
* * Нет :
* i>PowerA *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
* *
* *
* *
*
: Да
:
:
***************
* *
* К О Н Е Ц *
* *
***************
}
BEGIN
InputMatrix(A); { Ввод матрицы A }
GetMatrix(B); { Формирование матрицы B }
SpA:=GetSpA(A); { Вычисление следа матрицы A }
SpB:=GetSpB(B); { Вычисление следа матрицы B }
if SpA>SpB then S:=SumA(A) { Сравнение следов и вычисление суммы элементов матрицы }
else S:=SumB(B);
WriteLn; WriteLn; { Пропуск строк }
WriteLn('Матрица A'); { Вывод заголовка }
OutputMatrixA(A); { Вывод матрицы A }
WriteLn('SpA=',SpA); { Вывод следа матрицы A }
WriteLn; { Пропуск строки }
WriteLn('Матрица B'); { Вывод заголовка }
OutputMatrixB(B); { Вывод матрицы B }
WriteLn('SpB=',SpB); { Вывод следа матрицы B }
WriteLn; { Пропуск строки }
WriteLn('S=',S) { Вывод суммы }
END.
***************
* *
* П У С К *
* *
***************
:
:
:
*****************
* Ввод *
массива
* A *
*****************
:
:
:
*****************
* * Формиро- * *
* * вание * *
* * массива * *
* * B * *
* * * *
*****************
:
:
:
*****************
* *
* *
*SpA:=GetSpA(A) *
* *
* *
*****************
:
:
:
*****************
* *
* *
*SpB:=GetSpB(B) *
* *
* *
*****************
:
:
:
*
* *
* *
* * Нет
* SpA>SpB *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙.
* * :
* * :
* * :
* :
: Да :
: :
***************** *****************
* * * *
* * * *
* S:=SumA(A) * * S:=SumB(B) *
* * * *
* * * *
***************** *****************
: :
: :
: :
:∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
:
:
:
*****************
* Вывод *
массива
* A *
*****************
:
:
:
*****************
* *
SpA
* *
*****************
:
:
:
*****************
* Вывод *
массива
* B *
*****************
:
:
:
*****************
* *
SpB
* *
*****************
:
:
:
*****************
* *
S
* *
*****************
:
:
***************
* *
* К О Н Е Ц *
* *
***************
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию