Найти длину самого короткого слова - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д