Из данного текста выпишите слова, длины которых меньше N, но больше M. Определите количество таких слов — Pascal(Паскаль)

uses crt;
const rzd=[' ',',',';',':','!','?','.'];{разделители можно добавить, зависит от текста}
var  s,s1:string;
     m,n,k,i: integer;
begin
clrscr;
write('s = ');
readln(s);
repeat
writeln('Введите минимальную длину слова минус 1 m=');
readln(m);
until m in [0..253];
repeat
writeln('Введите максимальную длину слова плюс 1 n>m+1=');
readln(n);
until n in [m+2..255];
writeln('Слова длиной от ',m+1,' до ',n-1);
s:=s+','; {добавим запятую в конец}
for i:=length(s) downto 1 do
  begin
    if s[i] in rzd then s[i]:=',';{заменим разделители на запятые}
    while pos(',,',s)>0 do   {если подряд 2 запятые}
    delete(s,pos(',,',s),1); {1 удаляем}
  end;
k:=0;
while pos(',',s)>0 do {пока есть запятые}
 begin
  s1:=copy(s,1,pos(',',s)-1);{копируем первое слово}
  if (length(s1)>m)and(length(s1)<n)then{если длина в интервале}
   begin
    k:=1;  {фиксируем}
    write(s1,' ');{выводим}
   end;
  delete(s,1,pos(',',s));{удаляем его}
 end;
if k=0 then write('Таких слов нет');
readln
end.

Leave a Comment

55 − 45 =