// PascalABC.NET 3.0, сборка 1073 const s=''; var c:char; p:integer; begin repeat Write('Введите латинскую букву, иной символ завершит работу: '); Readln(c); p:=Pos(c,s); if p>0 then Writeln('Рядом буква "',s[p+1],'"') until p=0 end.
Тестовое решение: Введите латинскую букву, иной символ завершит работу: y Рядом буква "u" Введите латинскую букву, иной символ завершит работу: H Рядом буква "J" Введите латинскую букву, иной символ завершит работу: m Рядом буква "q" Введите латинскую букву, иной символ завершит работу: P Рядом буква "A" Введите латинскую букву, иной символ завершит работу: 5
В начале в строке находилось 333 троек по 8 плюс одна 8, всего 1000 восьмерок. 1. При выполнения цикла каждая из троек 8 будет заменена на одну 9. Значит у нас получится строка длиной в 334 символа, где 333 девятки и последний символ - восьмерка 2. Далее 333 девятки заменятся на 111 восьмерок плюс последняя восьмерка - всего получим 112 восьмерок 3. Из 112 восьмерок получится 37 девяток и одна восьмерка 4. И 37 девяток получим 12 восьмерок плюс одна девятка и плюс последняя восьмерка 5. 12 восьмерок дадут 4 девятки плюс последние 9 и 8 6. И наконец получаем строку 8998 ответ: 8998
const
s='';
var
c:char;
p:integer;
begin
repeat
Write('Введите латинскую букву, иной символ завершит работу: ');
Readln(c);
p:=Pos(c,s);
if p>0 then Writeln('Рядом буква "',s[p+1],'"')
until p=0
end.
Тестовое решение:
Введите латинскую букву, иной символ завершит работу: y
Рядом буква "u"
Введите латинскую букву, иной символ завершит работу: H
Рядом буква "J"
Введите латинскую букву, иной символ завершит работу: m
Рядом буква "q"
Введите латинскую букву, иной символ завершит работу: P
Рядом буква "A"
Введите латинскую букву, иной символ завершит работу: 5