ПРОЕКТ ПРИЛОЖЕНИЯ№ 2. ЗАДАЧА ОБ ОБМЕНЕ ВАЛЮТЫ
Объекты: поля редактирования, переключатели и их свойства. Программирование ветвлений
Цель работы: Создать форму с названием «Обмен валюты» для моделирования соответствующих операций обменного пункта. Применить поля редактирования (Edit) и переключатели (ltadioButton, радиокнопка), а также кнопки для выполнения вычислений и выхода из программы ( на рис. 1).
Окно программы :

| Код программы : | Комментарии к программе | 
| unit Unit1; | Заголовок модуля | 
| interface | Раздел декларации процедур и функций | 
| uses | Список использованных модулей | 
| Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; | |
| type | Описание классов и типов объекта TFORM1 | 
| TForm1 = class(TForm) | |
| RadioButton1: TRadioButton; | Компонента переключатель | 
| RadioButton2: TRadioButton; | Компонента переключатель | 
| Label1: TLabel; | Компонента метка | 
| Label2: TLabel; | Компонента метка | 
| Button1: TButton; | Компонента кнопка | 
| Button2: TButton; | Компонента кнопка | 
| Label4: TLabel; | Компонента метка | 
| Label5: TLabel; | Компонента метка | 
| Edit1: TEdit; | Поле ввода | 
| Edit3: TEdit; | Поле ввода | 
| Edit2: TEdit; | Поле ввода | 
| Edit4: TEdit; | Поле ввода | 
| Button3: TButton; | Компонента кнопка | 
| Button4: TButton; | Компонента кнопка | 
| procedure RadioButton2Click(Sender: TObject); | Заголовок процедуры-метода , которая выполняется при щелчке по компоненте переключатель RadioButton2 | 
| procedure Button2Click(Sender: TObject); | Заголовок процедуры – метода, которая выполняется при щелчке по кнопке Button2 | 
| procedure Button1Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по кнопке Button1 | 
| procedure RadioButton1Click(Sender: TObject); | Заголовок процедуры-метода , которая выполняется при щелчке по компоненте переключатель RadioButton1 | 
| procedure Button3Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по кнопке Button3 | 
| procedure Label4Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по метке Label4 | 
| procedure Button4Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по кнопке Button1 | 
| private | Раздел частные объявления | 
| { Private declarations } | |
| public | Раздел общедоступные объявления | 
| { Public declarations } | |
| end; | Конец описания типа Tform1 | 
| var | Описание глобальных переменных | 
| Form1: TForm1; | Основная форма | 
| kurs1, kurs2, summa : real; cod : integer; ed : string[9]; | Значение введенного курса 1-долара, курса2-рублей, и итоговая сумма Значение правильного преобразования строки в число, используется в процедурах Val (Edit3.Text, summa, cod); Текстовое значение вычисленной суммы SUMMA, используется при выводе Edit4.Text := ed; | 
| implementation | Раздел описаний процедур и функций | 
| uses Unit2; | Подключение второго модуля | 
| {$R *.dfm} | Добавление файла с описанием формы | 
| procedure TForm1.RadioButton2Click(Sender: TObject); | Заголовок процедуры | 
| begin | Начало процедуры | 
| Label4.Caption := 'р'; | В содержимое метки Label4 выводится символ 'р' | 
| Edit3.SetFocus; | Передается управление компоненте EDIT3 | 
| end; | Конец тела процедуры | 
| procedure TForm1.Button2Click(Sender: TObject); | Заголовок второй процедуры | 
| begin | Начало процедуры | 
| Close ; | Метод закрытие окна формы, приводит к завершению работы программы | 
| end; | Конец тела процедуры | 
| procedure TForm1.Button1Click(Sender: TObject); | Заголовок процедуры | 
| begin | Начало процедуры | 
| Val (Edit1.Text, kurs1, cod); | Процедура преобразование строкового типа данных Edit1.Text в числовой kurs1, признак успешного перевода- cod | 
| Val (Edit2.Text, kurs2, cod); | Процедура преобразование строкового типа данных Edit12.Text в числовой kurs1, признак успешного перевода- cod | 
| Val (Edit3.Text, summa, cod); | Процедура преобразование строкового типа данных Edit3.Text в числовой kurs1, признак успешного перевода- cod | 
| if RadioButton2.Checked = True then summa:= summa * kurs2 else summa := summa * kurs1; | Оператор условия, реализующий разветвляющийся алгоритм - альтернатива | 
| summa:=summa-summa/100; | Вычисляется сумма денег с вычетом 1% | 
| Str(summa:9:2, ed); Edit4.Text := ed; | Процедура преобразования числового значения Summa в текстовое Ed | 
| end; | Конец тела процедуры | 
| procedure TForm1.RadioButton1Click(Sender: TObject); | И так далее по всем командам модуля | 
| begin | |
| Label4.Caption := 'п'; | |
| Edit3.SetFocus; | |
| end; | |
| procedure TForm1.Button3Click(Sender: TObject); | |
| begin | |
| Edit1.Text:=' '; | |
| Edit2.Text:=' '; | |
| edit3.Text:=' '; | |
| Edit4.Text:=' '; | |
| end; | |
| procedure TForm1.Label4Click(Sender: TObject); | |
| begin | |
| if RadioButton2.Checked=false then | |
| begin | |
| Label4.Caption:='п'; | |
| RadioButton1.Checked:=False; | |
| RadioButton2.Checked:=True; | |
| end | |
| else | |
| begin | |
| Label4.Caption:='р'; | |
| RadioButton1.Checked:=True; | |
| RadioButton2.Checked:=False; | |
| end; | |
| end; | |
| procedure TForm1.Button4Click(Sender: TObject); | |
| begin | |
| Form1.hide; | |
| Form2.Show; | |
| end; | |
| end. | 
Самостоятельная работа.
Задача 2.1.Вставьте в созданную форму ещё одну кнопку для очистки полей денежных сумм. Выполните программу и убедитесь в правильности ее работы.
Подсказка. Для объектов Edit3, Edit4 в процедуре обработки события нажатия на кнопку очистки используйте команду присваивания их свойствам Text пустой строки (‘ ‘) .
Решение: Добавить на форму третью кнопку Button3, и написать текст процедуры по событию ONCLICK
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text:=' ';
Edit2.Text:=' ';
edit3.Text:=' ';
Edit4.Text:=' ';
end;
Задача 2.2.Обеспечьте появление подсказки «Введите курс купли» и «Введите курс продажи» после перемещения указателя мыши к полям Editl и Edit2 соответственно (см. п. 24).
Решение:
В окне Object Inspector выбрать свойство Hint и вписать текст подсказки
И так далее по заданию ( не забудьте , если не знаете как выполнить задание оставьте свободное место после текста задания)
 Приложение1.