Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Sokira
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 3
1

Программа тестер, не могу придумать как сделать чтоб тест закончился(

30.05.2012, 21:14. Просмотров 2122. Ответов 4
Метки нет (Все метки)

Мне нужно чтобы из ini файла в случайном порядке читались вопросы, например 3 штуки 1 тест, сделала, чтоб было не по порядку, теперь не могу придумать условие окончание теста, крутит все по кругу)

Randomize;
if ResponseQuest = OtvetUserStr then
begin
Inc(IntQuestTrue);
end
else
begin
inc(IntQuestFalse);
end;

for k:=1 to 3 do
randomize;
IntnextQuest[i]:=Random(9)+1;
Memo1.Lines.Clear;
Quests:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Quests.ini');
Memo1.Lines.Add(Quests.ReadString('Quest'+IntToStr(IntnextQuest[i]), 'Quest', 'Тест окончен!'));
Memo1.Lines.Add(Quests.ReadString('Quest'+IntToStr(IntnextQuest[i]), 'A', ' '));
Memo1.Lines.Add(Quests.ReadString('Quest'+IntToStr(IntnextQuest[i]), 'B', ' '));
Memo1.Lines.Add(Quests.ReadString('Quest'+IntToStr(IntnextQuest[i]), 'C', ' '));
ResponseQuest:=(Quests.ReadInteger('Quest'+IntToStr(IntnextQuest[i]), 'Otvet',0));


if (ВОТ СДЕСЬ ЧТО-ТО ДОЛЖНО БЫТЬ, ЧТОБЫ ПОСЛЕ 3Х ВОПРОСОВ ТЕСТИРОВАНИЕ ЗАКАНЧИВАЛОСЬ) then
ShowMessage('Тест окончен!'+#13+'Правильных ответов: '+IntToStr(IntQuestTrue)+#13+'Не правильных ответов: '+IntToStr(IntQuestFalse));
{ Start.Enabled:=true; }
IntQuestTrue:=0;
IntQuestFalse:=0;

end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 21:14
Ответы с готовыми решениями:

Не могу придумать алгоритм как сделать чтоб при нажатии на кнопку в поле едит (уже выведенному в нем числу)добавлялась е
Не могу придумать алгоритм как сделать чтоб при нажатии на кнопку Вutton1 в...

Как сделать, чтоб программа запускалась с запуском Винды?
Как сделать, чтоб программа запускалась с запуском Винды?=-O

как сделать чтоб программа реагировалла на щелчок мыши
как сделать чтоб программа реагировалла на щелчок мыши когда фокуса на...

КАК сделать чтоб rtf-файл открывался с картинками в дельфи не могу найти решение
Помогите как сделать чтоб rtf-файл открывался с картинками в дельфи (как на...

Как сделать чтоб рисовался не неоднородный граф, а однородный ? Т.е. чтоб были стрелочки)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants,...

4
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
30.05.2012, 22:52 2
Хотя тут есть ошибки, но окончание теста можно сделать проверку:
Delphi
1
If (IntQuestTrue+IntQuestFalse)=3 Then
0
Sokira
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 3
30.05.2012, 22:54  [ТС] 3
Цитата Сообщение от Одиночка Посмотреть сообщение
Хотя тут есть ошибки, но окончание теста можно сделать проверку:
Delphi
1
If (IntQuestTrue+IntQuestFalse)=3 Then

Я пробывала, почему-то не вышло,, попробую еще раз, но хз что ваще делать((( Через пару дней надо сдать дипломную О_о
0
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
30.05.2012, 23:04 4
Не вижу здесь зацикливания. Как вообще вызывается этот код? Предположу, что это клик какой-то кнопкой, которая меняет на следующий вопрос.
В таком случае, почему вы в конце этого кода обнуляете переменные, подсчитывающие количество правильных и неправильных ответов? Наверное там нужно написать:
Delphi
1
2
3
4
5
6
7
if If (IntQuestTrue+IntQuestFalse)=3 then
Begin
   ShowMessage('Тест окончен!'+#13+'Правильных ответов: '+IntToStr(IntQuestTrue)+#13+'Не правильных   ответов: '+IntToStr(IntQuestFalse));
  { Start.Enabled:=true; }
  IntQuestTrue:=0;
  IntQuestFalse:=0;
End;
И какой смысл делать 3 раза?
Delphi
1
2
for k:=1 to 3 do
 randomize;
Если хотите, чтобы вопросы не повторялись создайте множество. Сначала очистить его. Потом каждый раз заносить номер вопроса, который выдаётся. А при поиске проверять, если вопрос уже есть в множестве - повторять Random.
1
Sokira
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 3
30.05.2012, 23:16  [ТС] 5
Цитата Сообщение от Одиночка Посмотреть сообщение
Не вижу здесь зацикливания. Как вообще вызывается этот код? Предположу, что это клик какой-то кнопкой, которая меняет на следующий вопрос.
В таком случае, почему вы в конце этого кода обнуляете переменные, подсчитывающие количество правильных и неправильных ответов? Наверное там нужно написать:
Delphi
1
2
3
4
5
6
7
if If (IntQuestTrue+IntQuestFalse)=3 then
Begin
   ShowMessage('Тест окончен!'+#13+'Правильных ответов: '+IntToStr(IntQuestTrue)+#13+'Не правильных   ответов: '+IntToStr(IntQuestFalse));
  { Start.Enabled:=true; }
  IntQuestTrue:=0;
  IntQuestFalse:=0;
End;
И какой смысл делать 3 раза?
Delphi
1
2
for k:=1 to 3 do
 randomize;
Если хотите, чтобы вопросы не повторялись создайте множество. Сначала очистить его. Потом каждый раз заносить номер вопроса, который выдаётся. А при поиске проверять, если вопрос уже есть в множестве - повторять Random.


Не знаю каким чудом, но у меня все получилось!))) Спасибо всем за помощь)
0
30.05.2012, 23:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 23:16

Тестер в ПДД,не могу разобраться
Имеется 3 формы,я авторизуюсь как логин: ТЕСТ и пароль: ТЕСТ,а далее...

Программа - тест. Тестер. Конструктор тестов
У меня дипломный проект. Нужно создать программу, которая бы оценивала знания...

Не могу придумать, как сделать вывод
Вывести все возможные комбинации 4 цифр . Заранее прошу прощение за...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru