writeln (‘длина первой строки’: 25, ‘длина второй строки’: 25);
writeln (k: 25, I: 25);
writeln (x + у, ‘длина строки’, n)
End.
В программе Р29 используется вывод с форматированием результата. Первый раз формат (: 25) указан после строки, выводимой на экран (‘длина первой строки’). Это означает, что для данной строки отводится 25 позиций экрана, а поскольку выводимый текст короче (20 символов), он дополнится вначале пробелами, т. е. окажется правоустановленным в отведенном ему поле. Аналогично расположатся в предназначенном для них месте экрана целые числа — длины строк. Таким образом, результат работы программы будет иметь вид:
Длина первой строки длина второй строки
7 10
С помощью форматирования можно располагать выводимые данные в столбцах, строить на экране дисплея таблицы.
Копирование строки или ее части. Функция копирования называется также «вырезкой». Она позволяет скопировать одну область памяти в другую. Для копирования необходимо указать строковое выражение, из значения которого выделяется часть, а также начальный номер символа и количество символов копируемой части:
copy (строковое выражение, начальный номер символа, количество символов)
Например, результатом работы функции
copy (‘информатика’, 3, 5)
будет слово‘форма’.
Применим данную функцию для разработки второй версии программы обращения слова. Будем обрабатывать слово, выделяя из него буквы и присоединяя к результату слева. Переменной у, содержащей результат, сначала присваивается значение пустой строки. Переменная цикла изменяет свои значения от 1 (первого символа слова) до длины вводимой строки (номера последнего символа слова).
program Р30;
var x, у:string [10 ]; i:integer;
Begin
write(‘введите слово’);
readln(x);
y: = "; {присваивание результату начального значения —пустого слова}
fori: = 1to length(x)do
у: =copy (x, i, 1) + у; {присоединение копируемой буквы слева}
writeln;
write (у)
End.
Поиск подстроки в строке. Функция поиска определяет, с какой позиции (номера символа) одна строка (подстрока) содержится в другой (данной строке). Если такое вхождение подстроки в строку имеет место, то результат работы функции — номер символа в исходной строке, с которого начинается подстрока. Если вхождения нет, то результат — нуль. Аргументы функции могут быть строковыми выражениями.
роs (подстрока, исходная строка)
Вставка в строку. В одну строку можно вставить другую строку, указав номер символа, начиная с которого осуществляется вставка. Входные данные процедуры — вставляемая строка, исходная строка и целочисленное выражение, задающее позицию вставки. Строки также могут быть заданы строковыми выражениями. Результат работы процедуры помещается в исходную строку, строка при этом «расширяется». Если длина вставки совместно с длиной исходной строки превышает допустимую длину исходной строки, то вставка укорачивается справа до допустимой длины.
Удаление части строки. Часть строки можно удалить, строка при этом «сжимается». Для удаления необходимо указать строку (в виде строкового выражения), начальный номер удаляемой части строки, количество удаляемых символов. Процедура удаления вызывается следующим образом:
delete (строка, начальный номер, количество символов);
Рассмотрим пример замены буквы в слове. Сделаем из слова «форма» слово «фирма».
program Р31;
varx:string [10];
Begin
x: = ‘форма’;
insert (‘и’, x, 2); {вставка буквы «и», получилось слово «фиорма»}
delete (x, 3, 1); {удаление третьей буквы — буквы «о»}