Программа
{ ЛИКИ
работа с матрицами
формрование матрицы
вычисление среднего }
Program Denis_4;
Const LineQuantity=5; { Количество строк в матрице }
ColumnQuantity=3; { Количество столбцов в матрице }
Type MatrixOfInt=array [1..LineQuantity,1..ColumnQuantity] of integer;
{ Тип матрица }
MatrixOfRel=array [1..LineQuantity,1..ColumnQuantity] of real;
{ Тип матрица }
Var A:MatrixOfInt; { Переменная матрица }
B:MatrixOfRel; { Переменная матрица }
Meter:integer; { Счетчик }
Medium:real;
Procedure InputMatrixOfInt(var A:MatrixOfInt); { Процедура ввода матрицы }
Var LineMeter:1..LineQuantity; { Счетчик строк }
ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
Begin
for LineMeter:=1 to LineQuantity do { Цикл ввода строк }
for ColumnMeter:=1 to ColumnQuantity do { Цикл ввода строки }
begin
Write('Введите элемент матрицы [',LineMeter,',',ColumnMeter,'] ');
{ Вывод приглашения ввести элемент матрицы }
ReadLn(A[LineMeter,ColumnMeter]) { Ввод элемента матрицы }
end
End;
Procedure OutputMatrixOfInt(A:MatrixOfInt); { Процедура вывода матрицы }
Var LineMeter:1..LineQuantity; { Счетчик строк }
ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
Begin
for LineMeter:=1 to LineQuantity do { Цикл вывода строк }
begin
for ColumnMeter:=1 to ColumnQuantity do { Цикл вывода строки }
Write(A[LineMeter,ColumnMeter]:5,' '); { Вывод элемента }
WriteLn { Пропуск строки }
end
End;
Procedure OutputMatrixOfRel(A:MatrixOfRel); { Процедура вывода матрицы }
Var LineMeter:1..LineQuantity; { Счетчик строк }
ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
Begin
for LineMeter:=1 to LineQuantity do { Цикл вывода строк }
begin
for ColumnMeter:=1 to ColumnQuantity do { Цикл вывода строки }
Write(A[LineMeter,ColumnMeter],' '); { Вывод элемента }
WriteLn { Пропуск строки }
end
End;
Procedure ProcessMatrix(A:MatrixOfInt; var B:MatrixOfRel);
Var LineMeter:1..LineQuantity; { Счетчик строк }
ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
Amax:integer; { Максимальный элемент в нечетных строках матрицы A }
Begin
{ Поиск максимального элемента в нечетных строках матрицы A }
Amax:=A[1,1]; { Начальное определение максимального элемента }
for LineMeter:=1 to LineQuantity do { Цикл просмотра строк }
if Odd(LineMeter) then { Выборка нечетных строк }
for ColumnMeter:=1 to ColumnQuantity do
{ Цикл просмотра элементов строки }
if Amax<A[LineMeter,ColumnMeter]
{ Если текущий элемент больше максимального }
then Amax:=A[LineMeter,ColumnMeter];
{ то - переопределение максимального }
for LineMeter:=1 to LineQuantity do { Цикл просмотра строк }
for ColumnMeter:=1 to ColumnQuantity do { Цикл просмотра строки }
if Odd(LineMeter) { Определение действия по четности строки }
then B[LineMeter,ColumnMeter]:=A[LineMeter,ColumnMeter]/Amax
else B[LineMeter,ColumnMeter]:=A[LineMeter,ColumnMeter]*Amax
End;
BEGIN
WriteLn; { Пропуск строки }
InputMatrixOfInt(A); { Ввод матрицы }
WriteLn; { Пропуск строки }
WriteLn('Исходная матрица:'); { Вывод заголовка }
OutputMatrixOfInt(A); { Вывод матрицы A }
ProcessMatrix(A,B); { Обработка матрицы }
WriteLn('Полученная матрица:'); { Вывод заголовка }
OutputMatrixOfRel(B); { Вывод матрицы B }
{ Поиск среднего арифметического во второй строке матрицы B: }
Medium:=0; { Обнуление среднего }
for Meter:=1 to ColumnQuantity do Medium:=Medium+B[2,Meter];
{ Цикл набора суммы элементов второй строки }
Medium:=Medium/ColumnQuantity; { Вычисление среднего арифметического }
WriteLn('Среднее арифметическое второй строки: ',Medium)
{ Вывод среднего арифметического }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию