які функції використовуються для перетворення типів даних при вводі та виводі, навести приклади
Ответы на вопрос
Ответ:
Для ввода данных часто используются окно редактирования Edit, позволяющее вводить одиночные текстовые ли числовые (после преобразования) данные (свойство Text).
Например, Fam := Edit1.Text;
Для ввода массивов данных удобно использовать таблицу StringGrid. Элементы таблицы нумеруются по столбцам и строкам, начиная с 0. Доступ к ячейкам производится через свойство Cells[col, row]. Таблица StringGrid по умолчанию содержит фиксированные строки и столбцы (свойство FixedCols и FixedRows), которые не перемещаются при использовании полосы прокрутки. При использовании для ввода массива их следует убрать - назначить свойствам FixedCols и FixedRows значение 0, а также разрешить редактирование данных в ячейках: назначить True свойству Option.goEditing. Нумерация строк и столбцов по умолчанию ведется с 0, поэтому первая ячейка таблицы: Cells[0,0].
Например, для ввода массива из 10 фамилий можно использовать следующий цикл:
For i:=1 to 10 do
Fam[i] :=StringGrid1.Cells[i-1,0];
Для ввода данных также используется функция InputBox(), выводящая заголовок, текстовое сообщение, поле ввода с указанным значением по умолчанию и кнопку ОК. Синтаксис:
InputBox( ACaption: String, APromt: String , ADefalt: String);
Где AСaption - заголовок окна, AProm - текстовое сообщение выводимое в окно, а ADefalt - значение по умолчанию, выводимое в поле ввода.
Пример:
Name:=InputBox('Окно ввода данных',' Введите имя', ' ' );
Переменной строкового типа Name присваивается значение, введенное пользователем в поле ввода (по умолчанию поле ввода пустое).
Или целой переменной b присваивается числовое значение, введенное в поле ввода диалогового окна:
b := StrToInt (InputBox('Окно ввода данных', ' Введите значение переменной b ', ' ' ));
Текст, вводимый пользователем в окно редактирования Edit, таблицу StringGrid, поле Memo, диалоговое окно InputBox и др. объекты представляет собой текстовую строку типа string. Поэтому при вводе в них чисел, над которыми предполагается выполнение арифметических операций, этот текст следует преобразовать к нужному числовому типу.
Для преобразования строки в числа используются функции:
StrToFloat() - преобразует тип данных String в действительное число;
StrToInt() - преобразует тип данных String в целое число;
Например, выражение StrToFloat(Edit1.Text) возвращает действительное число, получение в результате преобразования текста в окне Edit1.
Далее эти числа можно использовать в любых математических выражениях.
Для отображения результатов расчета часто используется функция ShowMessage(), отображающая диалоговое окно с текстовым сообщением. В качестве аргумента этой функции используется строка или совокупность строк соединенных знаком "+" типа String, поэтому числовые данные перед выводом их в окно следует преобразовать к строковому типу данных.
Также часто используется вывод данных в метку Label, свойству Caption которой присваивается нужный текст, в который включаются результаты расчета (путем преобразования их к типу String).
Итак, в эти элементы можно выводить только текст (данные типа String), поэтому все числа следует перевести в строковый тип данных, для чего используются функции:
FloatToStr() - переводит действительное число в строку
Например, вывод данных в диалоговое окно:
ShowMessage(' Дискриминант равен ' + FloatToStr(D));
Или в метку Label1, заранее созданную на форме:
Label1.Caption:= ' Дискриминант= ' + FloatToStr(D);
Для вывода надписи, используемой для вывода данных пользователем в несколько строк используется код клавиши Enter (13), осуществляющей переход на новую строку, следующим образом:
Label1.Caption:= ' Дискриминант= ' + FloatToStr(D) + #13 + 'Первый корень=' + FloatToStr(х1) + #13 + 'Второй корень=' + FloatToStr(х2) ;
Для формирования надписи Label на форме в несколько строк достаточно включить (поменять на True) свойство WordWrap метки. Выравнивание текста определяется свойством Alignment (например, по центру - taCenter)
Пример процедуры, вычисляющей при щелчке на кнопке Button1 произведение чисел a и b, вводимых пользователем в поля ввода Edit1 и Edit2 и использующей преобразование типов данных:
procedure TForm1.Button1Click(Sender: TObject);
var а, b, c: real;
begin
a := StrToFloat(Edit1.Text); // Первое число
b := StrToFloat(Edit2.Text); // Второе число
c := a* b; // Произведение
ShowMessage('Произведение чисел a*b = ' + FloatToStr(c));
Label1.Caption:='Произведение чисел a*b = ' + FloatToStr(c);
end;