61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
||||||
1 | ||||||
Вывод из массива случайного элемента (программа тестирования)27.09.2009, 18:51. Показов 2087. Ответов 16
Метки нет (Все метки)
То есть например мы заходим в программу, она выдает нам например 5 вопрос. мы вводим желаемый вариант ответа например, мы вводим b Жмем ввод. Опять выводится например 3 вопрос. мы вводим желаемый вариант ответа например, мы вводим с Жмем ввод. и так далее, пока не закончится цикл в данном случае 5 раз. В данный момент все прекрасно работает, но генерируемые вопросы повторяются. Помогите пожалуйста в решении проблемы. P.S. создавал похожую тему с генерацией случайного числа, но в данном примере применить не удалось.
0
|
27.09.2009, 18:51 | |
Ответы с готовыми решениями:
16
Вывод случайного элемента массива Вывод случайного элемента массива Вывод случайного элемента массива Вывод случайного ЭЛЕМЕНТА из массива |
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
27.09.2009, 19:35 | 2 |
создаешь массив A типа bool и если вопрос номер N задал, то ставишь A[N] = true; потом при генерации получив некий новый вопрос S проверяешь A[S] == false если да, то задаешь его, иначе генерируешь новое число
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
27.09.2009, 19:40 | 3 |
Если на словах, то просто надо создать массив элементов типа int. Перед генерацией номера вопроса необходимо его обнулить (всем элементам массива присвоить 0). Саму генерацию случайного номера вопроса поместить в цикл (проверкой цикла является, что новый номер не равен ни одному элементу в массиве). При выполнении этого условия заносить новый номер вопроса в массив.
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
27.09.2009, 19:44 | 4 |
valeriikozlov, не оптимально. так как при количестве вопросов около 1000 ты с каждой новой генерацией ты делаешь нереально много операций. Не проще ли обращаться непосредственно по известному индексу?
1
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
27.09.2009, 19:51 | 5 |
Полностью согласен.
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
27.09.2009, 20:05 [ТС] | 6 |
извините но я не чего не понял.
Ну вопросов будет около 20 - 30 в масиве. А как реализовать проверку в цикле, что бы переменная h != h когда цикл идет 2 раз, 3 раз, 4 раз и 5 раз.
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
27.09.2009, 20:28 | 7 | |||||
задаешь массив A можно bool, можно int размерностью такой сколько у тебя вопросов. Если bool, то ставишь все значения в true, если int - в любое кроме 0. Потом когда проходит генерация ты смотришь то число которое сгенерировалось(пусть будет N), и обращаешься к своему массиву A по индексу N и смотришь, если значение этого элемента true(или отличное от 0) то задаешь этот вопрос, а элемент массива с индексом N ставишь в false(или 0). Если же при обращении к массиву по индексу N ты получаешь значение false(или 0), то не задаешь вопрос, а генерируешь новое число с которым и повторяешь те же операции и так пока не закончится твой цикл
Добавлено через 11 минут вот скомпилируй эту программку
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
27.09.2009, 20:41 [ТС] | 8 |
спс конечно, но я не понял что у тебя за код. И к чему он вообще. Все вопросы должны быть в масиве. (это важно по условию, и не как иначе.)
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
27.09.2009, 20:45 | 9 |
я показал суть как блокировать повторы, то что ты и просил
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
27.09.2009, 20:47 [ТС] | 10 |
а как то можно через масив этот... Например генерируется переменная h, а на 2 разе уже проверка?
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
27.09.2009, 21:24 | 11 |
на самом деле проверка еще с первого раза есть, но проходит только со второго, в первый раз просто условие не выполняется
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
27.09.2009, 21:32 [ТС] | 12 |
вот а так можно сделать?
в цикле генерируется число например h=7 далее генерируется число например h=5 и уже идет проверка if (h!=h) такое можно реализовать?
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
27.09.2009, 21:36 | 13 |
nepster, а какой смысл от этого?
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
27.09.2009, 21:41 [ТС] | 14 |
ну если число h=h заставляем генерировать новое число если нет то выводим 2 вопрос
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
27.09.2009, 21:53 | 15 |
nepster, я писал уже ответ на этот вопрос
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
||||||
27.09.2009, 22:42 [ТС] | 16 | |||||
блин сори, я все понял, до меня дошло...
Сори - туплю =).. ну только учусь =) я исправлюсь
0
|
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
|
||||||
28.09.2009, 09:59 | 17 | |||||
кстати, мне кажется что будет удобнее хранить вопросы и ответы в одной структуре.
0
|
28.09.2009, 09:59 | |
28.09.2009, 09:59 | |
Помогаю со студенческими работами здесь
17
Вывод случайного массива, вылетает программа Вывод случайного элемента в <div> из массива текстовых документов расположенных в одной папке Выбор случайного элемента из массива и умножить его на другой случайный элемент из массива? Выбор случайного элемента массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |