
Преобразование типов
Так как в интерфейсе данные представлены строкой , то очень важно преобразование строковых данных в числовые. Для этого в Delphi используется ряд процедур и функций с возможностями форматирования:
StrToInt(S) – преобразует строку в целое число ( возможна ошибка )
StrToFloat(S) – преобразует строку в вещественное ( возможна ошибка )
IntToStr(X) - – преобразует целое значение строку
FloatToStr(X) - – преобразует вещественное значение строку
процедура Str( X, S) - преобразует числовое значение в строку.
процедура Val(S, X, N) - преобразует строку в числовое значение, при успешном преобразовании N=0;
FormatFloat(F, X) – преобразует числовое значение в строку согласно формата F. Формат F задается шаблоном типа String
Пример
var
X:Real; N:Integer;
Edit1.Text:=FormatFloat(‘0.00’, 0.5); // ‘0.50’
Edit1.Text:=FormatFloat(‘#.##’, 0.567);// ‘0.57’
Edit1.Text:=FormatFloat(‘#.##’, 1234.5);// ‘1234.5’
Edit1.Text:=FormatFloat(‘0.00’, 1234.5); // ‘1234.50’
Edit1.Text:=FormatFloat(‘#.##’, X); // // вывод X
Edit1.Text:=FloatToStr(X); // вывод X
Edit1.Text:=IntToStr(N); // вывод N
N:=StrToInt(Edit1.Text); // ввод N
X:=StrToFloat(Edit1.Text); // ввод X
Mассивы
Массив - это упорядоченная структура однотипных данных, хранящая их последовательно. Доступ к элементу массива осуществляется через его индекс. Тип массива описываются в разделе type следующим образом:
<Имя типа> = array [ диапазоны индексов ] of <тип элемента массива>;
В качестве типа для элементов массива можно использовать любые типы Delphi, кроме файловых. Диапазоны индексов представляют собой один или несколько диапазонов, перечисленные через запятую. Элементом одномерного массива является индексная переменная с одним индексом, например: R[1] , D[k+2] , List[2*i]
Пример
type
// описывается тип TMass (целочисленный массив из 6 элементов)
TMass = array [0..5] of Integer;
Переменные типа массив описываются в разделе var следующим образом:
<Имя переменной >: array [ диапазоны индексов ] of< тип элемента массива>
Пример
var
M: TMass; // M - целочисленный массив типа TMass
N,K: array [1..10] of Byte; // N, K - целочисленные массивы из 10 элементов
S: array [1..100] of String; // S – массив из 100 строк
X: array [1..10] of Real;// вещественный массив из 10 элементов
Помимо одномерных массивов можно использовать двумерные массивы ( аналоги таблиц ) и многомерные массивы. Элементом двумерного массива является индексная переменная с двумя индексами, например:
С[i,j] , L[k+2,3] , F[5,7]
Пример
Var
N2: array [1..5,1..10] of Integer; // целочисленный двумерный массив Mass2: array [0..2] of TMass; // двумерный целочисленный массив
При работе с массивом, как правило, используют цикл, а в цикле используют элементы массива (индексные переменные). С массивом работают поэлементно.
Пример
// ввод целочисленного массива N из 10 элементов из StringGrid
for i:=1 to 10 do
N[i] := StrToInt(StringGrid.Cells[ i-1,0];
// ввод строкового массива S из 100 элементов из StringGrid
for i:=1 to 100 do
S[i] := (StringGrid.Cells[ i-1,0];
// ввод двумерного массива Mass2, который представлен таблицей 6 x 3
for i:=0 to 3 do
for j:=0 to 5 do
Mass2[i,j] := StrToInt (StringGrid.Cells[ i,j];
Для вывода массива можно использовать компоненты StringGrid, ListBox.
Пример
// вывод целочисленного массива N из 10 элементов в ListBox
for i:=1 to 10 do
ListBox1.Items.Append(IntToStr(N[i]));
// вывод строкового двумерного массива N2 (5X10) в StringGrid
for i:=1 to 5 do
for j:=1 to 10 do
StringGrid.Cells[ j-1, i-1] :=IntToStr(N2[ i, j]);