- •Задача 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. База данных "Расходы"
Оглавление
Задача 1. Конвертер 5
Задача 2. Фунты-килограммы 7
Задача 3. Сила тока. 9
Задача 4. Сопротивление 12
Задача 5. Кафе 14
Задача 6. Любимый напиток 16
Задача 7. Электроэнергия 18
Задание 8. Осаго 21
Задание 9.Просмотр иллюстраций 25
Задача 10. Калькулятор 27
Задача 11. Калькулятор-2 31
Задача 12.Секундомер 34
Задача 13. Угадай число 36
Задание 14.Угадай число-2 38
Задание 15.Запуск Internet Explorer 40
Задание 16.Конвертор 41
Задание 17.Конвертор 2 42
Задание 18.Погода 43
Задание 19.Средняя температура 45
Задание 20. Простая база данных 48
Задание 21. Редактор текста 51
Задание 22. Приветствие 53
Задача 23. Олимпийский флаг 55
Задание 24. Диаграмма 57
Задача 26. Круговая диаграмма. 61
Задача 27. Просмотр иллюстраций. 64
Задача 28 .Часы 65
Задача 29. Пинг понг. 68
Задача 30. Полет в облаках 71
Задача 31.Баннер 73
Задача 32. Фоновый рисунок 75
Задача 33. WAV 77
Задача 34. MP3 Player 78
Задача 35.Воспроизведение MIDI 80
Задача 36.Compact Disk Player (версия 1) 82
Задача 37.Compact Disk Player (версия 2) 84
Задача 38.VideoPlayer 84
Задача 39. Анимация 87
Задача 40. Записная книжка 89
Задача 41 Магазин 90
Задача 42. Ежедневник 92
Задача 43. Сапер 94
Задача 44 Игра 15 97
Задача 45. Игра "Собери картинку" (Puzzle) 99
Задача 46 Игра "Парные картинки" 104
Задача 47. Экзаменатор 107
Задача 48. Экзаменатор-2 111
Задача 49. Календарь 113
Задача 50. Будильник 115
Задача 51. Очистка диска 119
Задача 52.Печать 120
Задачи для самостоятельного решения 123
Задача 1. Скидка 123
Задача 2.Доход по вкладу 124
Задача 3. Таблица умножения 125
Задача 4.Поездка на автомобиле 125
Задача 5.Стоимость разговора 127
Задача 6. Стеклопакет 128
Задача7. Калькулятор 129
Задача 8. Электроэнергия 131
Задача 9. Добрый день 133
Задача 10. Часы 135
Задача 11. Узоры 135
Задача 12. Курс доллара 136
Задача 13. Диаграмма 138
Задача 14. Домашние животные 140
Задача 15. Кораблик 143
Задача 16. Сапер 146
Задача 17 .Экзаменатор 152
Задача 18. База данных "Расходы" 154
Задача 1. Конвертер
Наша задача состояла в том, чтобы создать программу, которая будет рассчитывать курс из долларов в рубли (Рис.1). Демонстрирует использует компоненты TextBox и Label для ввода и отображения числовых данных. Программа спроектирована таким образом, что пользователь может ввести в поля редактирования только правильные данные (число).
Рис. 1
Вывод: Мы научились создавать программу, которая рассчитывает курс валют. Узнали несколько новых терминов.
Листинг
include<vcl.h>
#pragmahdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
// код запрещенного символа заменим нулем, врезультате // символ в поле редактирования непоявится // Key - код нажатой клавиши // проверим, является ли символ допустимым
if ((Key >= '0') && (Key <= '9'))
return;
// глобальная переменная DecimalSeparator // содержит символ, используемый в качестве разделителя // при записи дробных чисел
if (Key == DecimalSeparator)
{
if ((Edit1->Text).Pos(DecimalSeparator) != 0)
Key = 0;// разделитель уже введен
return;
}
if (Key == VK_BACK)// клавиша<Backspace>
return;
if (Key == VK_RETURN)// клавиша<Enter
{
Edit2->SetFocus();
return;
}
// остальные клавший запрещен
Key = 0 ; // неотображатьсимвол
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{
if ((Key >= '0') && (Key <= '9'))
return;
if (Key == DecimalSeparator)
{
if ((Edit2->Text).Pos(DecimalSeparator) != 0)
Key = 0 ; // разделитель уже введен
return;
}
if (Key == VK_BACK)
return;
if (Key == VK_RETURN)
Button1->SetFocus();// переходккнопкеВычислить // повторноенажатиеклавиши<Enter> // активизируетпроцессвычисленияденег
return;
Key = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float usd; //доллар
float k; // курс
float rub; // рубли
if (((Edit1->Text).Length() ==0) ||
((Edit2->Text).Length() ==0))
{
MessageDlg("Haдo ввестиценуикурс",
mtInformation, TMsgDlgButtons() << mbOK, 0);
if ((Edit1->Text).Length() == 0)
Edit1->SetFocus();
else
Edit2->SetFocus();
return;
};
// вводисходныхданных
usd = StrToFloat(Edit1->Text);
k = StrToFloat(Edit2->Text);
//вычисление
rub = usd * k;
Label1->Caption = FloatToStrF(usd,ffGeneral,7,2) +
"$ = "+FloatToStrF(rub,ffGeneral,7,2) + " руб.";
}
//---------------------------------------------------------------------------
//щелчокнакнопкеЗавершить
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
Задача 2. Фунты-килограммы
Программа Фунты-килограммы (Рис.2). позволяет пересчитать вес из фунтов в килограммы. Программа спроектирована таким образом, что кнопка Пересчет доступна только в том случае, если пользователь ввел исходные данные.
Рис. 2
Листинг
fastcall TForml :: TForml ( TComponent * Owner) : TForm(Owner) { /* так как поле Editl пустое (пользователь еще не ввел исходные данные), то сделаем кнопку Пересчет недоступной*/ Buttonl->Enabled = False; // нажатие клавиши в поле Editl void fastcall TForml::EditlKeyPress(TObject *Sender, char &Key) { / / код запрещенного символа заменим нулем, в результате // символ в поле редактирования не появится // Key - код нажатой клавиши // проверим, является ли символ допустимым if ((Key >= '0') && (Key <= '9') return; Базовые компоненты 11_ // глобальная переменная DecimalSeparator // содержит символ, используемый в качестве разделителя // при записи дробных чисел if (Key == DecimalSeparator) { if ((Editl->Text).Pos(DecimalSeparator) ! = 0) Key = 0 ; // разделитель уже введен return; if (Key == VK_BACK) // клавиша <Backspace> return; if (Key == VK_RETURN) // клавиша <Enter> { Buttonl->SetFocus(); return; // остальные клавиши запрещены Key = 0 ; // не отображать символ // Содержимоеполя Editl изменилось void fastcall TForml::EditlChange(TObject *Sender) { // проверим, есть ли в поле Editl исходныеданные if ( (Editl->Text).Length() == 0) Buttonl->Enabled = False; // кн. Пересчет недоступна else Buttonl->Enabled = True; // кн. Пересчет доступна Label2->Caption = ""; 12 Часть 1. Примеры и задачи // щелчок на кнопке Пересчет void fastcall TForml::ButtonlClick(TObject *Sender) { double funt; // вес в фунтах double kg; // вес в килограммах // кнопка Пересчет доступна только в том случае, // если в поле Editl есть данные.Поэтому, // наличие в поле информации можно непроверять. funt = StrToFloat(Editl->Text); kg = funt * 0.4995; Label2->Caption = FloatToStrF(funt,ffGeneral,5,2) + " ф. - это " + FloatToStrF(kg,ffGeneral,5,2) + " кг";
