Суббота, 04 Мая 2024, 14:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » решение задания по матрицам (вопрос)
решение задания по матрицам
Moon_RiderДата: Понедельник, 20 Декабря 2010, 21:24 | Сообщение # 1
частый гость
Сейчас нет на сайте

Ввести матрицу размером NxM. Память для массива выделить динами-
чески. Выполнить в соответствии с номером варианта индивидуальное зада-
ние и вывести на экран исходные данные и полученный результат.
Найти в каждой строке матрицы максимальный элемент.

Как это сделать? Что то пробовал делать - не могу...

BOOMДата: Понедельник, 20 Декабря 2010, 21:30 | Сообщение # 2
I am the creator of ADE
Сейчас нет на сайте
Quote (Moon_Rider)
Память для массива выделить динами- чески.

Code

vector< vector<int> > __matrix;

Quote (Moon_Rider)
Найти в каждой строке матрицы максимальный элемент.

Используй пузырьковый метод.

По матрицам вот тебе материальчик, может поможет.


______________________________
Я вернулся, и это чудо.
______________________________
LorderonДата: Понедельник, 20 Декабря 2010, 21:36 | Сообщение # 3
старожил
Сейчас нет на сайте
Quote (BOOM)
Используй пузырьковый метод.

То есть если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки.
У тебя С? С++? С#?
BOOMДата: Понедельник, 20 Декабря 2010, 21:40 | Сообщение # 4
I am the creator of ADE
Сейчас нет на сайте
Borland С++.
Quote (Lorderon)
То есть, если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки.

Ну, да. Этот метод не супер быстрый, но самый простой.


______________________________
Я вернулся, и это чудо.
______________________________
Moon_RiderДата: Понедельник, 20 Декабря 2010, 21:54 | Сообщение # 5
частый гость
Сейчас нет на сайте
Visual C++ надо. Как бы там сделать?
VinchensooДата: Вторник, 21 Декабря 2010, 07:14 | Сообщение # 6
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Lorderon)
То есть если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки. У тебя С? С++? С#?

Мы, кстати, ради интереса смотрели 1 опыт.
Суперкомпьютер пузырковым методом обрабатывает бд в течении 13 дней.
Обычный домашний компьютер с эффективным алгоритмом поиска обрабатывает эту же бд за 7 минут.
Вдумайся)
Пузырек лучше не исп. для серьезных программ(в бд подразумевалось начилие 1 000 000 записей)


Serg1971Дата: Вторник, 21 Декабря 2010, 10:06 | Сообщение # 7
Весёлый программист
Сейчас нет на сайте
Lorderon, BOOM, Vinchensoo, biggrin Человек видимо - домашку по программированию сделать не может! Вот блин, программисты пошли! smile И вы ему - неправильно советуете! Пузырьковый метод - используется для упорядочивания (сортировки) значений по возрастанию-убыванию. А у него - всё должно остаться на своих местах. Используется метод мини-макса. Берётся первое значение, сохраняется... Берётся следущее, если больше сохранённого - сохраняется это, если нет - идём дальше и берём следующее значение... Причём, это может проделываться для всех строк матрицы, с элементами с индексом М - одновременно! То есть всё можно сделать за один проход! smile
ЗЫ. Надеюсь разжёванное ТС в состоянии положить на код, а иначе - мда... smile


VinchensooДата: Вторник, 21 Декабря 2010, 12:36 | Сообщение # 8
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Serg1971)
Lorderon, BOOM, Vinchensoo, Человек видимо - домашку по программированию сделать не может! Вот блин, программисты пошли! И вы ему - неправильно советуете! Пузырьковый метод - используется для упорядочивания (сортировки) значений по возрастанию-убыванию. А у него - всё должно остаться на своих местах. Используется метод мини-макса. Берётся первое значение, сохраняется... Берётся следущее, если больше сохранённого - сохраняется это, если нет - идём дальше и берём следующее значение... Причём, это может проделываться для всех строк матрицы, с элементами с индексом М - одновременно! То есть всё можно сделать за один проход!

Во-первых, я ему не советовал использовать пузырек.
Quote (Vinchensoo)
Пузырек лучше не исп. для серьезных программ(в бд подразумевалось начилие 1 000 000 записей)

Во-вторых, перебор двумерного массива- тот же пузырь, только без перестановки элементов.
Имхо, если ТС этого не понял, то сам код он не напишет.
Quote (Serg1971)
Причём, это может проделываться для всех строк матрицы, с элементами с индексом М - одновременно! То есть всё можно сделать за один проход!

Неясная мне шняга. Элементы могут и не стоять в одном стобле, нужно их сравнивать со всеми.
Serg1971, возможно есть 2 формулировки пузыря. Потому что я как-то спорил со своим преподавателем по этому поводу.
Мб есть расширенный и упрощенный алгоритм. Суть та же, в любом случае.
Quote (Serg1971)
идём дальше и берём следующее значение...

Нужно номер строки сохранять, а не сам элемент.
Как на сях выделять динам. память- не знаю.
Могу дать код самого перебора, если нужно. Но он легко пишется.


Serg1971Дата: Вторник, 21 Декабря 2010, 13:29 | Сообщение # 9
Весёлый программист
Сейчас нет на сайте
Vinchensoo, да согласен - одноразовый проход методом пузырька даст максимальное число! Но принцип при пузырьковой сортировке:
Quote (Lorderon)
То есть если правое число больше левого, оно смещается вправо, и так до тех пор, пока не будут обработаны все ячейки.

т.е. перемещение максимального числа в конец массива... А ТС нужно:
Quote (Moon_Rider)
Найти в каждой строке матрицы максимальный элемент.

Я предлагаю следующий метод, немного подробнее поясню...
Массив А (M,N) - М строк, N- столбцов... Создаём дополнительный одномерный массив В(М) с количеством элементов, равным - количеству строк т.е. М. В этом массиве - будет храниться самое большое число в каждой данной строке.
Берём первое число в каждой строке - запоминаем его в массиве В. Берём второе число в каждой строке, сравниваем его с соответствующим числом в массиве В - если больше сохраняем в массиве и т.д! После перебора всех столбцов N - у нас в массиве В - будут максимальные числа в каждой строке! Индекс элемента массива В - равен номеру строки М


VinchensooДата: Вторник, 21 Декабря 2010, 13:33 | Сообщение # 10
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Serg1971)
Найти в каждой строке матрицы максимальный элемент.

Cсори, прочитал "в какой". Думал номер строки.
Тогда действительно нужно идти во всех строках сразу, в каждой выделяя максимум


Форум игроделов » Программирование » C/C++ » решение задания по матрицам (вопрос)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг