- Вводится строка из n символов, слова разделены одним пробелом.
Найти длину самого короткого слова.
-
Ограничение переменной string — 256 символов, поэтому мы
ограничиваем её 255 символами, и максимальное слово в строке может
быть равным 255 символов, поэтому переменной min можно смело
присвоить число 256. в конец строки записываем пробел, чтобы
программа отработала корректно.
- program
zadacha_6;
-
var
-
s
: string[255];
-
n,
min, len : integer;
-
begin
-
writeln('Введите
строку.');
-
readln(s);
-
s :=
s + ' '; {добавляем в конец пробел}
-
min
:= 256;
-
while
pos(' ', s) > 0 do
-
begin
-
len
:= pos(' ', s)-1;
-
if
len < min then min := len;
-
delete(s,
1, pos(' ', s));
-
end;
-
writeln('Минимальное
слово = ', min);
-
- readln;
-
end.
-
- (скачать
решение.)
-
- В
решении приведённом выше есть маленький недочёт, что если
пользователь введёт два пробела, тогда минимальное слово будет равно
нулю, попробуем исправить эту проблему. Здесь в дополнительном
цикле, repeat until удаляются лишние пробелы.
-
- program
zadacha_6_b;
-
var
-
s
: string[255];
-
n,
min, len, i : integer;
-
begin
-
writeln('Введите
строку.');
-
readln(s);
-
s :=
s + ' '; {добавляем в конец пробел}
-
min
:= 256;
-
i :=
1;
-
if
length(s) > 1 then
-
repeat
-
if
s[i] = ' ' then
-
if
s[i+1] = ' ' then
-
begin
-
delete(s, i+1, 1);
-
i := i - 1;
-
end;
-
inc(i);
-
until
i = length(s);
-
- while
pos(' ', s) > 0 do
-
begin
-
len
:= pos(' ', s)-1;
-
if
len < min then min := len;
-
delete(s,
1, pos(' ', s));
-
end;
-
writeln('Минимальное
слово = ', min);
-
- readln;
-
end.
-
- (Скачать
решение.)
-