|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.06.2013, 14:27 | #1 |
Регистрация: 12.06.2013
Сообщений: 5
|
Проблема с выводом вопросов случайным образом на Делфи
При создание тестовой оболочки возникла проблема: с выводом вопросов случайным образом.
До того как не было добавлено условие чтобы вопросы теста находящиеся в файле при выводе случайным образом НЕ повторялись все работало теперь при выводе иногда выводятся все 10 вопросов а иногда 2 -3 пустые Пример вывода 10 вопроса: Код:
1 тема теста 2 Вопрос 1 3 Кол-во вариантов ответа(V) 4 Номер правильного(k) 5 вариант ответа1 6 вариант ответа 2 и т.д в зависимости от V - - - Вопрос 2 - Кол-во вариантов ответа(V) - Номер правильного(k) - вариант ответа1 - вариант ответа 2 и т.д в зависимости от V Цикл подсчета количества вопросов в базе Код:
481875212@mail.ru |
18.06.2013, 15:48 | #2 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
а если так:
a,b:array [0..количествовопросов-1] of integer for i=0 to количествовопросов-1 do begin b[i]:=i+1 end; for i=0 to количествовопросов-1 do begin a[i]:=b[Random(количествовопросов-i)-1)] for j=a[i]-1 to количествовопросов-i do begin b[j]:=b[j+1] end; end; теперь в массиве a лежат рандомно цифры от нуля до того количества которое вы зададите, и вы берете номера вопросов из этого массива Вот сижу и думаю что все у меня громоздко, давайте попросим профессионалов упростить эту идею, и уменьшить количество кода Последний раз редактировалось BoozZzilla; 18.06.2013 в 16:12. |
18.06.2013, 16:13 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Настя, подобные проблемы (случайные числа без повторений) на форуме обсуждались НЕОДНОКРАТНО.
рекомендую Вам воспользоваться поиском (или ознакомится, например, с этим моим постом #12 или с этим постом - Случайное перемешивание в массиве ) и сделать так: заполняете список (массив) с номерами вопросов. Перемешиваете (только правильно перемешиваете). Берёте номера вопросов из перемешанного списка. Всё. проблема решена! |
19.06.2013, 08:00 | #4 |
Регистрация: 12.06.2013
Сообщений: 5
|
Попробовала использовать массив данный код работает, но возникла проблема: Мне нужен массив от1 до N так как количество вопросов не ограничено причем эта N далее будет считаться
Код:
Исходник первый вариан http://letitbit.net/download/01106.0...ом648.rar.html Вот вариант с массивом http://letitbit.net/download/16474.1...648_2.rar.html Спасибо большое всем за ответы! |
19.06.2013, 08:40 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
достаточно написать так: Код:
|
|
19.06.2013, 09:41 | #6 |
Регистрация: 12.06.2013
Сообщений: 5
|
Если я правильно поняла то получается вот так, проверяла несколько раз ,3 раза выводит нормально все а 1 раз без одного вопроса
Код:
http://letitbit.net/download/13339.1...копия.rar.html |
19.06.2013, 10:48 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Настя, я чуть позже посмотрю исходники вашего проекта.
На будущее большая просьба к Вам - выкладывать архивы с проектом на форуме (нажимаете при ответе на "расширенный режим" - внизу "Управление вложениями" - там выбираете свой архив, нажимаете "Загрузить", "Ответить" и вуаля - файл прикреплён к вашему сообщению. p.s. да и вообще, пользоваться платной дрянью типа летитбит или депозитфайлес - категорически не рекомендую! ДОБАВЛЕНО нет, я так и не смог скачать архив с letitbit... извиняйте... Последний раз редактировалось Serge_Bliznykov; 19.06.2013 в 10:56. |
19.06.2013, 11:28 | #8 |
Регистрация: 12.06.2013
Сообщений: 5
|
Спсаибо, я раньше не замечала вложения.
|
20.06.2013, 03:09 | #9 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
Код:
Код:
на неконкретные вопросы даю неконкретные ответы ...
|
20.06.2013, 08:51 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Step_UA, просто отлично! Респект!
(особенно трюк с запоминанием правильного ответа в tag радиогруппы мне понравился, я бы до такого не додумался! ) только выделяемая под массивы память нигде не чистится. Это непорядок.. Или, если динамический массив объявлен в стеке (локальный в процедуре), то этого можно не делать?! 20Анастасия20, вопрос по данной теме (выдача случайных вопросов) можем считать закрытым? Последний раз редактировалось Serge_Bliznykov; 20.06.2013 в 08:54. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Случайным образом определить цвет карандаша и кисти. | vedro-compota | Мультимедиа в Delphi | 3 | 02.06.2010 13:27 |
Сформировать массив случайным образом... (Pascal ABC) | om3n | Помощь студентам | 2 | 14.04.2010 22:27 |
проблема с выводом в делфи | shelest | Помощь студентам | 5 | 02.03.2010 20:12 |
Генерация случайным образом | Golovastik | Общие вопросы C/C++ | 9 | 07.10.2009 23:28 |
[Pascal] вывод элементов из файла случайным образом | Рамик | Помощь студентам | 4 | 28.05.2009 17:18 |