В двумерном массиве, состоящем из целочисленных элементов, в каждом столбце поменять местами наибольший по модулю (программа Паскаль)
146
358
Ответы на вопрос:
const n=10; m=7;
type mas=array [1..n,1..m] of Integer;
procedure Vvodmas(var D:mas);
var i,j:Integer;
begin
for i:=1 to n do
for j:=1 to m do
D[i,j]:=-50+Random(101);
end;
procedure Vivodmas(D:mas);
var i,j:Integer;
begin
for i:=1 to n do
begin
for j:=1 to m do Write(D[i,j]:4);
Writeln;
end;
end;
procedure Obmen(a,b: real; var D:mas);
var i,j,p,n1,n2,max: Integer;
begin
for j:=1 to m do
begin
n1:=1; max:=abs(D[1,j]);{считаем первый элемент столбца наибольшим по модулю}
for i:=2 to n do
if abs(D[i,j])>max then {обнаружен больший элемент}
begin n1:=i; max:=abs(D[i,j]) end;
i:=n; {перебираем элементы столбца, начиная с последнего}
while (i>=1)and (D[i,j]>a)and(D[i,j]<b) do i:=i-1;
n2:=i;
if n2<>0 then {если элемент, не принадлежащий интервалу (a,b), был найден}
begin
p:=D[n1,j]; D[n1,j]:=D[n2,j]; D[n2,j]:=p; {обмен значений}
end;
end;
end;
var D: mas; a,b:Real;
begin
Randomize; Vvodmas(D);
Writeln('Исходный массив:'); Vivodmas(D);
Write('Введите через пробел концы интервала (a,b): '); Readln(a,b);
Obmen(a,b,D);
Writeln('Ответ:'); Vivodmas(D);
Readln
end.
type mas=array [1..n,1..m] of Integer;
procedure Vvodmas(var D:mas);
var i,j:Integer;
begin
for i:=1 to n do
for j:=1 to m do
D[i,j]:=-50+Random(101);
end;
procedure Vivodmas(D:mas);
var i,j:Integer;
begin
for i:=1 to n do
begin
for j:=1 to m do Write(D[i,j]:4);
Writeln;
end;
end;
procedure Obmen(a,b: real; var D:mas);
var i,j,p,n1,n2,max: Integer;
begin
for j:=1 to m do
begin
n1:=1; max:=abs(D[1,j]);{считаем первый элемент столбца наибольшим по модулю}
for i:=2 to n do
if abs(D[i,j])>max then {обнаружен больший элемент}
begin n1:=i; max:=abs(D[i,j]) end;
i:=n; {перебираем элементы столбца, начиная с последнего}
while (i>=1)and (D[i,j]>a)and(D[i,j]<b) do i:=i-1;
n2:=i;
if n2<>0 then {если элемент, не принадлежащий интервалу (a,b), был найден}
begin
p:=D[n1,j]; D[n1,j]:=D[n2,j]; D[n2,j]:=p; {обмен значений}
end;
end;
end;
var D: mas; a,b:Real;
begin
Randomize; Vvodmas(D);
Writeln('Исходный массив:'); Vivodmas(D);
Write('Введите через пробел концы интервала (a,b): '); Readln(a,b);
Obmen(a,b,D);
Writeln('Ответ:'); Vivodmas(D);
Readln
end.
Фантастические Твари и Фантастические Твари-2:Преступления Грин-де-Вальда
Объяснение:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Другие предметы
-
zhanik201715.09.2021 22:40
-
Kuprums09.02.2022 19:02
-
Диана13579305.04.2021 20:45
-
dilnuscha30.04.2020 00:12
-
0502abylai19.11.2022 09:35
-
Angeliiiiina66272708.05.2021 08:20
-
Temosha10101030.06.2021 13:42
-
vldslvkonnov08920.10.2020 09:35
-
Егорка15620.06.2023 09:35
-
85396ira17.06.2020 03:26
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.