@Проект в среде Lazarus «Рост и вес»
Пусть
оптимальный вес человека определяется как рост минус 100см. Если фактический
вес человека меньше оптимального, то будем считать его худым, если больше, то
полным.
Создать
программу, выполняющую следующие действия:
Введя
рост и фактический вес и нажав кнопку «Расчет», можно определить, худой он или
полный и на сколько килограмм надо поправиться или похудеть.
@Новым в этой работе
являются:
использование
типов переменных - целочисленного и действительного (Integer и Real);
преобразование
строковых данных в числовой тип и числовые в строковые осуществляется с помощью
функций StrToInt, StrToFloat, IntToStr FloatToStr.
План
разработки программы
1.
Откройте новый проект.
2.
Разместите в форме экземпляры компонентов в соответствии с рисунком. В поле Edit1
будем вводить вес в килограммах, а в Edit2 – рост в сантиметрах.
3.
Для сохранения результатов расчета введем переменные:
faktW
– фактический вес, optW – оптимальный вес, Rost – рост, Delta – разница между
оптимальным весом и фактическим. В начале будем считать, что все данные у нас
целые числа.
В
блоке реализации перед словом implementation разместите описание
переменных:
var
factW:real;
Rost:
real;
OptW: real;
Delta: real;
4.
Выполните следующие действия:
Объект
|
Имя
свойства/событие
|
Значение
/ действие
|
Label1
|
Caption
|
Введите
вес
|
Label2
|
Caption
|
Введите
рост
|
Label3
|
Caption
|
Чистое
поле
|
Edit1
|
Text
|
Чистое
поле
|
@OnKeyPress// событие при нажатии клавиши клавиатуры
|
@Form1.ActiveControl
:= Edit2;// Делает активным объект Edit2, т.е. после окончания ввода
фокус перейдет в окно ввода Edit2.
|
Edit2
|
Text
|
Чистое
поле
|
OnKeyPress// событие
при нажатии клавиши клавиатуры
|
@Button1.SetFocus;//
Перемещает курсор на объект Button1
|
Button1
|
OnClick
|
factW := StrToInt(Edit1.text); Rost := StrToInt(Edit2.Text);
OptW :=Rost - 100; Delta := abs(factW - OptW); if OptW = factW then
Label3.caption := 'Ваш вес идеален! ' else if OptW > factW then Label3.caption:= 'Вам надо поправиться на ' +IntToStr(Delta)+
' кг. ' else
Label3.caption:= 'Вам надо похудеть на ' +IntToStr(Delta)+ ' кг. '
|
Комментарий
а)
Компонента Edit содержит информацию строкового типа, поэтому нам
необходимо для выполнения вычислений перевести ее в числовой вид.
б)
После выполнения арифметических действий результат вычислений нужно будет
разместить на форме в компоненте Label, которая так же может содержать
только информацию строкового типа.
в)
@Функция StrToInt преобразует
строку символов в целое число, функция IntToStr выполняет обратное
действие – целое число преобразует в строку символов.
5.
Сохраните проект, запустите и протестируйте его.
6.
Усовершенствуйте программу так, чтобы можно было вводить любые десятичные
величины. Для этого необходимо использовать вещественный тип переменных Real:
VAR
factW, optW, Rost, Delta : Real;
Комментарий
@Преобразование
действительных чисел в строковый тип и строковый тип в действительное число
выполняется с помощью функций: FloatToStr и StrToFloat.
Внесите
соответствующие изменения в обработку события OnClick компонента Button1.
Задание
для самостоятельного выполнения
Усовершенствуйте
проект:
сделайте
к программе заголовок, оформите рисунком
сделайте
шрифт выводимой реплики отличным от стандартного по виду, цвету и размеру,
вставьте
кнопку выхода из программы в виде рисунка, курсор при наведении на
рисунок-кнопку (выход) должен принимать форму руки.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.