Нужно решить ** паскале (ABC) Дано предложение, в котором имеется несколько букв е....

0 голосов
55 просмотров

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


Информатика (243 баллов) | 55 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

{ PascalABC.Net }
var
  s:string;
  i:integer;
begin  
  Writeln('Введите строку: ');
  Readln(s);
  Writeln('Позиция первой "е": ',Pos('е',s));
  Writeln('Позиция последней "е": ',Pos('е',ReverseString(s)))
end.

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


(142k баллов)
0 голосов

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.

(8.6k баллов)
0

Алгоритм работающий, но не оптимальный: надо искать позицию последнего вхождения буквы хотя бы с символа, следующего после позиции, обозначенной переменной a

0

спасибо за поправку, буду исправляться

0

Напомню, что в PascalABC есть функция PosEx - это та же Pos, но поиск ведется, начиная с указанной позиции.