Другие языки программирования и технологии

Задача на Delphi. Аааа решите пожалуйста :'(

Задача на Delphi. Аааа решите пожалуйста :'( : Дана строка, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв, между словами поставлен пробел, за последним словом – точка. Вывести самое короткое слово и его длину
Alex Bar
Alex Bar
89
Доброго времени суток.

Задача, по сути, состоит из двух подзадач. Выделение слова из строки и нахождение слова с минимальной длиной. Один из возможных путей решения может быть таким. Программа допускает несколько пробелов между словами.

program Tst;
var
s, s1, MinWrd : String;
k, MinLen : Integer;

begin
Write('Введите предложение: ');
ReadLn(s);

MinLen := MaxInt;
MinWrd := '';
s1 := '';
k := 1;
while k <= Length(s) do begin
if (s[k] <> ' ') and (s[k] <> '.') then s1 := s1 + s[k]; {накапливаем, если не пробел и не точка}
if (s[k] = ' ') or (s[k] = '.') or (k = Length(s)) then {пробел, точка или последний символ}
if (s1 <> '') then begin {выделили очередное слово}
if Length(s1) < MinLen then begin {длина текущего слова меньше запомненной}
MinLen := Length(s1); {запомнили новую длину}
MinWrd := s1; {и само слово}
end;
s1 := ''; {очищаем накопитель}
WriteLn;
end;
k := k + 1;
end;

WriteLn('Самое короткое слово из предложения - ', MinWrd, '; имеет длину - ', MinLen);

ReadLn;
end.

Удачи!
ПР
Придурок. Ру
59 612
Лучший ответ
const s='Cолнышко лучистое улыбнулось весело потому что с корешем мы запели песенку. ';
var i,j,k,l:integer;
begin
j:=0;k:=0;l:=100;
for i:=2 to length(s)do begin
if (s=' ') or (s='.') then begin
if (i-j)
Сергей Просин
Сергей Просин
1 864
вот так попроще и понятнее:
minCount=500
minStr=''

ищеш первый пробел с помощью k=Pos(...)
если k<0 то пробел не найден - ищещ точку и выделяешь слово (см. ниже)
вырезаешь в другую переменную все что до пробела S=Copy(1,k-1,...)
удаляешь в исходной строке все что до пробела Delete(1,k,...)
[для удаления двойных пробелов юзай Trim(Delete(1,k,...))]
определяешь длину строки Length(S)
сравниваешь с minCount, если длина меньше то меняешь переменные minCount и minStr
повторяшь все это в цикле
ТК
Тоо Кэкс
208