Программа
CONST n=4; { Размерность матрицы }
TYPE Matrix=array [1..n,1..n] of integer; { Тип - матрица }
VAR A,B:Matrix; { Матрицы }
PROCEDURE InputMatrix (var C:Matrix); { Процедура ввода матрицы }
Var i,j:integer; { Счетчики }
Begin
for i:=1 to n do { Цикл ввода строк матрицы }
for j:=1 to n do { Цикл ввода элементов матрицы }
begin
Write('Введите элемент [',i,',',j,'] ');
{ Вывод приглашения ввести элемент матрицы }
ReadLn(C[i,j]); { Ввод элемента матрицы }
end
End;
PROCEDURE OutputMatrix (C:Matrix); { Процедура вывода матрицы }
Var i,j:integer; { Счетчики }
Begin
for i:=1 to n do { Цикл вывода строк матрицы }
begin
for j:=1 to n do { Цикл вывода элементов матрицы }
Write (C[i,j]:5,' '); { Вывод элемента матрицы }
WriteLn { Вывод конца строки }
end
End;
PROCEDURE Task_1 (var C:Matrix); { Процедура умножения строки на число }
Var i:integer; { Счетчик }
k:integer; { Номер строки }
Num:integer; { Множитель элементов строки }
Begin
Write('Введите номер строки от 1 до ',n,' ');
{ Вывод приглашения ввести номер строки }
ReadLn(k); { Ввод номера строки }
Write('Введите число '); { Вывод приглашения ввести число }
ReadLn(Num); { Ввод числа }
for i:=1 to n do C[k,i]:=Num*C[k,i] { Цикл умножения элементов строки }
End;
PROCEDURE Task_2 (C1:Matrix; var C2:Matrix);
{ Процедура формирования кососимметрической матрицы }
Var i,j:integer; { Счетчики }
Begin
for i:=1 to n do { Цикл просмотра строк }
for j:=1 to i do { Цикл просмотра элементов }
begin
{ Копирование элементов: }
C2[i,n-j+1]:=C1[i,j];
C2[j,n-i+1]:=C1[i,j]
end
End;
FUNCTION Task_3 (var C:Matrix):integer;
{ Вычисление суммы отрицательных элементов }
Var i,j:integer; { Счетчики }
Sum:integer; { Сумма }
Begin
Sum:=0; { Обнуление суммы }
for i:=1 to n do { Цикл просмотра строк }
for j:=1 to i-1 do { Цикл просмотра элементов }
if (not Odd(j)) and (C[i,j]<0) { Условие набора суммы }
then Sum:=Sum+C[i,j]; { Набор суммы }
Task_3:=Sum { Определение значения функции }
End;
BEGIN
WriteLn; { Пропуск строки }
InputMatrix(A); { Ввод матрицы }
WriteLn; { Пропуск строки }
WriteLn(' Исходная матрица: '); { Вывод заголовка }
OutputMatrix(A); { Вывод матрицы }
WriteLn; { Пропуск строки }
WriteLn('Нажмите <Enter>'); { Вывод приглашения нажать <Enter> }
ReadLn; { Остановка программы до нажатия <Enter> }
WriteLn; { Пропуск строки }
Task_1(A); { Умножение элементов строки матрицы на заданное число }
WriteLn(' Матрица: '); { Вывод заголовка }
OutputMatrix(A); { Вывод матрицы }
WriteLn('Нажмите <Enter>'); { Вывод приглашения нажать <Enter> }
ReadLn; { Остановка программы до нажатия <Enter> }
WriteLn; { Пропуск строки }
Task_2(A,B); { Формирование кососимметрической матрицы }
WriteLn(' Кососимметрическая матрица: '); { Вывод заголовка }
OutputMatrix(B); { Вывод матрицы }
WriteLn('Нажмите <Enter>'); { Вывод приглашения нажать <Enter> }
ReadLn; { Остановка программы до нажатия <Enter> }
WriteLn; { Пропуск строки }
WriteLn('Сумма отрицательных элементов под главной диагональю в нечетных столбцах: ');
{ Вывод заголовка }
WriteLn('=',Task_3(B)); { Вычисление и вывод суммы }
WriteLn('Нажмите <Enter>'); { Вывод приглашения нажать <Enter> }
ReadLn; { Остановка программы до нажатия <Enter> }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию