Нужно решить на паскале (ABC) Дано предложение, в котором имеется несколько букв е. Найти: а) порядковый номер первой из них; б) порядковый номер последней из них. Спасибо

Ответы

Ответ дал: антагонист
1
var a,c,f:integer;   
d:string;   
begin   
f:=0; 
writeln('введите строку'); 
readln(d); 
a:=pos('е',d); 
writeln('первый символ стоит на ',a,' позиции');   
for c:=1 to length(d) do begin   
if (d[c] = 'е') then f:=c;   
end; 
writeln('последний символ стоит на ',f,' позиции');    
end.

Аноним: Алгоритм работающий, но не оптимальный: надо искать позицию последнего вхождения буквы хотя бы с символа, следующего после позиции, обозначенной переменной a
антагонист: спасибо за поправку, буду исправляться
Аноним: Напомню, что в PascalABC есть функция PosEx - это та же Pos, но поиск ведется, начиная с указанной позиции.
Ответ дал: Аноним
1
{ PascalABC.Net }
var
  s:string;
  i:integer;
begin  
  Writeln('Введите строку: ');
  Readln(s);
  Writeln('Позиция первой "е": ',Pos('е',s));
  Writeln('Позиция последней "е": ',Pos('е',ReverseString(s)))
end.

Тестовое решение:
Введите строку:
Строка - тестовое решение для PascalABC.Net
Позиция первой "е": 11
Позиция последней "е": 19


Похожие вопросы