Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет мой.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4.46 Mб
Скачать

Задача 12.Секундомер

Программа Секундомер (рис. 17), форма и окно которой приведены на рис. 1.13, демонстрирует использование компонента Timer.

Рис. 17

Вывод: В этом задании мы узнали как работать с компонентом Timer и научились делать секундомер.

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int min;

int sec ;

int msec;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Timer1->Enabled = false;

Timer1->Interval = 10;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if ( ! Timer1->Enabled )

{

// запустить таймер

Timer1->Enabled = true;

Button1->Caption = "ñòîï";

Button2->Enabled = false;

}

else

{

Timer1->Enabled = false;

Button1->Caption = "ïóñê";

Button2->Enabled = true;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

if ( msec < 99)

msec++;

else

{

msec = 0;

if ( sec < 59 )

sec++;

else

{

sec = 0;

min++;

Label1->Caption = IntToStr(min);

}

if ( sec <= 9 )

Label2->Caption = "0" + IntToStr(sec);

else Label2->Caption = IntToStr(sec);

Label4->Visible = ! Label4->Visible;

}

if ( msec <= 9 )

Label3->Caption = "0" + IntToStr(msec);

else Label3->Caption = IntToStr(msec);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

min = 0; sec = 0;

msec = 0;

Label1->Caption = "0";

Label2->Caption = "00";

Label3->Caption = "00";

}

Задача 13. Угадай число

Программа Угадай число (Рис. 18 и 19) демонстрирует использование компонента ProgressBar.

Рис. 18

Рис. 19

Вывод: В этой программе мы узнали как можно использовать компонент ProgressBar. Изучили свойства этого компонента.

#define TR 60 // время, отведенное на решение задачи int pw; // "секретное" число int rem = TR; // остаток времени на выполнения задания // конструктор формы fastcall TForml::TForml(TComponent* Owner) : TForm(Owner) 52 Часть 1. Примерыи задачи Label4->Caption = IntToStr(TR); // настройка индикатора // обратный отсчет, поэтому начальное значение // равно максимальному ProgressBarl->Max = TR; ProgressBarl->Position = TR; ProgressBarl->Step = 1; // шагизменения ProgressBarl->Smooth = true,- // индикатор - полоса // загадатьчисло Randomize() ; pw = RandomRange(100,999); // "секретное" число // сигнал оттаймера void fastcall TForml::TimerlTimer(TObject *Sender) { rem—; ProgressBarl->Position--; Label4->Caption = IntToStr(rem); if (rem == 0 ) { // время, отведенноена решение задачиистекло Timerl->Enabled = false; Editl->Enabled = false; Buttonl->Enabled = false; ShowMessage("К сожалению, Вы не справились с" " поставленной задачей\п \"Секретное\" число:" + IntToStr(pw) ); Базовые компоненты // щелчок на переключателе Полоса void fastcall TFonnl::CheckBoxlClick(TObject *Sender) { if ( CheckBoxl->Checked ) { // полоса ProgressBarl->Step = 1 ; // шагизменения ProgressBarl->Smooth = true; // индикатор - полоса else // сегменты ProgressBarl->Step = 6 ; // шагизменения ProgressBarl->Smooth = false; // индикатор -сегменты // проверяет, правильное ли число ввел игрок void fastcall TForml::isRight(void) { if ( StrToInt(Editl->Text) == pw ) { Timerl->Enabled = false; Buttonl->Enabled = false; Editl->Enabled = false; ShowMessage("Поздравляю!\пВы угадали число за " + IntToStr(TR - rem)+ " сек"); // Нажатие клавиши в поле редактирования void fastcall TForml::EditlKeyPress(TObject *Sender, char &Key) { if ( ( Editl->Text.Length() < 3) && 54 Часть 1. Примеры и задачи ((Key >= '0')&& (Key <= '9'))) return; if ( Key == VK_RETUKN) { isRight(); // проверить, правильноели числоввел // пользователь return; } i f ( Key == VK_BACK) return; // остальные символы запрещены Key = 0; // Содержимое поля редактирования изменилось void fastcall TForml::EditlChange(TObject *Sender) { // кнопка OK доступна только в том случае, // если в поле редактирования три ашвола (цифры) if ( Editl->Text.Length() == 3) Buttonl->Enabled = true; else Buttonl->Enabled = false; // щелчок на кнопкеOK void faatcall TForml::ButtonlClick(TObject *Sender) isRightO; // проверить, правильное ли числоввел // пользователь