Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Обработка квадратной матрицы (http://www.tehnari.ru/f41/t30567/)

citrus 25.11.2009 20:07

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

Пожалуйста, не вешайте новые задачи на старые темы! Создавайте свои темы!
Модератор

MrSTEP 25.11.2009 20:26

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


так?

citrus 25.11.2009 20:39

Цитата:

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


так?

так то оно так) это я и сам понимаю, мне бы вот сам алгоритм этот..))) всмысле как он пишется) я понимаю как найти мах элемент в матрице, а ка это сделать в каждой строчке и найти среди них минимальный?

MrSTEP 25.11.2009 20:55

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

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







Vladimir_S 25.11.2009 21:24

Посмотрите эту тему: http://www.tehnari.ru/f41/t30406/ . Там рассмотрена аналогичная задача.

citrus 25.11.2009 22:36

Цитата:

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

MrSTEP 26.11.2009 00:43

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

все верно. Вы находите максимальный в строке, и записываете его в массив. А потом в этом массиве уже ищете минимальный, и далее по тексту

citrus 26.11.2009 01:15

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

Vladimir_S 26.11.2009 09:43

Уважаемый 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 - количество столбцов. Вся разница в том, что у Вас вместо столбцов - строки. Но это переделка пустяковая.

MrSTEP 26.11.2009 09:47

Да, я именно это и предлагаю, на мой взгляд, так проще всего :) Алгоритм рабочий, я проверял. Так что успехов


Часовой пояс GMT +4, время: 01:17.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.