Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2022, 00:56   #1
Orangeant
Новичок
Джуниор
 
Регистрация: 01.02.2022
Сообщений: 1
Вопрос поиск элемента в заштрихованной части матрицы

Здравствуйте! Нуждаюсь в помощи знающих людей. Сама пыталась разобраться с этой темой, но в итоге ни к чему не пришла. Итак, нужно...
Составить программу, которая:
1. Считывает с клавиатуры матрицу А размерностью 12x12.
2. Осуществляет поиск минимального элемента, принадлежащий множеству
элементов, расположенных в четных столбцах матрицы.
3. Находит минимальный элемент из множества элементов принадлежащих
заштрихованной части матрицы.
4. Заменяет местами элементы, найденные во втором и третьем пунктах настоящего
задания.
Не нужно учитывать диагональ
Изображения
Тип файла: jpg QRVr2gh8EJw (1).jpg (41.8 Кб, 23 просмотров)
Orangeant вне форума Ответить с цитированием
Старый 01.02.2022, 11:32   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Цитата:
1. Считывает с клавиатуры матрицу А размерностью 12x12.
Бред? Вводить 144 элемента ручками.
А если надо вводить вещественные?
Условно - 5 сек на число. 720 сек на матрицу. Около 10 мин вводим матрицу.
Проверяем алгоритм и ку-ку. Снова 10 мин на ввод.
А каков диапазон значений элементов матрицы?
Формируйте матрицу рандомно. Пример:
Код:
N := 12;
for i := 1 to N do
   for j := 1 to N do
      a[i,j] := random();  {Найдите в сети как генерировать в нужном диапазоне значений}
Цитата:
2. Осуществляет поиск минимального элемента, принадлежащий множеству
элементов, расположенных в четных столбцах матрицы.
Код:
N := 12;
eCol := 2;
eRow := 1;
for Row := 1 to N do  {по всем строкам}
begin
   Col := 2;
   while Col <= N do { и чётным столбцам}
   begin
      if a[eRow, eCol] > a[Row, Col] then
      begin
         eRow := Row;
         eCol := Col;
      end;
      Col := Col + 2; {только чётные столбцы}
   end;
end;
Цитата:
3. Находит минимальный элемент из множества элементов принадлежащих
заштрихованной части матрицы.
Код:
K := N DIV 2; {середина матрицы}
aCol := K;
aRow := K + 1; {Первый элемент заштрихованной области}
for Row := K + 2 to N do  {по всем строкам нижней половины матрицы - не нужно учитывать диагональ}
   for Col := Row - 1 to K do {на один элемент левее и до середины}
   begin
      if a[aRow, aCol] > a[Row, Col] then
      begin
         aRow := Row;
         aCol := Col;
      end;
end;
Цитата:
4. Заменяет местами элементы, найденные во втором и третьем пунктах настоящего
задания.
Теперь мы знаем eRow, eCol и aRow, aCol. Как поменять элементы?

PS: Писал без проверки, но думаю, что алгоритм понятен.
С осторожностью для нечётного размера матрицы.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наибольший и наименьший элемент заштрихованной части произвольно сформированной квадратной матрицы SkyGir Помощь студентам 4 27.05.2019 06:42
Найти наибольший и наименьший элементы в заштрихованной части матрицы. Free Pascal avatar54 Помощь студентам 0 12.06.2017 21:18
Поиск координат заданого элемента матрицы dima-intro Помощь студентам 3 16.12.2010 20:54
Делфи. Лежит ли точка в заштрихованной части zoza1 Помощь студентам 5 12.02.2010 21:16