Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2015, 19:52   #1
_Madina_
 
Регистрация: 13.04.2015
Сообщений: 4
По умолчанию переводчик. подсчет баллов

имеется программа, в которой рандомно выводятся слова при нажатии на button. При нажатии на другой button осуществляется проверка соответствия перевода со словом на др. языке. Вопрос: как сделать так, чтобы в label выводилось общее количество правильно переведенных слов?
_Madina_ вне форума Ответить с цитированием
Старый 11.05.2015, 20:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нужно завести глобальную переменную (или лучше даже две), перед тестом обнулять её, потом в ней прибавлять плюс 1, если ответили правильно (при желании, если надо, то в отдельной переменной считаем количество заданных вопросов. конечно, если число вопросов фиксированная величина, то эта переменная не нужна).
В конце выводим содержимое этой переменной - это и есть количество верных ответов.
Вот и всё.


при желании система подсчёта баллов усложняется - разным словам можно присваивать разный уровень сложности - чем сложнее слово, тем больше баллов оно будет приносить.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.05.2015, 20:57   #3
_Madina_
 
Регистрация: 13.04.2015
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
нужно завести глобальную переменную (или лучше даже две), перед тестом обнулять её, потом в ней прибавлять плюс 1, если ответили правильно (при желании, если надо, то в отдельной переменной считаем количество заданных вопросов. конечно, если число вопросов фиксированная величина, то эта переменная не нужна).
В конце выводим содержимое этой переменной - это и есть количество верных ответов.
Вот и всё.
когда я так сделала и воспроизвела программу, она посчитала только первый ответ, а дальше он не складывался с предыдущим правильным, а наоборот - уменьшался.
_Madina_ вне форума Ответить с цитированием
Старый 11.05.2015, 21:34   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от _Madina_ Посмотреть сообщение
когда я так сделала и воспроизвела программу, она посчитала только первый ответ, а дальше он не складывался с предыдущим правильным, а наоборот - уменьшался.
давайте исходный код проекта, посмотрим.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2015, 09:07   #5
PaHaNjkee
Delphi 10 Seattle
Пользователь
 
Аватар для PaHaNjkee
 
Регистрация: 01.11.2010
Сообщений: 90
По умолчанию

Код:
var
  global_count: integer = 0;

if ответ правильный then
begin
  Inc(global_count);
  Label1.Caption := 'Правильных ответов: ' + IntToStr(global_count);
end;
PaHaNjkee вне форума Ответить с цитированием
Старый 12.05.2015, 14:37   #6
_Madina_
 
Регистрация: 13.04.2015
Сообщений: 4
По умолчанию

Код:
procedure TForm6.Button2Click(Sender: TObject);
  a:integer; //глобальные переменные
  b: string; //глобальные переменные
   count:integer;  //глобальные переменные


var
  t: integer;
  begin
  t:=0;
