Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЛР_ВТ.doc
Скачиваний:
3
Добавлен:
16.11.2019
Размер:
819.2 Кб
Скачать

1.5. Рекомендуемый план разработки проекта.

1. В соответсвии с рис.1.2. расположите необходимые компоненты. В Edit1 будем вводить вес в кг., а в Edit2 – рост в см.

Рис.1.2.

2. Введите в раздел VAR переменные для сохранения значений фактического веса (faktW), оптимального веса (optW), роста (Rost) и разницы между оптимальным весом и фактическим (Delta). Пусть значения этих переменных будут округленными, в этом случае тип этих переменных можно объявить как Integer.

VAR

factW, optW, Rost, Delta : integer;

3. Образуйте процедуру, реагирующую на щелчок по кнопке Button1, и заполните ее следующим кодом.

procedure TForm1.Button1Click(Sender: TObject);

begin

faktW := StrToInt(Edit1.text);

Rost := StrToInt(Edit2.Text);

OptW :=Rost - 100;

Delta := abs(faktW - OptW);

if OptW = faktW then Label3.caption := 'Ваш вес оптимален'

else

if OptW > faktW then Label3.caption := 'Вам надо поправиться на '+IntToStr(Delta)+' кг.'

else

Label3.caption := 'Вам надо похудеть на '+IntToStr(Delta)+' кг.'

end;

 

Считывание и преобразование строкового типа в целый из строки редактирования будет выполняться с помощью функции: StrToInt(Edit1.text);

Преобразование чисел целого типа в строковый и вывод будет выполняться с помощью функции: Label3.caption := IntToStr( ).

4. Введите заголовки смотрите рис.1.3.

5. В предыдущем пункте мы договорились вводить округленные исходные данные. Но это не всегда приемлемо. Усовершенствуйте программу так, чтобы можно было бы вводить десятичные величины. Для этого в разделе Var назовите тип переменных не Integer, а Real.

VAR

factW, optW, Rost, Delta : real;

Кроме этого, преобразование действительных чисел в строковый будет выполняться с помощью функции: FloatToStr( ).

В целом процедура Button1Click будет выглядеть следующим образом:

procedure TForm1.Button1Click(Sender: TObject);

begin

faktW := StrToFloat(Edit1.text);

Rost := StrToFloat(Edit2.Text);

OptW :=Rost - 100;

Delta := faktW - OptW;

if OptW = faktW then Label3.caption := 'Ваш вес оптимален'

else

if OptW > faktW then Label3.caption := 'Вам надо поправиться на '+FloatToStr(Delta)+' кг.'

else

Label3.caption := 'Вам надо похудеть на ‘ + FloatToStr(Delta)+' кг.';end;

Рис.1.3.

Для вывода числовых значений используется функция FloatToStrF, которая как и FloatToStr преобразует действительное число в его строковое представление. Однако она позволяет получать изображение числа в разных форматах.

В общем виде обращение к функции выглядит так:

S:= FloatToStrF(значение , формат, точность, количество цифр), где

Значение – число, изображение которого надо получить;

формат – именованная константа, определяющая вид строки;

точность – определяет точность представления преобразуемого числа;

количество цифр – зависит от используемого формата

 FfGeneral

Общий цифровой формат

FfExponent

Научный формат

FfFixed

Формат с десятичной точкой

6. Сделайте к программе заголовок, замените кнопку Button1 на кнопку BitBtn1, введите кнопку “Close”,

Письменно ответить на контрольные вопросы

Контрольные вопросы

  1. Какой объем памяти занимают данные типа Integer?

  2. Какие операции применимы к данным типа Integer?

  3. Какой диапазон значений охватывают данные типа Integer?

  4. Объясните смысл операций div и mod.

  5. Какие действия выполняет функция Trim?

  6. Какие действия выполняет Функция StrToint?

  7. Для чего применяются методы Show и Hide?

  8. Какие вещественные типы данных вы знаете?

  9. Опишите основные характеристики данных типа Real.

  10. Опишите структуру представления вещественных данных в памяти компьютера.

  11. Перечислите, какие стандартные математические функции Object Pascal вы знаете (укажите форму обращения к ним тип параметра и тип результата).

Лабораторная работа №2