Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник_Часть_2.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.12 Mб
Скачать

7.3. Преобразования типов

Общие положения

Типы переменных. Целочисленный и действительный типы переменных: integer и real.

Преобразование типов переменных из строкового в целочисленный или в дествительный. Функции StrToInt( ); FloatToStr(); Format();

Алгоритм выбора. Оператор условия if – then – else.

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

Известно, что оптимальный вес человека определяется так: рост человека минус 100. Если твой фактический вес меньше оптимального, то ты худой, и наоборот, если больше, то надо похудеть.

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

Рис. 7.3. Внешний вид приложения

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

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

Рис. 7.4. Исходный вид приложения

2. Сохраните оба файла проекта в папке Weight.

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

Var factW,optW,Rost,Delta:integer;

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

procedure TForm1.Button1Click(Sender: TObject);

begin

factW:=StrToInt(Edit1.text);

Rost:=StrToInt(Edit2.Text);

OptW:=Rost-100;

Delta:=absfactW-OptW);

if OptW=factW

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

else if OptW>factW

then Label3.caption:='Вам надо поправиться

на '+IntToStr(Delta)+' кг.'

Else Label3.caption:='Вам надо похудеть на

'+IntToStr(Delta)+' кг.'

end;

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

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

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

Var factW,optW,Rost,Delta:real;

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

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

procedure TForm1.Button1Click(Sender: TObject);

begin

factW:=StrToFloat(Edit1.text);

Rost:=StrToFloat(Edit2.Text);

OptW:=Rost-100;

Delta:=factW-OptW;

if OptW=factW

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

else if OptW>factW

then Label3.caption:='Вам надо поправиться на

'+FloatToStr(Delta)+' кг.'

Else Label3.caption:='Вам надо похудеть на ‘

+ FloatToStr(Delta)+' кг.';

e nd;

Рис. 7.5. Окончательный вид приложения

Упражнения

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

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

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

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

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

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

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

FfGeneral

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

FfExponent

- научный формат;

FfFixed

- формат с десятичной точкой.

3 . Сделайте к программе заголовок, замените кнопку Button1 на кнопку BitBtn1, введите кнопку «Close».