Тип переменных строка - string
Обработка элементов двумерных массивов (матриц) обычно выполняется с помощью двойного цикла. Один цикл управляет номером строки, другой – номером столбца.
При решении задач часто возникает необходимость в использовании последовательности символов. Такую последовательность можно описать как массив символов, однако в Паскале для таких целей имеется специальный тип – string[n] – строка из n символов, где n<=255. способы описания переменных – строк – аналогичны описанию массивов.
1). Строковой тип определяется в разделе описания типов, переменные этого типа – в разделе описания переменных:
type word : string[20];
var a,b,c : word;
2). Можно совместить описание строкового типа и соответствующих переменных в разделе описания переменных:
var a,b,c : string[20];
d : string[30];
3). Можно определить строковую переменную и ее начальное значение как констант-строку:
const l: string[11]=’информатика’;
Символы, составляющие строку, занумерованы слева направо; к ним можно обращаться с помощью индексов, как к элементам одномерного массива. Как же реализовать такое обращение? Для этого нужно написать переменную-строку, с номером символа в ней, указанным в квадратных скобках: S[1];
Для переменных одного строкового типа определен лексикографический порядок, являющийся следствием упорядоченности символьного типа:
‘fife’ < ‘tree’ ( так как ‘f’ < ‘t’);
‘4’ > ‘237 ( так как ‘4’ > ‘2’).
Кроме логических операций >, <, =, для величин строкового типа определена некоммутативная операция соединения, обозначаемая знаком плюс:
a:=’кол‘+’o’ + ‘кол‘; ( в результате a=’колокол’).
Для строковых величин определены следующие четыре стандартные функции.
1. Функция соединения – concat(s1,s2,…sk). Значение функции – результат соединения строк s1,s2,…sk, если он содержит не более 255 символов.
2. Функция выделения – copy(s,i,k). Из строки sвыделяется k символов, начиная с i-го символа:
a:=copy(‘крокодил’,4,3); (в результате a=’код’).
3. Функция определения длины строки – length(s). Вычисляется количество символов, составляющих текущее значение строки s:
b:=length(‘каникулы’); (b=8).
4. Функция определения позиции – pos(s,t). Вычисляется номер позиции, начиная с которого строка sвходит первый раз в строку t; результат равен 0, если строкаs не входит вt:
c:=pos(‘ом’, ‘компьютер’); (c=2).
В Паскале определены также четыре стандартные процедуры для обработки строковых величин:
1. Процедура удаления delete(s,i,k). Из строки s удаляется k символов, начиная с i-го символа:
s:=’потолок’; delete(s,5,2); ( s=’поток’).
2. Процедура вставки – insert(s,t,i). Строка s вставляется в строку t, начиная с позиции i:
t:=’поток’; insert(‘ло’,t,5); (t=’потолок’)
3. Процедура преобразования числа в строку символов – str(k,s). Строка s получается «навешиванием» апострофов на число k:
str(564,s); (s=’564’)
4. Процедура преобразования строки из цифр в число – val(s,k,i).Число i=0, если в строке s нет символов, отличных от цифр, в противном случае i= позиции первого символа, отличного от цифры:
val(‘780’, k, i); (k=780; i=0).