![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ATAMAN200 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2010 Репутация: нет Всего: нет |
Всем доброе время суток.
Вот не могу не как докумекать над таким действием. Имеется два двух мерных массива содержащие по три целых числа напимер 3,2,9 и 5,6,7 нужно с помощью операторов цикла for,while,switch перемножить каждое из трёх чисел по очереди то есть 3х5 3х6 3х7 далее 2х5 2х6 2х7 далее 9х5 9Х6 9х7 сразу говорю это не для учёбы. Пишу ГМ для SA MP мультиплеер. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
я тут вижу ток 2 одномерных массива
Это сообщение отредактировал(а) baldina - 18.11.2010, 19:08 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
или так:
|
|||
|
||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 3 Всего: 13 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
или так (если неохота двойные циклы создавать)
где 9 = n1*n2, а n1 , n2 - размеры массивов и == 3; Это сообщение отредактировал(а) mes - 19.11.2010, 01:09 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
можно функциональным объектом заменить mes, красиво. но лучше так не делать:
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
применительно к этой задачи, да. но 1. понимать как строить циклы, программист должен уметь..а для этого необходимо наглядное сравнение.. 2. для перемножения неопределенного кол-ва массивов классические циклы не подойдут.. придеться пользоваться подобным.. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
неопределенное на стадии компиляции.. а при перемножении уже известное.. к тому же умножение не суть вопроса.. эта задача на перебор возможных комбинаций..
вот пример из недавней форумской темы.. Это сообщение отредактировал(а) mes - 19.11.2010, 15:36 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
вот применительно к текущей теме :
http://liveworkspace.org/code/8d9b3b88bc00...4d6259509ae0013 естественно вместо 4 рядов может быть 10 или 100.. (главное чтоб итератор подходящий был) ну и m вводиться пользователем.. Это сообщение отредактировал(а) mes - 19.11.2010, 15:49 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
понял. хотя таки не вижу почему тут не быть классическим циклам... если итератор подходящий))
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
потому что с увелечением кол-ва циклов сложность возрастает, и код становится не поддерживаем.. относительно сравнимы только до 5-7 рядов.. дальше подход с классическими циклами начинает геометрически проигрывать .. Добавлено через 1 минуту и 47 секунд представте напримере хотя бы 20 классических циклов против все тех же двух циклов альтернативного подхода.. |
|||
|
||||
| baldina |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
а почему не заменить 20 циклов на
? Добавлено @ 17:42 это же и есть "альтернативный подход", ток без плясок с остатком от деления Добавлено @ 17:43 вот это:
Добавлено @ 17:44 внешний цикл вполне получается в виде
Это сообщение отредактировал(а) baldina - 19.11.2010, 17:45 |
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
суть не в остатке от деления.. это я для экономии писанины написал.. суть в динамическом кол-ве рядов вместо статического.. пример из соседний темы(приведенный выше), тоже является динамическим многорядным циклом, но никаких плясок с делениями не имеет.. Добавлено @ 18:21 смыслом можно решать задачу в лоб (то что я в этой теме называл "классическим" подходом, строя кучу циклов) и альтернативным (созданием итератора, или для простых случаев, его имитацией (как в случае с делением) ) Добавлено @ 18:24
перечитал еще раз, что Вы написали.. судя по всему мы об одном и том же говорим.. если у Вас претензия была только к "делениям", то еще раз повторюсь это был показательный пример, для демонстрации того, что многорядный цикл может содержаться в однорядном и что можно "выжать" из простого счетчика Это сообщение отредактировал(а) mes - 19.11.2010, 18:27 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |