Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.doc
Скачиваний:
7
Добавлен:
17.04.2019
Размер:
1.6 Mб
Скачать

7.4. Массив строк типа string

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

Массив строк ST в разделе переменных VAR можно объявить следующим образом:

VAR ST: ARRAY[1..N] OF STRING; где N — верхняя граница массиве, то есть количество строк, которые одновременно могут находится в оперативной памяти. Значение N может быть задано в разделе констант CONST.

Инициализация массива строк

Наиболее часто используют три источника формирования массива строк. Первым источником является ввод информации с клавиатуры. При этом мож­но выделить два способа.

• Количество строк вводимого текста заранее известно и равно К, где К не пре­восходит размера массива строк N. Фрагмент программы выглядит следующим образом.

VAR ST: ARRAY[1..N] OF STRING; I, К: INTEGER;

BEGIN

...

WRITELN('Введите количество информационных строк');

READLN(K);

WRITELN('Введите информационные строки:');

FOR I := 1 TO К DO READLN(ST[I]);

• Количество строк заранее не известно. Признаком окончания ввода является пустая строка. Естественно, что количество строк не должно превышать N, то есть I < N.

VAR ST: ARRAY[1..N] OF STRING; I, К: INTEGER;

BEGIN

...

WRITELN('Введите информационные строки:'); FORI:= 1TON

DO BEGIN

READLN(ST[I]);

IF ST[I] = " THEN BREAK; {Пустая строка, конец ввода}

IF I = N THEN WRITELN('Введена последняя строка массива ST')

END;

Вторым источником массива строк является текстовый файл. Информация из текстового файла переписывается строка за строкой в массив строк, пока он не за­полнится информацией. После чего начинается обработка данных в массиве строк.

Третьим источником является длинная строка, содержащая сцепку коротких строк в области динамической памяти.

Прочитать содержимое I-ой строки массива ST можно следующим образом С:= ST[I], Где С: STRING строка текста.

Обратиться к J-ой литере I-ой строки массива ST можно следующим образом CH:=ST[I,J], где СН: CHAR переменная литерного типа.

Упорядочение строк в массиве

Одной из важнейших задач является сортировка массива строк по алфавиту. Например, процесс заполнения информацией о городах России массива ST идет c помощью географического атласа. Естественно, что в компьютерную базу заносятся названия городов, расположенных по территориальному принципу. А вот использо­вать список городов удобнее, если названия расположены в алфавитном порядке.

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

Для сортировки строк массива ST, содержащих названия K городов, будем ис­пользовать метод пузырька.

PROGRAM PR44;

CONST N = 50; {Максимальное число городов в списке}

VAR ST: ARRAY[1..N] OF STRING; I, J, К: INTEGER; L: STRING;

BEGIN

К:= 0; WRITELN('Вводите названия городов:');

FOR I:=1 TO N

DO BEGIN

READLN(ST[I]);

IF ST[I] = " THEN BEGIN

К := I - 1;

BREAK; {Пустая строка, конец ввода}

END;

IF I = N THEN BEGIN

К:= N;

WRITELN('Введена последняя строка массива ST')

END

END;

FOR I:= 2 TO К {Сортировка массива строк ST}

DO FOR J:=K DOWNTO I

DO IF ST[J-1]>ST[J]

THEN BEGIN {Переставить ST[J-1] с ST[J] местами}

L := ST[J-1]; ST[J-1] := ST[J]; ST[J] := L

END; {IF}

{ Вывод на экран отсортированного массива ST}

FOR I := 1 ТО К DO WRITELN(ST[I])

END.