ЗНАЕТЕ ЛИ ВЫ?

Ввод и вывод информации в Delphi.



 

Программы, которые были ранее разработаны в системе Delphi, позволяли выводить информацию на экран компьютера или вводить информацию с клавиатуры с отображением ее на экране. Однако основными задачами, ради которых были разработаны компьютеры, являются задачи по обработке информации, в том числе задачи вычислительного характера. Поэтому дальнейший материал будет посвящен составлению программ для решения вычислительных задач.

Простейшими программами являются программы с линейной алгоритмической структурой, которая предполагает выполнение команд последовательно друг за другом. Программы линейной структуры с вычислениями обычно включают в себя следующие этапы:

1. ввод исходных данных;

2. вычисление требуемой величины;

3. вывод результата.

Соответствующая этим этапам блок-схема линейного алгоритма будет следующей:

 

 

 
 

 


Рис. 62 Блок-схема линейного алгоритма

 

Простейшим оператором ввода и вывода является рассмотренный нами оператор присваивания. В системе программирования Delphi ввести исходные данные и вывести результат позволяют различные компоненты.

Для ввода данных удобно использовать компонент TEdit. Для этого необходимо с помощью мыши установить в текстовом поле курсор и ввести с клавиатуры текст. Вводимая строка отображается в свойстве Text компонента TEdit и воспринимается программой как набор символов. Цифровые символы можно преобразовать в числа с помощью соответствующих типу числа функций преобразования.

Таблица 9. Функции преобразования

Функция Значение функции
IntToStr (x) Преобразует целое число в строку символов.
StrToInt (x) Преобразует строку символов в целое число.
FloatToStr (x) Преобразует вещественное число в строку символов.
StrToFloat (x) Преобразует строку символов в вещественное число.
FloatToStrF(x, f, k, m) Преобразует вещественное число в строку символов в соответствии с указанными параметрами: f – формат (способ изображения); k – точность (нужное количество цифр); m – количество цифр после десятичной точки
Chr (x) Возвращает символ, соответствующий ASCII коду числа х.

 

Для вывода информации можно использовать компонент TLabel. Чтобы увидеть результат работы программы, нужно присвоить свойству Caption компонента TLabel новое значение. Свойство Caption символьного типа. Поэтому выводимое число следует преобразовать в строку символов с помощью соответствующих типу числа функций преобразования.

Рассмотрим проект, в котором реализуется линейная алгоритмическая структура, и используются функции преобразования.

 

Пример.На рис. 62 приведен вид диалогового окна пересчета скорости из км/ч в м/с. Составить программу, которая по щелчку на кнопке выполняет этот перевод (исходная скорость выражается целым числом).

 

Создадим графический интерфейс окна по образцу, изображенному на рис. 63. Для этого поместим на форму текстовое поле TEdit, кнопку TButton и 2 надписи TLabel. Удалим содержимое свойства Text у компонента Edit1. У надписи Label1 запишем в свойстве Caption сообщение «Введите скорость в км/ч». Для кнопки Button1 введем заголовок «Пересчет».

 

Рис. 63 Графический интерфейс окна

 

Исходные данные – скорость в км/ч – будем вводить в текстовое поле Edit1. Результат перевода выведем в надпись Label2.

В данном проекте можно выделить следующие этапы линейного алгоритма:

1. Ввести в поле Edit1 скорость в км/ч.

2. Перевести скорость из км/ч в м/с.

3. Вывести в надпись Label2 скорость в м/с.

Рассмотрим каждый этап линейного алгоритма.

1. Для обозначения исходной скорости в км/ч введем дополнительную переменную целого типа V1. Присвоим переменной V1 значение свойства Text компонента Edit1.

V1:=Edit1.Text;

Однако такая запись является неверной, так как типы данных до и после знака присваивания не совпадают: переменная V1 целого типа, а свойство Text компонента Edit1 имеет строковый тип данных. Чтобы далее производить вычисления с вводимыми в поле Edit1 цифрами, которые пока воспринимаются программой как текст, необходимо преобразовать их в числовой формат. В данном случае необходимо использовать функцию StrToInt (преобразует строку в целое число). Таким образом, текст команды ввода будет иметь следующий вид:

V1:= StrToInt (Edit1.Text);

2. Чтобы перевести скорость из км/ч в м/с нужно умножить значение скорости на 1000 и разделить 3600 (в 1 километре – 1000 метров, в 1 часе – 3600 секунд). Введем еще одну переменную V2 для обозначения скорости в м/с. Таким образом, для расчета скорости в м/с используется следующий оператор:

V2:=V1*1000/3600;

Переменная V2 будет вещественного типа, так как в выражении для ее вычисления имеется операция деления.

3. Для вывода полученной скорости предназначен компонент Label2. Поэтому необходимо свойству Caption компонента Label2 присвоить значение переменной V2:

Label2.Caption:= V2;

Данная запись опять нарушает соответствие типов данных, так как в свойстве Caption у надписи могут отображаться только данные символьного типа, а переменная V2 – это вещественное число. Поэтому необходимо преобразовать переменную V2 вещественного типа в строку функцией FloatToStr (преобразовать вещественное число в строку). Текст команды вывода будет выглядеть следующим образом:

Label2.Caption:= FloatToStr(V2);

При выводе результата часто к полученным значениям добавляют комментарии. Например, в данном проекте можно к значению скорости добавить запись её единиц измерения ‘м/с’. В программе эта запись указывается в одиночных кавычках (апострофах), т.к. является символьной константой. Таким образом, вывод результата может иметь следующий вид: Label2.Caption:= FloatToStr(V2)+ ‘м/с’;

 

Так как мы ввели дополнительные переменные V1 и V2, то нужно указать их тип в разделе описаний переменных. Все переменные, используемые в Delphi, подразделяются на два основных вида. Это глобальныепеременные, которые могут использоваться во всей программе, и локальныепеременные, которые можно использовать только внутри определенной процедуры.

В данном случае опишем переменные как локальные внутри процедуры TForm1.Button1Click. Для этого после заголовка процедуры введем раздел описания переменных, который открывается зарезервированным словом var. Описание переменных будет выглядеть так:

var V1: integer; V2: real;

Таким образом, текст обработчика события для кнопки Пересчет будет выглядеть следующим образом:

 

procedure TForm1.Button1Click(Sender: TObject);
var V1: integer; V2: real;
begin
V1:= StrToInt (Edit1.Text);
V2:= V1*1000/3600;
Label2.Caption:= FloatToStr(V2) + ‘м/с’;
end;

Рис. 64 Работающее приложение

 

Можно было написать программу и без ввода дополнительных переменных:

 

procedure TForm1.Button1Click(Sender: TObject);
begin
Label2.Caption:= FloatToStr((StrToInt (Edit1.Text))*1000/3600) + ‘м/с’;
end

 

Чтобы программа была готова к вводу новых данных, нужно очистить текстовое поле и поместить в него курсор. В Delphi для этого применяются методы:

- Clear (Очистить)

- SetFocus (Передать фокус ввода)

Учитывая эти методы, текст программы изменится на следующий:

 





Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.238.107.166 (0.007 с.)