Программа
Program C(input,output);
{ Ввод матрицы,
если кол-во нечет эл-тов
гл диагонали < чет эл-тов
2-го солбца, то поменять
2-й столбец с побочной
диагональю, иначе разделить
все элементы на 2 }
Type
matrix=array[1..3,1..3] of integer; { Описание типа "матрица" }
Var
t:matrix; { Матрица }
i,k:integer; { Счетчики }
NumberOdd,NumberEven:integer; { Переменные для подсчета четных
и нечетных элементов }
Buf:integer; { Переменная для переноса элементов матрицы }
Procedure WriteMatrix(t:matrix); { Процедура вывода матрицы }
Begin
Writeln(' -------------------------'); { Вывод верхней линии таблицы }
for i:=1 to 3 do { Вывод строк матрицы }
Begin
for k:=1 to 3 do Write(' | ',t[i,k]:5); { Вывод элемента матрицы }
Writeln(' |'); { Вывод правой линии таблицы }
Writeln(' -------------------------')
{ Вывод разделяющей линии таблицы }
End;
End;
BEGIN
for i:=1 to 3 do { Цикл ввода строк матрицы }
for k:=1 to 3 do { Цикл ввода элементов строк }
Begin
Write('Введите элемент матрицы t(',i,',',k,') ');
{ Приглашение ввести элемент матрицы }
Readln(t[i,k]) { Ввод элемента матрицы }
End;
WriteLn; { Пропуск строки }
WriteLn('Заданная матрица:');
WriteMatrix(t); { Вывод заданной матрицы }
NumberOdd:=0; { Обнуление количества нечетных элементов главной диагонали }
NumberEven:=0; { Обнуление количества четных элементов второго столбца }
for i:=1 to 3 do { Цикл просмотра матрицы }
Begin
if Odd(t[i,i]) then NumberOdd:=NumberOdd+1;
{ Подсчет количества нечетных элементов главной диагонали }
if not Odd(t[i,2]) then NumberEven:=NumberEven+1
{ Подсчет количества четных элементов второго столбца }
End;
if NumberOdd<NumberEven { Сравнение результатов просмотра }
{ и выбор варианта обработки матрицы }
then { Перенос элементов матрицы }
for i:=1 to 3 do
begin
Buf:=t[i,2];
{ Присваивание элемента столбца промежуточной переменной }
t[i,2]:=t[i,3-i+1];{ Присваивание элементу столбца
значения элемента побочной диагонали }
t[i,3-i+1]:=Buf { Присваивание элементу побочной диагонали
промежуточной переменной }
end
else for i:=1 to 3 do for k:=1 to 3 do t[i,k]:=t[i,k] div 2;
{ Целочисленное деление всех элементов на 2 }
WriteLn('Полученная матрица:');
WriteMatrix(t) { Вывод полученной матрицы }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию