Приоритет выполнения логических операций в Pascal.

Логические операции применяются при написании многих программ в Pascal. Все операции имеют определенный приоритет выполнения : Первой выполняется операция NOT. Второй выполняется операция AND. Последними выполняются операции OR и XOR (Они имеют ...

Строковые константы в Pascal.

В качестве значения строковой константы может выступать любая последовательность символов. Эта последовательность заключается в апострофы. Строковая константа отличается от символьной константы тем, что здесь в качестве значения константы можно ...

Функции LENGTH и CONCAT.

Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. ...

Циклы и массивы

Программирование данных.

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

Отображение на экране значений двумерного массива.

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

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

Массив строк 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;

Вторым источником массива строк является текстовый файл. Информация из текстового файла переписывается строка за строкой в массив строк, пока он не заполнится информацией. После чего начинается обработка данных в массиве строк.
Третьим источником является длинная строка, содержащая сцепку коротких строк в области динамической памяти. Вы можете купить качественные наушники monster beats by dre по оптимальной и доступной цене. Прочитать содержимое I-ой строки массива ST можно следующим образом С:= ST[I], Где С: STRING строка текста.
Обратиться к J-ой литере I-ой строки массива ST можно следующим образом CH:=ST[I,J], где СН: CHAR переменная литерного типа.

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

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

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


PROGRAM PR15;
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.


Предыдущая статья: Манипулирование строками STRING.

Оглавление: Лекции по Паскаль. Часть 2.

Следующая статья: ЗАПИСИ. ТИП ДАННЫХ RECORD.


Комментарии  

 
0 # Ctht 01.12.2012 06:02
:sad: :sad: :sad: :sad: :sad:
 
 
+1 # Raziel 24.12.2012 14:26
Огромное спасибо сайту, вот задумался как инициализироват ь третий источник данных в массиве строк, а тут все подробно написано ;-)
 
 
+1 # Human 23.01.2013 15:39
Программа не выводит отсортированный список.
 
 
0 # lol 28.01.2013 17:50
мох тигр!! там половина проги на русском(TO,K)
 
 
+1 # Александр 05.02.2013 07:21
:sigh: :sigh: :sigh:
 
   ГлавнаяПаскальЛекции по Pascal. Часть 2.Массив строк типа STRING.