русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ввод и вывод данных. Функции преобразования типов данных


Дата добавления: 2015-07-09; просмотров: 2462; Нарушение авторских прав


Для ввода данных часто используются окно редактирования 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() - переводит действительное число в строку

IntToStr() - переводит целое число в строку.

Например, вывод данных в диалоговое окно:

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;

 

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

unit factor;

interface

 

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

{$R *.DFM}

function factorial(n: integer): integer; // рекурсивная функция

begin

if n > 1

then factorial := n * factorial(n-1) // функция вызывает сама себя

else factorial:= 1; // факториал 1 равен 1

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

k: integer; // число, факториал которого надо вычислить

f: integer; // значение факториала числа k

begin

k := StrToInt(Edit1.Text);

f := factorial(k);

label2.caption:='Факториал числа ' + Edit1.Text + ' равен ' + IntToStr(f);

end;

end.
8 ЛИТЕРАТУРА

Основная литература

1. Фаронов, В.В. Delphi. Программирование на языке высокого уровня: В. В. Фаронов- СПб.: Лидер, 2010.

2. Фаронов, В.В. Delphi. Программирование на языке высокого уровня: учебник для вузов/ В. В. Фаронов- СПб.: Питер, 2009.

 

Дополнительная литература

1. Информатика и программирование: компьютерный практикум/ А. Н. Гуда [и др.] ; ред. В. И. Колесников- М.: ИТК "Дашков и К°", 2009.

2. Гагарина, Л.Г. Современные проблемы информатики и вычислительной техники: учеб. пособие/ Л. Г. Гагарина, А. А. Петров- М.: ИД "ФОРУМ", 2011..

 

 


Приложение 1



<== предыдущая лекция | следующая лекция ==>
Компиляция и исполнение программы | листинга процедуры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.26 сек.