Проект в среде Lazarus Рост и вес

Автор публикации:

Дата публикации:

Краткое описание: ...



Проект в среде 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.

Задание для самостоятельного выполнения

Усовершенствуйте проект:

сделайте к программе заголовок, оформите рисунком

сделайте шрифт выводимой реплики отличным от стандартного по виду, цвету и размеру,

вставьте кнопку выхода из программы в виде рисунка, курсор при наведении на рисунок-кнопку (выход) должен принимать форму руки.