Дана строка. словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела, за последним словом – точка. найти и сохранить в строке те слова текста, количество гласных букв в которых превышает количество согласных. все остальные слова удалить. что не так с программой? : var m1,m2: set of char; s1,s2,s3: string; gl,i,m,sogl: integer; begin m2: =['a','e','i','o','u','y','a','e','i','o','u','y']; m1: =['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','z', 'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','z']; read(s1); gl: =0; sogl: =0; m: =length(s1); while m< > 0 do begin s2: =copy(s1,1,(pos(' ',s1)-1)); delete(s1,1,pos(' ',s1)); for i: =1 to length(s2) do begin if s2[i] in m2 then gl: =gl+1 else if s2[i] in m1 then sogl: =sogl+1; end; if gl> sogl then s3: =s3+s2+' '; end; writeln(s3); end.

azatbaykov00 azatbaykov00    1   26.06.2019 06:00    13

Ответы
ппопцгуарг ппопцгуарг  21.07.2020 07:17
Write('Введите строку');read(s1); gl:=0; sogl:=0; m:=length(s1);while m<>0 dobegins2:=copy(s1,1,(pos(' ',s1)-1));delete(s1,1,pos(' ',s1));for i:=1 to length(s2) dobeginif s2[i] in m2 then gl:=gl+1;if s2[i] in m1 then sogl:=sogl+1;end;if gl>sogl then s3:=s3+s2+' ';gl:=0; sogl:=0;m:=length(s1);end;writeln(s3);end.

после проверки слова перемен нужно обнулить для нового подсчета
определение длины строки нужно поместить в цикл, это для отределения после уменьшения и выхода из цикла
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика