Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Задание №1. Написать программу, которая позволяет пересчитать цену из долларов в рубли или из рублей в доллары




Постановка задачи:

Написать программу, которая позволяет пересчитать цену из долларов в рубли или из рублей в доллары. Рекомендуемый вид формы приведен на рис. 3.1. Во время работы программы, в результате выбора вида конвертации, соответствующим образом должен меняться заголовок окна и текст, поясняющий назначение полей ввода.

Оформить отчет в программе MS Word, которая включает в себя постановку задачи, программную реализацию, блок-схему и результат выполнения программы.

Рисунок 3.1

 

Программная реализация:

// щелчок на переключателе USD >> руб.
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
// изменить заголовок окна
Form1.Caption := 'Конвертор: USD -> RUB';
// изменить текст перед полем Edit1
Label1.Caption := 'Сумма ($): ';
// установить курсор в поле Сумма
Edit1.SetFocus;
Label3.Caption := '';
end;
// щелчок на переключателе руб. >> USD
procedure TForm1.RadioButton2Click(Sender: TObject);
Примеры и задачи 27
begin
Form1.Caption := 'Конвертор: RUB -> USD';
Label1.Caption := 'Сумма (руб.): ';
Edit1.SetFocus;
Label3.Caption := '';
end;
// Щелчок на кнопке OK
procedure TForm1.Button1Click(Sender: TObject);
var
usd: real; // цена в долларах
rub: real; // цена в рублях
k: real; // курс
begin
k := StrToFloat(Edit2.Text);
if RadioButton1.Checked then
begin
// пересчет из долларов в рубли
usd := StrToFloat(Edit1.Text);
rub := usd * k;
Label3.Caption := FloatToStrF(usd,ffFixed,6,2) +
'$ = ' +
FloatToStrF(rub,ffCurrency,6,2);
end
else begin
// пересчет из рублей в доллары
rub := StrToFloat(Edit1.Text);
usd := rub / k;
Label3.Caption := FloatToStrF(rub,ffCurrency,6,2) +
' = ' +
FloatToStrF(usd,ffFixed,6,2) + '$';
end;
end;
// процедура обрабатывает событие EditChange
// компонентов Edit1 и Edit2
28 Часть 1
procedure TForm1.EditChange(Sender: TObject);
begin
// если в каком-либо из полей Edit нет данных,
// сделать кнопку Button1 недоступной
if (Length (Edit1.Text) = 0) or (Length (Edit2.Text) = 0)
then Button1.Enabled := False
else Button1.Enabled := True;
Label3.Caption := '';
end;
// нажатие клавиши в поле Сумма
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
case Key of
'0'..'9', #8: ; // цифры и <Backspace>
'.',',':
// Обработку десятичного разделителя
// сделаем "интеллектуальной". Заменим точку
// и запятую на символ
// FormatSettings.DecimalSeparator — символ,
// который при текущей настройке операционной
// системы должен использоваться при записи
// дробных чисел.
begin
Key := FormatSettings.DecimalSeparator;
// проверим, введен ли уже в поле Edit
// десятичный разделитель
if
pos(FormatSettings.DecimalSeparator,Edit1.Text) <> 0
then Key := #0;
end;
#13: // клавиша <Enter>
Edit2.SetFocus // Переместить курсор
// в поле Курс
else Key := #0; // остальные символы запрещены
end;
end;
Примеры и задачи 29
// нажатие клавиши в коле Курс
procedure TForm1.Edit2KeyPress(Sender: TObject;
var Key: Char);
begin
case Key of
'0'..'9', #8: ; // цифры и <Backspace>
'.',',':
begin
Key := FormatSettings.DecimalSeparator;
if
pos(FormatSettings.DecimalSeparator,Edit1.Text) <> 0
then Key := #0;
end;
#13: // клавиша <Enter>
Edit2.SetFocus // Переместить фокус
// на кнопку Ok
else Key := #0; // остальные символы запрещены
end;
end;

 


Поделиться:

Дата добавления: 2015-09-15; просмотров: 445; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.014 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты