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

uses crt;
var min_st, st, buf:string;
i,min:integer;
f:boolean;
input:text;
 
begin
    assign(input,'input.txt');
    reset(input);
   while not eof(input) do
   begin
    readln(input,st);
    buf:=''; //здесь храним текущее слово, которое получили из строки
    min_st:=''; 
    min:=999;
    for i:=1 to length(st) do
    begin
        if st[i]<>' ' then //если текущий символ не пробел
        begin
            buf := buf + st[i]; //то добавляем его в текущее слово
            f:=true; //флаг обозначает, что мы пока добавляем символы в слово (то есть появилось новое необработанное слово)
        end else begin //а если встретим пробел
            if f then //если слово уже было прочитано
            begin
                if length(buf)<min then //то сравниваем с длиной наименьшего
                begin
                    min_st:=buf;
                    min:=length(buf);
                end;
                f := false; //слово прочитали, оно больше не нужно
            end;
            buf := ''; //сброс
        end;
    end;
 
    if buf<>'' then //после цикла текущее слово может быть не пустым, то есть не проверенным, его также проверяем
    begin
        begin
             min_st:=buf;
             min:=length(buf);
        end;
        buf:='';
    end;
   end;
   close(input);
   writeln(min_st);
   readln;
end.

Leave a Comment

5 + 3 =