Найти наибольший четный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индеков. Создать новый массив, в котором найденные элементы поменяются местами. (Паскаль)
Помогите чем можете пожалуйста!!!
Другие языки программирования и технологии
Дан двумерный массив.
uses CRT;
const
n = 5;
var
min, max, i, j, nmaxi, nmaxj,nmini, nminj : Integer; //описываем нужные переменные
a : array [0..n,0..n] of Integer;
begin
ClrScr;
Randomize;
WriteLn('Исходная матрица'); //заполняем марицу и выводим ее на экран
WriteLn;
for i := 0 to n do
begin
for j := 0 to n do
begin
a[i,j] := Random(100) - 50;
Write(a[i,j],' ');
end;
WriteLn;
end;
WriteLn;
for i := 0 to n do
for j := i + 1 to n do
if (a[i,j] mod 2 <> 0) then //находим нечетный элемент выше побочной диагонали
begin //с которым будем сравнивать
nmaxi := i;
nmaxj := j;
max := a[nmaxi,nmaxj];
end;
for i := 0 to n do //теперь, когда у нас есть елемент для сравнения
for j := i + 1 to n do //начинаем переберать согласно условия
if (max < a[i,j]) and (a[i,j] mod 2 <> 0) then
begin
max := a[i,j];
nmaxi := i;
nmaxj := j;
end;
for i := 1 to n do //минимальный ниже побочн. диагонали ищеться аналогично
for j := 0 to i - 1 do
if (a[i,j] mod 2 = 0) then
begin
nmini := i;
nminj := j;
min := a[nmini,nminj];
end;
for i := 1 to n do
for j := 0 to i - 1 do
if (min > a[i,j]) and (a[i,j] mod 2 = 0) then
begin
min := a[i,j];
nmini := i;
nminj := j;
end;
a[nmini,nminj] := max; //когда все понаходили можно поменять их местами
a[nmaxi,nmaxj] := min;
WriteLn('R E Z Y L T A T'); //выводим результаты
WriteLn;
WriteLn('Максимальный ',max,' с индексами i = ',nmaxi,'; j = ',nmaxj);
WriteLn('Минимальный ',min,' с индексами i = ',nmini,'; j = ',nminj);
WriteLn;
WriteLn('Новая матрица');
WriteLn;
for i := 0 to n do
begin
for j := 0 to n do
Write(a[i,j],' ');
WriteLn;
end;
ReadLn;
end.
const
n = 5;
var
min, max, i, j, nmaxi, nmaxj,nmini, nminj : Integer; //описываем нужные переменные
a : array [0..n,0..n] of Integer;
begin
ClrScr;
Randomize;
WriteLn('Исходная матрица'); //заполняем марицу и выводим ее на экран
WriteLn;
for i := 0 to n do
begin
for j := 0 to n do
begin
a[i,j] := Random(100) - 50;
Write(a[i,j],' ');
end;
WriteLn;
end;
WriteLn;
for i := 0 to n do
for j := i + 1 to n do
if (a[i,j] mod 2 <> 0) then //находим нечетный элемент выше побочной диагонали
begin //с которым будем сравнивать
nmaxi := i;
nmaxj := j;
max := a[nmaxi,nmaxj];
end;
for i := 0 to n do //теперь, когда у нас есть елемент для сравнения
for j := i + 1 to n do //начинаем переберать согласно условия
if (max < a[i,j]) and (a[i,j] mod 2 <> 0) then
begin
max := a[i,j];
nmaxi := i;
nmaxj := j;
end;
for i := 1 to n do //минимальный ниже побочн. диагонали ищеться аналогично
for j := 0 to i - 1 do
if (a[i,j] mod 2 = 0) then
begin
nmini := i;
nminj := j;
min := a[nmini,nminj];
end;
for i := 1 to n do
for j := 0 to i - 1 do
if (min > a[i,j]) and (a[i,j] mod 2 = 0) then
begin
min := a[i,j];
nmini := i;
nminj := j;
end;
a[nmini,nminj] := max; //когда все понаходили можно поменять их местами
a[nmaxi,nmaxj] := min;
WriteLn('R E Z Y L T A T'); //выводим результаты
WriteLn;
WriteLn('Максимальный ',max,' с индексами i = ',nmaxi,'; j = ',nmaxj);
WriteLn('Минимальный ',min,' с индексами i = ',nmini,'; j = ',nminj);
WriteLn;
WriteLn('Новая матрица');
WriteLn;
for i := 0 to n do
begin
for j := 0 to n do
Write(a[i,j],' ');
WriteLn;
end;
ReadLn;
end.
А где попытка кода которую подправлять? ?
Едрить! Не Я у чусь, а ты.
Сделай хоть криво-косо. Тода будет смысл подсказывать.
-----------------
С нуля за халявщиков нихрена не планируется
Едрить! Не Я у чусь, а ты.
Сделай хоть криво-косо. Тода будет смысл подсказывать.
-----------------
С нуля за халявщиков нихрена не планируется
Похожие вопросы
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Дан двумерный массив
- Дан двумерный массив А [7,8], заполненный случайным образом. Заменить нечетные элементы массива на число 0 СРОЧНОО ГАЙСЫ
- Дан двумерный массив C(m,n). Найти произведение элементов, больших среднего значения. Помогите пожалуйста!!!
- Дан двумерный массив C(m,n). Найти произведение элементов, больших среднего значения. Помогите пожалуйста!!! На паскале
- Дан двумерный массив из NxM случайных элементов. Посчитать сумму периметра. С++
- Turbo Pascal. Дан двумерный массив. Все нули заменить максимальным элементом.
- Дан двумерный массив целых чисел. Упорядочить прямую диагональ в порядке убывания.
- Дан целочисленный двумерный массив, размерности n х m. Заменить все отрицательные числа нулем
- Дан двумерный динамический массив, надо составить программу, которая меняет местами две любые строки