Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Sokira
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 3
#1

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

30.05.2012, 21:14. Просмотров 1936. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа тестер, не могу придумать как сделать чтоб тест закончился( (Delphi):

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

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

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

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

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

Не могу придумать, как сделать вывод - Java
Вывести все возможные комбинации 4 цифр . Заранее прошу прощение за быдло-код. Я пока учусь) public class juli { public...

4
Одиночка
3927 / 1852 / 88
Регистрация: 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
Одиночка
3927 / 1852 / 88
Регистрация: 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
Привет! Вот еще темы с ответами:

Не могу придумать, как правильно сделать меню резделов HTML и CSS - HTML, CSS
Вот как должно быть! А вот что получается! Код:

не могу придумать, Как сделать объединение, буду благодарен, если поможете - C++
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> int main() { ...

при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"? - C++
Сабж g++ 4.5.0

Как сделать чтоб программа повторялась - Pascal ABC
Вот моя программа Program Calculator; uses crt; Var a,b,c: real; fl:integer; Begin textbackground(lightblue); clrscr; ...


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

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

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