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

Процедура ввода массива из строки текста

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

//Считывание массива из строки символов

procedure getArrayFromStr(var a:TArray100; var count:integer; const s:String);

var wordEndPos : integer; w : String[20];

begin

count := 0;

while length(Trim(s))>0 do

begin

// Удаляем пробелы

s:=Trim(s);

// Находим позицию конца очередного слова

wordEndPos:=Pos(' ',s); // Ищем пробел

if wordEndPos = 0 // Пробела не нашли,

then // значит конец слова это конц строки

wordEndPos := length(s)

else // Конец слова левее пробела

wordEndPos := wordEndPos -1;

// Копируем слово в переменную w

w:= Copy (s,1,wordEndPos);

// и удаляем его из строки

Delete (s,1,wordEndPos);

// Увеличиваем счетчик слов на 1

count := count + 1;

//Преобразуем слово в число и записываем в массив

a[count]:=strToInt(w);

end; // Конец цикла поиска слов и формирования массива

end; // Конец цикла поиска слов и формирования массива

Процедура ввода массива из компонента tMemo

В эту процедуру передаются по наименованию имя массива, имя переменной целого типа, в которой будет записано количество элементов массива, и ссылка на компонент типа TMemo, в котором в виде последовательности строк записаны элементы массива. То есть, массив расположен вертикально.

//Считывание массива из Memo

procedure getArrayFromMemo(var a:TArray100; var count:integer;

mem: TMemo);

var i: integer;

begin

//Узнаем количество строк

count := Mem.Lines.Count;

// Поочередно обрабатываем строки

for i := 0 to count - 1 do a[i+1]:= strToInt(Mem.Lines[i]);

end;

Процедура ввода массива с помощью функции InputBox

Массив можно ввести, используя функцию InputBox. В этом случае ввод будет осуществляться поэлементно, причем, вначале необходимо будет ввести количество элементов в массиве. В процедуру передаются по наименованию имя массива и имя переменной целого типа, в которой будет записано количество элементов массива.

//Считывание массива из InputBox

procedure getArrayFromInputBox(var a:TArray100; var count:integer);

var i:integer; w:String;

begin

w:= InputBox('Ввод массива типа TArray100',

'Сколько элементов ввести', '5');

count := strToInt(w);

for i := 1 to count do

begin

w:= InputBox(format('Ввод массива из %d элементов', [count]),

'Введите элемент № '+intToStr(i), '0');

a[i]:= strToInt(w);

end;

end;

Функция преобразования массива в строку символов

Функция формирует из чисел массива строку, в которой числа разделены пробелами. Эта строка может быть выведена в showMessage, компоненты TEdit, TLabel, и другие подобные компоненты.

Для работы функции передается ссылка на массив и его размер. Возвращает функция – строку.

//Преобразование массива в строку

function ArrayToStr(const a:TArray100; count:integer):string;

var i: integer;

begin

result := '';

for i:=1 to count do result := result + ' ' + intToStr(a[i]);

end;