Консультация № 189274
26.04.2016, 17:12
0.00 руб.
0 1 1
Здравствуйте! Прошу помощи в следующем вопросе:

С клавиатуры вводится матрица n*m.
1. Определить произведение всех чётных чисел в каждой строке и записать это произведение в последний столбец.
2. Найти максимальный и минимальный элементы в каждой строке и поменять их местами
3. Повернуть матрицу на 90 градусов по часовой стрелке.

Помогите пожалуйста написать программу в паскале.

Обсуждение

давно
Старший Модератор
31795
6196
28.04.2016, 14:39
общий
это ответ
Здравствуйте, maxim387!

Смотрите приложенние:
[code lang=pascal h=200]const
n=5;
m=5;
var
a:array[1..n,1..m]of integer;
i,j,x,y:integer;
begin
{ввод матрицы}
for i:=1 to n do
for j:=1 to m-1 do
begin
write('enter a[',i,',',j,']:=');
readln(a[i,j]);
end;
{задание 1}
for i:=1 to n do
begin
a[i,m]:=1;
for j:=1 to m-1 do
if not odd(a[i,j]) then a[i,m]:=a[i,m]*a[i,j];
end;
{вывод по первому заданию}
writeln('number 1:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln;
end;
{задание 2}
for i:=1 to n do
begin
x:=1;
y:=1;
for j:=2 to m do
begin
if a[i,x]>a[i,j]then x:=j;
if a[i,y]<a[i,j]then y:=j;
end;
j:=a[i,x];
a[i,x]:=a[i,y];
a[i,y]:=j;
end;
{вывод по второму заданию}
writeln('number 2:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln;
end;
{задание 3}
if n=m then
for i:=1 to n div 2 do
for j:=i to n-i do
begin
x:=a[i,j];
a[i,j]:=a[n-j+1,i];
a[n-j+1,i]:=a[n-i+1,n-j+1];
a[n-i+1,n-j+1]:=a[j,n-i+1];
a[j,n-i+1]:=x;
end
else writeln('error:wrong matrix size!');
{вывод по третьему заданию}
writeln('number 3:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln;
end;
end.[/code]
Третье задание не имеет смысла, если N<>M.
ps:вопросы задавайте в минифоруме.
Удачи!
5
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа