Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она нечётна, то дублируется средний символ цепочки символов, а если четна, то в начало цепочки добавляется буква С. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите (А — на Б, Б — на В и т. д., а Я — на А). Получившаяся таким образом цепочка является результатом работы алгоритма.
Например, если исходной была цепочка КОТ, то результатом работы алгоритма будет цепочка ЛППУ, а если исходной была цепочка ВАНЯ, то результатом работы алгоритма будет цепочка ТГБОА.
Дана цепочка символов ЛАК. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)? Русский алфавит: .
И так, начнём..
*Вопрос: Изменится ли строка ST, над которой произведут операцию COPY? Почему?
*ответ: Изменится, т.к. при использовании функции COPY необходимо указывать в какой строке копировать, с какой позиции, и количество символов, которое будет копировано.
**Вопрос: Чему будет равняться k после операции k:=length(‘мышь и клавиатура’)?
**ответ: Переменная k будет равна 17, т.к. функция LENGTH определяет длину строки, считая каждый пробел, запятую, буквы и т.д.
***Вопрос: Чему будет равняться переменная tx после операции tx:=‘лесник’; delete(tx,4,3)?
***ответ: Переменная tx будет равна слову лес. Функция DELETE удаляет часть символов из строки. В нашем случае удаление происходит в строке tx, с позиции 4, удаляет 3 символа.
Вопрос: Чему будет равняться переменная k после операции tx:=‘баобаб’; k:=pos(‘ба’,tx)?
ответ: Переменная k будет равна 1. Т.к. функция POS определяет первое вхождение заданного символа.
Дополненная программа:
program zadacha1;
var t: string; b: string[1]; n, k, i: integer;
begin
writeln('Введите текст: ');
readln(t);
n := length(t);
k := 0;
for i := 1 to n do begin
b := copy(t, i, 1);
if (t[i] = 'a') or (t[i] = 'A') or (t[i] = 'а') or (t[i] = 'А') then k := k + 1;
end;
writeln ('k= ', k);
end.
*Курсивом и выделением обозначены дополнения в программе.