Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Procedure TForm1.Button1Click(Sender: TObject); // кнопка «Тест»Содержание книги
Поиск на нашем сайте var R:integer; // объявление переменной «R» begin Randomize; // включение счетчика случайных чисел Timer1.Interval:= 1000; // включение таймера с интервалом в одну секунду H[1, 1]:= Random(99) + 1; // первое слагаемое в интервале 1-100 H[1, 2]:= Random(99) + 1; // второе слагаемое в интервале 1-100 H[2, 1]:= Random(99) + 1; // уменьшаемое в интервале 1-100 H[2, 2]:= Random(99) + 1; // вычитаемое в интервале 1-100 If H[2, 2] > H[2, 1] Then // вычитаемое строго больше уменьшаемого Begin R:= H[2, 1]; H[2, 1]:= H[2, 2]; H[2, 2]:= R; End; // обмен H[3, 1]:= Random(9) + 1; // первый множитель в интервале 1-10 H[3, 2]:= Random(9) + 1; // второй множитель в интервале 1-10 H[4, 2]:= Random(9) + 1; // делитель в интервале 1-10 H[4, 1]:= round((Int(Random(9)) + 1) * H[4,2]); //делимое в интервале 1-100 Label1.Caption:= IntToStr(H[1, 1]); // вывод первого слагаемого в Label1 Label2.Caption:= IntToStr(H[2, 1]); // вывод уменьшаемого в Label2 Label3.Caption:= IntToStr(H[3, 1]); // вывод первого множителя в Label3 Label4.Caption:= IntToStr(H[4, 1]); // вывод делимого в метку Label4 Label5.Caption:= IntToStr(H[1, 2]); // вывод второго слагаемого в Label5 Label6.Caption:= IntToStr(H[2, 2]); // вывод вычитаемого в метку Label6 Label7.Caption:= IntToStr(H[3, 2]); // вывод второго множителя в Label7 Label8.Caption:= IntToStr(H[4, 2]); // вывод делителя в метку Label8 //очистка полей с ответами школьника и меток с правильными ответами Edit1.Text:= '0'; Edit2.Text:= '0'; Edit3.Text:= '0'; Edit4.Text:= '0'; Label9.Caption:= ''; Label10.Caption:= ''; Label11.Caption:=''; Label12.Caption:= ''; Label13.Caption:= ''; // очистка метки с оценкой Label14.Caption:='60'; // на ответ дается 60 секунд button1.Enabled:=False; // блокировка кнопки «Тест» button2.Enabled:=True; // разблокировка кнопки «Проверить» Edit1.Enabled:=True; Edit2.Enabled:=True; Edit3.Enabled:=True; Edit4.Enabled:=True; Edit1.SetFocus; // установка фокуса на поле Edit1 end; Procedure TForm1.Button2Click(Sender: TObject); // кнопка «Проверить» var b:byte; v,e:integer; // V‑значение ответа, E‑номер нецифрового символа begin b:= 5; // начальное значение балловой оценки Val(Edit1.Text,v,e); // перевод ответа из строки в числовую переменную V If (e<>0) or ((H[1, 1] + H[1, 2]) <> v) then // введенная сумма ошибочная begin b:= b - 1; // оценка уменьшается на один балл Label9.Caption:=IntToStr(H[1, 1] + H[1, 2]); // вывод правильной суммы end; Val(Edit2.Text,v,e); If (e<>0) or ((H[2, 1] - H[2, 2]) <> v) Then // введенная разность ошибочная begin b:= b - 1; Label10.Caption:=IntToStr(H[2,1]-H[2, 2]); end; Val(Edit3.Text,v,e); If (e<>0) or ((H[3, 1] * H[3, 2]) <> v) Then // произведение ошибочно begin b:= b - 1; Label11.Caption:=IntToStr(H[3,1]*H[3,2]); end; Val(Edit4.Text,v,e); If (e<>0) or ((H[4, 1] / H[4, 2]) <> v) Then // частное от деления ошибочно begin b:= b - 1; Label12.Caption:=IntToStr(round(H[4,1]/H[4,2])); end; Label13.Caption:= IntToStr(b); // вывод оценки в метку Label13 Timer1.Interval:= 0; // отключение счетчика времени button1.Enabled:=True; // разблокировка кнопки «Тест» button2.Enabled:=False; // блокировка кнопки «Проверить» Edit1.Enabled:=False; Edit2.Enabled:=False; Edit3.Enabled:=False; Edit4.Enabled:=False; // блокировка полей ввода ответов end; Procedure TForm1.Button3Click(Sender: TObject); // кнопка «Выход» begin form1.Close; end; Procedure TForm1.Timer1Timer(Sender: TObject); // таймер Begin // уменьшение на одну секунду, оставшегося на ответ времени Label14.Caption:=IntToStr(StrToInt(Label14.Caption)-1); //если время на //ответ закончилось, то вызов процедуры обработки кнопки «Проверить» If Label14.Caption = '0' Then Button2Click(Button2); end; // конец процедуры Игра «Морской бой» (Delphi) В форме размещена таблица размером 7 Разместим компоненты: StringGrid1 (п. 2.3.2.4) (со свойствами: Enabled=False, ColCount=7, RowCount=7, FixedRows=0, FixedCols=0), поля Edit1 (число потопленных кораблей), Edit2 (число выстрелов, Text=0, ReadOnly=True), счетчик SpinEdit1 (п. 2.3.6.4) (число кораблей, MinValue=1, MaxValue=49) и две командные кнопки.
Рис. 8.1.6.1. Вид формы игры «Морской бой»
Приведем тексты процедур обработки событий.
|
|||||
|
Последнее изменение этой страницы: 2017-02-08; просмотров: 403; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.) |