Найти и напечатать самое короткое слово в тексте — Pascal(Паскаль)

uses crt;
const rz=['.',',',';',':','?','!'];
var s,s1,sk:string;
    len,k,i,ik,f:byte;
begin
clrscr;
writeln('Введите строку из слов, отделеннvх пробелами:');
readln(s);
for i:=1 to length(s) do{заменим разделители на пробелы}
if s[i] in rz then s[i]:=' ';
s:=s+' ';{добавим к ней пробел}
while pos('  ',s)>0 do{удалим лишние пробелы, в кавычках 2 пробела}
delete(s,pos('  ',s),1);{в кавычках 2 пробела}
if s[1]=' 'then delete(s,1,1);{1 удаляем}
sk:='';{короткое слово, пока его нет}
k:=255;{длина короткого слова}
while pos(' ',s)>0 do{пока есть пробелы}
 begin
  len:=pos(' ',s)-1;{длина очередного слова}
  s1:=copy(s,1,len);{само слово}
  if len<k then{если меньше предыдущих}
   begin
    sk:=s1; {запомним}
    k:=len; {его длина}
   end;
  delete(s,1,pos(' ',s));{удаляем проверенное слово, следующее первое}
 end;
writeln('Самое короткое слово:  ',sk);
readln
end.

Leave a Comment

98 − 95 =