Найти длину самого короткого слова - 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.

Объяснение кода листинга программы

  1. Установка начального значения переменных:
    • s - для хранения введенного текста;
    • s1 - для хранения текущего слова;
    • sk - для хранения самого короткого слова;
    • len - для хранения длины текущего слова;
    • k - для хранения длины самого короткого слова;
    • i, ik, f - для использования в циклах.
  2. Ввод текста с помощью функции readln(s).
  3. Замена разделителей на запятые с помощью цикла for и условного выражения if.
  4. Добавление запятой в конец строки s с помощью оператора +=.
  5. Удаление лишних запятых с помощью цикла while и функции delete.
  6. Проверка наличия запятой в начале строки s с помощью условного выражения if и удаление ее при наличии.
  7. Начало цикла while, который будет выполняться до тех пор, пока есть пробелы в строке s.
  8. Вычисление длины текущего слова с помощью функции pos и вычитание 1 из результата.
  9. Копирование текущего слова в строку s1 с помощью функции copy.
  10. Проверка условия if: если длина текущего слова меньше k, то присваиваем значения переменным sk и k, чтобы запомнить текущее слово как самое короткое.
  11. Удаление текущего слова из строки s с помощью функции delete.
  12. Завершение цикла while.
  13. Вывод самого короткого слова на экран с помощью функции write.
  14. Чтение символа Enter с помощью функции readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы