Дана строка. Словом текста считается любая последовательность букв русского алфавита; между соседними словами - не менее одного пробела, за последним словом – точка. Найти и сохранить в строке те слова текста, количество гласны...

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