if (b='Journey') and (form6.Edit1.text='ïóòåøåñòâèå') then
if (b='Commute') and (form6.Edit1.text='çàìåíÿòü') then
if (b='Peaceful') and (form6.Edit1.text='ìèðíûé') then
if (b='Magical') and (form6.Edit1.text='âîëøåáíûé') then
if (b='Trip') and (form6.Edit1.text='ïîåçäêà') then
if (b='Stopover') and (form6.Edit1.text='îñòàíîâêà') then
if (b='Flea market') and (form6.Edit1.text='áëîøèíûé ðûíîê') then
if (b='Voyage') and (form6.Edit1.text='ïóòåøåñòâèå') then
if (b='Marvel (at)') and (form6.Edit1.text='äèâèòüñÿ') then
if (b='Crowded') and (form6.Edit1.text='ïåðåïîëíåííûé') then
if (b='Chairlift') and (form6.Edit1.text='ëèôò') then
if (b='Cruise') and (form6.Edit1.text='ìîðñêîå ïóòåøåñòâèå') then
if (b='Marvelous') and (form6.Edit1.text='çàìå÷àòåëüíûé') then
if (b='Pricey') and (form6.Edit1.text='äîðîãîé') then
if (b='Funicular train') and (form6.Edit1.text='ôóíèêóëåð') then
if (b='Ride') and (form6.Edit1.text='ïîåçäêà') then
if (b='Fascinating') and (form6.Edit1.text='î÷àðîâàòåëüíûé') then
if (b='Legendary') and (form6.Edit1.text='ëåãåíäàðíûé') then
if (b='Muddy') and (form6.Edit1.text='ãðÿçíûé') then
if (b='Excursion') and (form6.Edit1.text='ýêñêóðñèÿ') then
if (b='Immense') and (form6.Edit1.text='îãðîìíûé') then
if (b='Remarkable') and (form6.Edit1.text='çàìå÷àòåëüíûé') then
if (b='Picturesque') and (form6.Edit1.text='æèâîïèñíûé') then
if (b='Protected') and (form6.Edit1.text='çàùèùåííûé') then
if (b='Backpacking') and (form6.Edit1.text='ïåøèé òóðèçì') then
if (b='Vibrant') and (form6.Edit1.text='äðîæàùèé') then
if (b='Awesome') and (form6.Edit1.text='èñïóãàííûé') then
label1.caption:=inttostr(t);
end;



procedure TForm6.Button1Click(Sender: TObject);
begin
count:=count+1;
label2.caption:=inttostr(count);
if count=15 then (form6.button1.enabled:=false);
randomize;
a:= random(29+1);
if a=1 then b:='Journey';
if a=2 then b:='Commute';
if a=3 then b:='Peaceful';
if a=4 then b:='Magical';
if a=5 then b:='Trip';
if a=6 then b:='Stopover';
if a=7 then b:='Flea market';
if a=8 then b:='Jovial';
if a=9 then b:='Voyage';
if a=10 then b:='Marvel (at)';
if a=11 then b:='Crowded';
if a=12 then b:='Chairlift';
if a=13 then b:='Cruise';
if a=14 then b:='Marvelous';
if a=15 then b:='Pricey';
if a=16 then b:='Funicular train';
if a=17 then b:='Ride';
if a=18 then b:='Fascinating';
if a=19 then b:='Legendary';
if a=20 then b:='Muddy';
if a=21 then b:='Excursion';
if a=22 then b:='Immense';
if a=23 then b:='Remarkable';
if a=24 then b:='Expedition';
if a=25 then b:='Picturesque';
if a=26 then b:='Protected';
if a=27 then b:='Backpacking';
if a=28 then b:='Vibrant';
if a=29 then b:='Awesome';
label3.Caption:=(b);
end;
_Madina_ вне форума Ответить с цитированием
Старый 12.05.2015, 16:54   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
procedure TForm6.Button2Click(Sender: TObject);
  a:integer; //глобальные переменные
  b: string; //глобальные переменные
  count:integer;  //глобальные переменные
Вы ОЧЕНЬ сильно ошибаетесь!!

Переменные, которые вы описали в процедуре - обработке нажатия на кнопку - ЛОКАЛЬНЫЕ.
уберите описания глобальных из процедуры и поместите туда, где у Вас описана форма:
поищите, должно быть что-то вроде:
Код:
var
  Form6 : TForm6;
вот там и добавьте описание нужных ГЛОБАЛЬНЫХ переменных.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тест наращивание баллов cyx БД в Delphi 0 29.04.2015 08:52
Среднее арифметическое с подсчетом баллов Novichok95 БД в Delphi 0 01.11.2012 11:59
Игра дартс,начисление баллов Alina111 Паскаль, Turbo Pascal, PascalABC.NET 1 08.06.2012 23:16
Определить сколько баллов было набрано.... Ins1De Общие вопросы C/C++ 2 14.11.2011 00:05
Задачка по Excel'ю на 5 баллов для решившего Egorio Microsoft Office Excel 2 20.12.2006 13:21