• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Обработка квадратной матрицы

  • Автор темы Автор темы citrus
  • Дата начала Дата начала

citrus

Новые
Регистрация
29 Сен 2009
Сообщения
32
Реакции
0
Баллы
0
Обработка квадратной матрицы

подскажите пожалуйста, как найти в квадратной матрице наименьший из максимальных элементов строк матрицы и вывести номер строки где он находится?

Пожалуйста, не вешайте новые задачи на старые темы! Создавайте свои темы!
Модератор
 
надо более подробное описание алогритма. как я понял, надо:
  1. найти в каждой строке максимальный элемент
  2. найти из максимальных минимальный
  3. вывести номер строки, где находится минимальный из максимальных


так?
 
надо более подробное описание алогритма. как я понял, надо:
  1. найти в каждой строке максимальный элемент
  2. найти из максимальных минимальный
  3. вывести номер строки, где находится минимальный из максимальных


так?

так то оно так) это я и сам понимаю, мне бы вот сам алгоритм этот..))) всмысле как он пишется) я понимаю как найти мах элемент в матрице, а ка это сделать в каждой строчке и найти среди них минимальный?
 
citrus, не расстраивайтесь, все предельно просто. Вот примерный словесный алгоритм, по нему постарайтесь составить программу. Так для вас будет полезнее - сможете научиться писать программы, а не списывать готовые. итак, алгортим:
  • вводим массив
  • внешним циклом выбираем строку;
  • внутренним циклом находим максимальный элемент в строке;
  • закрываем циклы;
  • в цикле находим минимальный их найденных максимальных;
  • выводим его, и его номер;
  • все

    Пробуйте :) а что непонятно, спрашивайте






 
в цикле находим минимальный их найденных максимальных;
вот этот момент непонятен.. какие значения для цикла и с чем мне сравнивать максимальные элементы? Ведь изначально после того как я делаю внешний цикл по строчкам, внутренний по столбцам, то я сравниваю значения матрицы с max. и либо присваиваю их или нет. Но в итоге то у меня получается максимальный элемент матрицы..
 
Во-первых, приношу извинения за опечатку. в фразе "в цикле находим минимальный их найденных максимальных;" вместо иХ должно быть иЗ.
Во-вторых, как я предлагаю решить эту проблему:
Цитата:
... я сравниваю значения матрицы с max. и либо присваиваю их или нет. Но в итоге то у меня получается максимальный элемент матрицы..

все верно. Вы находите максимальный в строке, и записываете его в массив. А потом в этом массиве уже ищете минимальный, и далее по тексту
 
т.е. вы предлагаете создать новый одномерный массив (вектор) из максимальных элементов столбцов матрицы? хм..кстати можно попробовать, но вообще вроде это должно как-то легче делаться.. спасибо большой за подсказку, буду дальше мучать эту задачу)
 
Уважаемый Citrus, а я ведь не для просто так дал ссылку на другую тему. Совершенно напрасно Вы это дело проигнорировали. В той задаче требовалось найти минимальный среди максимальных элементов столбцов таблицы. Вот фрагмент программы оттуда:
Код:
FOR j:=1 TO s DO
 begin
  MVcol[j]:=a[1,j];
  FOR i:=2 TO d DO
   IF a[i,j]>MVcol[j] THEN MVcol[j]:=a[i,j];
 end;

 Min_Max:=MVcol[1];
  FOR j:=2 TO s DO
   IF Min_Max>MVcol[j] THEN Min_Max:=MVcol[j];
Здесь MVcol[j] - максимальный элемент j-того столбца, Min_Max - минимальный из этих максимальных элементов, i - номер строки, j - номер столбца, d - количество строк, s - количество столбцов. Вся разница в том, что у Вас вместо столбцов - строки. Но это переделка пустяковая.
 
Да, я именно это и предлагаю, на мой взгляд, так проще всего :) Алгоритм рабочий, я проверял. Так что успехов
 
Уважаемый Citrus, а я ведь не для просто так дал ссылку на другую тему. Совершенно напрасно Вы это дело проигнорировали. В той задаче требовалось найти минимальный среди максимальных элементов столбцов таблицы. Вот фрагмент программы оттуда:
Код:
FOR j:=1 TO s DO
 begin
  MVcol[j]:=a[1,j];
  FOR i:=2 TO d DO
  IF a[i,j]>MVcol[j] THEN MVcol[j]:=a[i,j];
 end;
 Min_Max:=MVcol[1];
  FOR j:=2 TO s DO
   IF Min_Max>MVcol[j] THEN Min_Max:=MVcol[j];
Здесь MVcol[j] - максимальный элемент j-того столбца, Min_Max - минимальный из этих максимальных элементов, i - номер строки, j - номер столбца, d - количество строк, s - количество столбцов. Вся разница в том, что у Вас вместо столбцов - строки. Но это переделка пустяковая.
ну я тоже самое предложил. И я думаю,
будет лучше, если человек сам поймет ход решения задачи, чем он спишет готовую. Имхо
 
Модератору: Сильно извиняюсь, если не там пишу свои вопросы, но просто они тоже относятся к обработке квадратной матрицы, поэтому подумал, что не стоит создавать аналогичную тему.


Задача на подпрограммы:
как написать подпрограмму
которая будет считать упорядочивание строк по убыванию? Само упорядочивание я знаю, только не пойму куда запихнуть счетчик, который будет считать сколько строк было переставлено. Помогите плиз)

И еще вопрос:
Переставить столбцы матрицы в порядке возрастания элементов К-ой строки.
т.е. мне нужно не только К-ую строку упорядочить по возрастания, а вместе с этим и столбцы переставлять..

Заранее благодарю за помощь)
 
вообще это так звучит

"В той матрице, в которой количество строк упорядоченных по убыванию элементов больше, переставить столбцы матрицы в порядке возрастания элементов К-ой строки.
 
вообще это так звучит

"В той матрице, в которой количество строк упорядоченных по убыванию элементов больше, переставить столбцы матрицы в порядке возрастания элементов К-ой строки.

Час от часу не легче! Теперь еще надо выбирать из незнамо какого количества неизвестно откуда взявшихся матриц...
 
Извините..


"Вводятся две вещественные матрицы А(n,n) и В(m,m) n,m<=10. В той матрице, в которой количество строк упорядоченных по убыванию элементов больше, переставить столбцы матрицы в порядке возрастания элементов К-ой строки, в противном случае сформировать массив из отрицательных максимальных элементов строк." Язык Паскаль, с использованием подпрограмм (процедур и функций)

Вот так задача звучит..
 
Последнее редактирование:
а как тут прикрепить файл? я вроде ее сделал, но она зависает в одном месте..хотел, чтобы вы посмотрели и разъяснили где ошибка..
 
а как тут прикрепить файл? я вроде ее сделал, но она зависает в одном месте..хотел, чтобы вы посмотрели и разъяснили где ошибка..

А Вы выложите текст прямо здесь, в поле сообщения, лучше в тегах {code} {/code} (скобки должны быть квадратными, а не фигурными, естественно). А если не хотите - при создании сообщения ткните в "Расширенный режим", тогда внизу возникнет опция "Управление вложениями", дальше там всё понятно. Файл предварительно зазиппируйте.
 
Назад
Сверху