Ввести строку. На печать выдать все слова, которые имею длину больше, чем длина предыдущего слова строки — Pascal(Паскаль)

uses crt;
var s,s1,s2:string;
    k:byte;
begin
clrscr;
repeat
writeln('Введите строку из слов, разделенных пробелами:');
readln(s);
if pos(' ',s)<2 then writeln('В строке только 1 слово, повторите ввод.');
until pos(' ',s)>=2;
s:=s+' ';{добавим пробел в конец}
while pos('  ',s)>0 do{удалим лишние пробелы - в кавычках 2 пробела}
delete(s,pos('  ',s),1);{пока рядом по 2 пробела, 1 удаляем}
writeln('Слова, имеющие длину больше длины предыдущего слова:');
k:=0;
s1:=copy(s,1,pos(' ',s)-1);{читаем первое слово}
delete(s,1,pos(' ',s)); {удаляем}
repeat
s2:=copy(s,1,pos(' ',s)-1);{читаем следующее}
delete(s,1,pos(' ',s)); {удалчем}
if length(s2)>length(s1)then {сравниваем}
 begin
  k:=1;
  write(s2,' ');
 end;
s1:=s2;{второе будет первым, читаем следующее}
until s='';{пока не кончится строка}
readln
end.

Leave a Comment

− 6 = 2