Оператор выбора Case Of в Pascal.

Помимо условного оператора If в языке программирования Pascal существует оператор выбора Case of. Рассмотрим его применение на примере программы, которая выводит на экран то или иное сообщение, в зависимости от введенного числа.

Функции LENGTH и CONCAT.

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

Функции Pred, Succ в Pascal.

В данном уроке мы рассмотрим функции, применяемые к типу CHAR. Функция Pred возвращает в качестве значения предшествующий символ, а функция Succ возвращает последующий символ.

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

Инициализация одномерного массива.

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

Поиск минимального и максимального элементов массива.

Одной из наиболее распространенных задач обработки массивов является поиск минимального (максимального) элемента.

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

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