Найти длину самого короткого слова - Free Pascal (567)

Узнай цену своей работы

Формулировка задачи:

Задан текст. Найти длину самого короткого слова.

Решение задачи: «Найти длину самого короткого слова»

textual
Листинг программы
  1. uses crt;
  2. const rz=[' ','.',',',';',':','?','!']; {разделители слов, можно добавить}
  3. var s,s1,sk:string;
  4.     len,k,i,ik,f:byte;
  5. begin
  6. clrscr;
  7. writeln('Введите текст:');
  8. readln(s);
  9. for i:=1 to length(s) do{заменим разделители на запятые}
  10. if s[i] in rz then s[i]:=',';
  11. s:=s+',';{добавим к ней запятую}
  12. while pos(',,',s)>0 do{удалим лишние запятые}
  13. delete(s,pos(',,',s),1);
  14. if s[1]=','then delete(s,1,1);{1 удаляем}
  15. sk:='';{короткое слово, пока его нет}
  16. k:=255;{длина короткого слова}
  17. while pos(',',s)>0 do{пока есть пробелы}
  18.  begin
  19.   len:=pos(',',s)-1;{длина очередного слова}
  20.   s1:=copy(s,1,len);{само слово}
  21.   if len<k then{если меньше предыдущих}
  22.    begin
  23.     sk:=s1; {запомним}
  24.     k:=len; {его длина}
  25.    end;
  26.   delete(s,1,pos(',',s));{удаляем проверенное слово, следующее первое}
  27.  end;
  28. write('Самое короткое слово:  ',sk);
  29. readln
  30. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы