Проект в среде Lazarus «Рост и вес»
[pic]
Пусть оптимальный вес человека определяется как рост минус 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.
Задание для самостоятельного выполнения
Усовершенствуйте проект:
сделайте к программе заголовок, оформите рисунком
сделайте шрифт выводимой реплики отличным от стандартного по виду, цвету и размеру,
вставьте кнопку выхода из программы в виде рисунка, курсор при наведении на рисунок-кнопку (выход) должен принимать форму руки.