- •Задача 1. Конвертер
- •Задача 2. Фунты-килограммы
- •Задача 3. Сила тока.
- •Задача 4. Сопротивление
- •Задача 5. Кафе
- •Задача 6. Любимый напиток
- •Задача 7. Электроэнергия
- •Задание 8. Осаго
- •Задание 9.Просмотр иллюстраций
- •Задача 10. Калькулятор
- •Задача 11. Калькулятор-2
- •Задача 12.Секундомер
- •Задача 13. Угадай число
- •Задание 14.Угадай число-2
- •Задание 15.Запуск Internet Explorer
- •Задание 16.Конвертор
- •Задание 17.Конвертор 2
- •Задание 18.Погода
- •Задание 19.Средняя температура
- •Задание 20. Простая база данных
- •Задание 21. Редактор текста
- •Задание 22. Приветствие
- •Задача 23. Олимпийский флаг
- •Задание 24. Диаграмма
- •Задача 26. Круговая диаграмма.
- •Задача 27. Просмотр иллюстраций.
- •Задача 28 .Часы
- •Задача 29. Пинг понг.
- •Задача 30. Полет в облаках
- •Задача 31.Баннер
- •Задача 32. Фоновый рисунок
- •Задача 33. Wav
- •Задача 34. Mp3 Player
- •Задача 35.Воспроизведение midi
- •Задача 36.Compact Disk Player (версия 1)
- •Задача 37.Compact Disk Player (версия 2)
- •Задача 38.VideoPlayer
- •Задача 39. Анимация
- •Задача 40. Записная книжка
- •Задача 41 Магазин
- •Задача 42. Ежедневник
- •Задача 43. Сапер
- •Часть 1. Примеры и задачи
- •Часть 1. Примеры и задачи
- •Задача 44 Игра 15
- •Часть 1. Примеры и задачи
- •Задача 45. Игра "Собери картинку" (Puzzle)
- •Задача 46 Игра "Парные картинки"
- •Задача 47. Экзаменатор
- •Задача 48. Экзаменатор-2
- •Задача 49. Календарь
- •Задача 50. Будильник
- •Задача 51. Очистка диска
- •Задача 52.Печать
- •Задачи для самостоятельного решения Задача 1. Скидка
- •Задача 2.Доход по вкладу
- •Задача 3. Таблица умножения
- •Задача 4.Поездка на автомобиле
- •Задача 5.Стоимость разговора
- •Задача 6. Стеклопакет
- •Задача7. Калькулятор
- •Задача 8. Электроэнергия
- •Задача 9. Добрый день
- •Задача 10. Часы
- •Задача 11. Узоры
- •Задача 12. Курс доллара
- •Задача 13. Диаграмма
- •Задача 14. Домашние животные
- •Задача 15. Кораблик
- •Задача 16. Сапер
- •Задача 17 .Экзаменатор
- •Задача 18. База данных "Расходы"
Задача 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; // проверить, правильное ли числоввел // пользователь
