Дана строка. Словом текста считается любая последовательность букв русского алфавита; между соседними словами - не менее одного пробела, за последним словом – точка. Найти и сохранить в строке те слова текста, количество гласных букв в которых превышает количество согласных. Все остальные слова удалить.
что не так с программой?:
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.
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.
после проверки слова перемен нужно обнулить для нового подсчета
определение длины строки нужно поместить в цикл, это для отределения после уменьшения и выхода из цикла
Оцени ответ
