Дана строка, состоящая из русскиз слов. Вывести множество чётных позиций, на которых стоят гласные буквы. P.S. Решение в Pascal abc или напишите на листе, пришлите фото с решением, пожалуйста.
Var s,gl: string; i: integer; ps: set of integer; begin gl:='аеёийоуыэюя'; write('строка: '); readln(s); ps:=[]; i:=2; repeat if pos(s[i],gl)>0 then ps:=ps+[i]; i:=i+2; until i>length(s); write('множество четных позиций с гласными: '); foreach i in ps do write(i,' '); end.
Результат работы: строка: Это строка для проверки множество четных позиций с гласными: 20 18 10 8 14
1 votes Thanks 1
ilyasuper666
Можете, пожалуйста, пояснить ещё кое-что? s-строка, gl-все гласные буквы. А что такое i и ps?
ilyasuper666
И поясните ещё предпоследнюю строчку (перед end).
ilyasuper666
А, все, сам разобрался. Проверил в программе, всё работает. Спасибо!
nelle987
Только "й" надо из гласных убрать, он согласный)
Answers & Comments
Verified answer
Var s,gl: string;i: integer;
ps: set of integer;
begin
gl:='аеёийоуыэюя';
write('строка: ');
readln(s);
ps:=[];
i:=2;
repeat
if pos(s[i],gl)>0 then ps:=ps+[i];
i:=i+2;
until i>length(s);
write('множество четных позиций с гласными: ');
foreach i in ps do write(i,' ');
end.
Результат работы:
строка: Это строка для проверки
множество четных позиций с гласными: 20 18 10 8 14