Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции

.pdf
Скачиваний:
15
Добавлен:
11.04.2015
Размер:
764.74 Кб
Скачать

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

var ch:char; x, y:text;

begin

assign(x, ‘x.txt’); assign(y,’y.txt’); reset(x); rewrite(y);

while NOT EoF(x) do begin

while NOT EoLN(x) do begin

read(x,ch); write(y, ch); if ch=’ ‘ then begin

repeat read(x, ch); until ch <> ‘ ‘; write(y, ch); end;

end;

readLN(x)

writeLN(y);

end;

end.

Строковые типы

Являются расширением языка Pascal. Строковый тип данных обобщает символьный массив, позволяет динамически изменять длину строки.

Строковый тип – множество символьных цепочек произвольной длины. Синтаксическая диаграмма:

type Line=string[80]; var Myline: Line;

Youline:string[80];

Переменные в примере в качестве своего значения могут иметь любую последовательность символов произвольной длины от 0 до 80. Значение может быть присвоено или считано из файла.

Myline:=’пример строки’; Youline:=Myline;

31

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

Read(f, Myline);

Максимально допустимая длина строки – 255 символов. При описании можно не указывать длину строки тогда она будет максимальной – 255.

Line:string;

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

Myline:=’строка’; Myline:=Myline+’стала длинее’;

Память под строку резервируется по максимальной длине и используется только часть этой памяти реально занятой символами. В строке N байтов предназначены для хранения символов строки, а один байт – для значения текущей длины этой строки. Структура строки string:

Это используют для определения текущей длины строки Myline:=’QPRS’;

writeLN(Ord(Myline[0])); // результат 4 Myline[0]:=2;

writeLn(Myline);// будет напечатано QP Myline:=’’;

writeLN(Ord(Myline[0])); // результат 0

Стандартная функция Length – определяет текущую длину строки. Операции сравнения над строками:

< <= > >= = <> Действуют по правилу:

1.Более короткая строка всегда меньше более длиной.

2.Если длины строк равны, производится поэлементное сравнение символов.

Если при присвоении длина строки меньше чем длина строковой константы производится обрубание строки

var str:string[5]; begin

str:=’строка была длинна’; writeLN(str);

Доступ к отдельным элементам строки производится аналогично доступу

кэлементам одномерного массива. Но всегда необходимо учитывать текущую длину строки. Например:

var str:string[26];

32

Информатика. Конспект лекций тема №1. Автор Рожков В.И.

i:integer; begin str:=’A’;

for i:=1 to 26 do str[i]:=Chr(Ord(‘A’)+i-1); writeLn(str);

end.

Результат выполнения программы символ А. Правильная следующая программа

var str:string[26]; i:integer;

begin str:=’A’;

for i:=1 to 26 do str:=str+Chr(Ord(‘A’)+i-1); writeLn(str);

end.

33

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]