![]() |
|
|
![]()
|
|
| Sergio |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: нет Всего: 1 |
Всем привет.
Нужно написать программу которая генерирует уравнение типа:
где поля некоторые могут быть пусты. игроку нужно вставить нужные числа, знаки. Например:
Также нужно игроку показать возможные варианты ответа. Как реализовать даную задачу? У меня есть идея но это хардкод и много кода. Заранее спасибо. |
||||
|
|||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
Хочешь меньше, тогда напиши кучу вариантов в ручную в текстовый файл и доставай оттуда случайно попавшийся... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
можно генерировать случайно 5 элементов: число, знак, число, знак, число.
Потом вычислять получившееся выражение и случайным образом скрывать какие-то из них -------------------- qqq |
|||
|
||||
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: нет Всего: 1 |
maxim1000, так и думаю сделать. Но вот проблемка мне чтобы знать какой знак использовать при вычислении нужно много блоков типа:
это слишком много писать. можно как-то покороче вычислить какой знак по рандому выпал? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
хм... да, похоже, тут надо будет писать парсер небольшой
правда, думаю, настолько небольшой, что и писать несложно: 1. определить первую операцию (по приоритету) 2. выполнить первую операцию 2. выполнить вторую операцию скобок тут не предвидится, так что сложностей особых, вроде, быть не должно... -------------------- qqq |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Здесь два варианта: сложный и простой.
Сложный: Я бы сделал абстрактный класс Calc с абстрактными же методоми calc(x,y) и symbol(). В качестве наследников классы Plus, Minus и так далее - сколько душе угодно. Метод calc(x,y) выдает результат вычисления. Метод symbol() - символ опереции "+", "-" и т.д. для вывода в тексте задания. 1. Согнал бы экземпляры этих классов в массив и из массива выбирал случайным образом. 2. Подставлял бы случайные целые числа и вычислял результат. 3. Случайно прятал бы несколько величин, а спрятанные величины делал одним из вариантов ответа. Простой: Как сказал cardinal, создай таблицу вариантов и выбирай случайным образом. Можно создать таблицу формул, а коеффициенты для них генерировать. Я очень много работал с составлением тестов для студентов и т.п. ИМХО составлять тесты програмно имеет смысл только если надо нагенерировать больше сотни однотипных вариатнов. Меньше - всегда быстрее вручную. Или в каком-нибудь Excel-е. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |