Найти самое короткое слово - Pascal (12254)

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

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

Помогите написать программу, которая находит и выводит на экран самое короткое слово. Строка вводится с клавиатуры. Все слова ограничены пробелами, предложение заканчивается точкой. P.S. Я уже 2-ой день мучаюсь, ну никак не идет. Спасибо.

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

textual
Листинг программы
  1. uses crt;
  2. var s,p,s1,s2:string;
  3.     min,len,i:integer;
  4. begin
  5.   clrscr;
  6.   writeLn('Vvedite stroku: ');//строка может идти и после точки
  7.   readLn(s);
  8.   writeln;
  9.   p:=copy(s,1,pos('.',s)-1)+' ';//выделяем первое предложение до точки, но без нее и добавляем пробел
  10.   s1:=''; min:=255;//за мин берем самое возможно длинное слово
  11.   while pos(' ',p) > 0 do //пока в предложении есть пробелы
  12.    begin
  13.     len:=pos(' ',p)-1; //определяем длину слова от начала до пробела
  14.       s1:=copy(p,1,len);//запоминаем это слово
  15.     if len < min then //если оно короче предыдущего короткого
  16.       begin
  17.         s2:=s1; //запоминаем его еще раз
  18.         min:=len;//запоминаем его длину
  19.       end;
  20.     delete(p,1,pos(' ',p));//удаляем просмотренное слово
  21.    end;
  22.   write(s2);//выводим самое короткое
  23.   readLn;
  24. end.

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

  1. В начале объявляются необходимые переменные: s, p, s1, s2 типа string и min, len, i типа integer.
  2. Затем происходит очистка экрана с помощью функции clrscr.
  3. Пользователю предлагается ввести строку. Это делается с помощью функции readLn, которая считывает введенную строку и сохраняет ее в переменной s.
  4. Далее происходит выделение первого предложения до точки без самой точки с помощью функции copy и добавление пробела. Результат сохраняется в переменной p.
  5. Переменная min устанавливается равной 255, что является максимальным значением для длины строки в данном языке.
  6. Запускается цикл while, который будет выполняться до тех пор, пока в предложении есть пробелы.
  7. Внутри цикла определяется длина текущего слова с помощью функции pos и сохраняется в переменной len.
  8. Если длина текущего слова меньше, чем длина предыдущего короткого слова, то запоминается текущее слово в переменной s1, а переменная min устанавливается равной длине текущего слова.
  9. После окончания цикла, самое короткое слово, если оно было изменено, сохраняется в переменной s2.
  10. Выводится самое короткое слово с помощью функции write.
  11. Выполняется функция readLn для завершения работы программы.

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


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

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

6   голосов , оценка 3.833 из 5

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

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

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