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

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

Ввод логических переменных с клавиатуры.

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

Процедуры STR и VAL.

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

...

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

Линейные процессы вычислений.

Простейший алгоритм представляет собой цепочку блоков (операторов) от начального блока до конечного. Каждый блок должен быть выполнен один единственный раз. Это линейный алгоритм. Он отражает ...

Тип данных Char.

Тип CHAR (литерный, символьный). Этот тип задает конечное упорядоченное множество символов (литер), допускаемое в конкретной реализации языка.

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

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


Комментарии  

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