Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 43
MS Access

Тестирующее приложение: получать вопросы в случайном порядке

24.04.2018, 20:49. Показов 1799. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, форумчане. Делаю сейчас небольшое тестирующее "приложение" по математике, не суть. Вроде как тестик сам сделал, теперь вопрос. Хочу сделать так, что бы вопросы брались из базы не подряд, а рандомно. А так же ответы на вопросы были в разных местах. Допустим у меня вопрос, что такое "множество" и ответы на него в таком порядке 1,2,3,4; а нужно что б было например 1 3 4 2 и каждый раз это менялось. Был вариант это осуществить с помощью рандома, но подумав логически
random(4) "несёт" в себе 0 1 2 3 4, если random(4)+1, то тогда может присутствовать 5. А так же могут быть повторяющиеся значения. Как поступить? Подскажите пожалуйста). А если легче говоря, то как исключить из рандома 0 и повторяющиеся числа

Добавлено через 1 час 3 минуты
Исключение повторений реализовал, что нужно добавить, что б исключить генерацию нулей?
Delphi
1
2
3
4
5
6
7
8
9
begin
  SetLength(arr,4);
  ch:=[];
  for i:=1 to Length(arr) do begin
    repeat
    arr[i]:=random(4);
    until not(arr[i] in ch);
    include(ch,arr[i]);
end;
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.04.2018, 20:49
Ответы с готовыми решениями:

Тестирующее приложение, задавать вопросы рандомно
как сделать в программе тест чтобы вопросы были рандомно? вот моя прога

Выдавать вопросы теста в случайном порядке
Имеются допустим,25 переменных Каждой из них присвоено случайное значение в пределах от 1 до 25 Каждая переменная - номер вопроса. ...

Выводить в случайном порядке вопросы в программе тестирования
Здравствуйте. У меня есть программа тестирования. Мне нужно сделать так что бы вопросы выводились рандомно. Короче по другому если...

11
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
24.04.2018, 21:27
при чем тут базы данных то?

Цитата Сообщение от Nancosss Посмотреть сообщение
что нужно добавить, что б исключить генерацию нулей?
random(4)+1
0
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 43
24.04.2018, 21:55  [ТС]
Стоит внимательно прочитать тему. Через базу данных мне нужно рандомно выбирать вопросы, хотел поинтересоваться, возможно ли это сделать как-то с помощью встроенных функций, или всё так же через массив.
И так же, стоило внимательнее прочитать. Мне нужно, что б были цифры от 1 до 4 в массиве в хаотичном порядке. Да я пробовал делать через random(3)+1, но это вызывало краш программы
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
24.04.2018, 22:56
Цитата Сообщение от Nancosss Посмотреть сообщение
что нужно добавить, что б исключить генерацию нулей?
В модуле Math есть функция RandomRange, в которой задаются параметрами генерация числа "от" и "до".
1
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 43
24.04.2018, 23:58  [ТС]
Понял, спасибо.
Вопрос на счёт очерёдности вопросов всё ещё в силе.
0
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
25.04.2018, 06:58
Цитата Сообщение от Nancosss Посмотреть сообщение
Да я пробовал делать через random(3)+1, но это вызывало краш программы
ну значит криво написанная прога то

Цитата Сообщение от Nancosss Посмотреть сообщение
Вопрос на счёт очерёдности вопросов всё ещё в силе.
создаешь массив, его заполняешь случайными значениями без дублей. все
0
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 43
25.04.2018, 07:04  [ТС]
На счёт массива без повторения это понятно. А как дальше работать с ADOTable и DBmemo?
Сейчас у меня это всё идёт через ADOTable1.Next; А как вызывать вопросы не по очереди, а через массив?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
25.04.2018, 07:18
Видны два варианта.
1. У ADOTable есть свойство RecNo, присваивая которому номер записи из массива, перемещаем указатель на нужную запись.
2. Если это не будет работать (зависит от СУБД), то сделать record с необходимыми полями, затем массив таких record'ов,
все вопросы и ответы "загнать" в этот массив записей и уже с ним работать, используя массив с рандомными индексами вопросов.
0
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
25.04.2018, 07:35
Лучший ответ Сообщение было отмечено Nancosss как решение

Решение

если есть таблица с вопросами, то там должно быть поле "номер вопроса"
далее перебираем массив в цикле и достаем вопросы простым SQL запросом
SQL
1
2
SELECT Номер_вопроса, Вопрос, ответ1, ответ2, ответ3, ответ4, правильный_ответ 
FROM Таблица_с_вопросами WHERE Номер_вопроса=i
если использовать MSSQL то даже массив не нужен, SQL сам умеет выводить диапазон и случайный вопрос
1
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 43
25.04.2018, 07:41  [ТС]
Это получается делать через адоквери?
0
25.04.2018, 07:42

Не по теме:

зачем задавать вопросы не требующие ответа?
разве Table умеет выполнять запросы?

0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
27.04.2018, 10:22
для ленивых есть Table.Locate
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2018, 10:22
Помогаю со студенческими работами здесь

Создать программу тестирования, где вопросы выдаются в случайном порядке
Подскажите пожалуйста как сделать программку, где вводится ряд вопросов (заранее). И программка в виде теста выдает в разнобой эти вопросы,...

В форму из файла должны выводиться, не повторяясь, вопросы к тесту в случайном порядке
Доброго времени суток! Перелопатила весь Киберфорум, но ничего похожего не нашла. Проблема: в форму из файла должны выводиться, не...

Тестирующее приложение по ПДД
помагите написать тестер по пдд на Делфи, чтоб выводилась картика, вопрос и ответы читались с тектового файла. было 40 вопросов, потом...

Тестирующее приложение: подсчет правильных ответов
Доброго времени суток! Помогите пожалуйста с тестом!!! Необходимо в вопросе №10 сделать подсчет правильных ответов! огромное спасибо!

Как создать тестирующее приложение с математическими формулами?
как создать тестирующий приложение с математическими формулами. Формулы написаны МС Ворде есть, надо только импортировать. Всем заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru