Найти длину самого короткого слова - Free Pascal (567)
Формулировка задачи:
Задан текст. Найти длину самого короткого слова.
Решение задачи: «Найти длину самого короткого слова»
textual
Листинг программы
- uses crt;
- const rz=[' ','.',',',';',':','?','!']; {разделители слов, можно добавить}
- var s,s1,sk:string;
- len,k,i,ik,f:byte;
- begin
- clrscr;
- writeln('Введите текст:');
- readln(s);
- for i:=1 to length(s) do{заменим разделители на запятые}
- if s[i] in rz then s[i]:=',';
- s:=s+',';{добавим к ней запятую}
- while pos(',,',s)>0 do{удалим лишние запятые}
- delete(s,pos(',,',s),1);
- 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;
- write('Самое короткое слово: ',sk);
- readln
- end.
Объяснение кода листинга программы
- Установка начального значения переменных:
- s - для хранения введенного текста;
- s1 - для хранения текущего слова;
- sk - для хранения самого короткого слова;
- len - для хранения длины текущего слова;
- k - для хранения длины самого короткого слова;
- i, ik, f - для использования в циклах.
- Ввод текста с помощью функции readln(s).
- Замена разделителей на запятые с помощью цикла for и условного выражения if.
- Добавление запятой в конец строки s с помощью оператора
+=
. - Удаление лишних запятых с помощью цикла while и функции delete.
- Проверка наличия запятой в начале строки s с помощью условного выражения if и удаление ее при наличии.
- Начало цикла while, который будет выполняться до тех пор, пока есть пробелы в строке s.
- Вычисление длины текущего слова с помощью функции pos и вычитание 1 из результата.
- Копирование текущего слова в строку s1 с помощью функции copy.
- Проверка условия if: если длина текущего слова меньше k, то присваиваем значения переменным sk и k, чтобы запомнить текущее слово как самое короткое.
- Удаление текущего слова из строки s с помощью функции delete.
- Завершение цикла while.
- Вывод самого короткого слова на экран с помощью функции write.
- Чтение символа Enter с помощью функции readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д