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

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

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

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

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

textual
Листинг программы
uses crt;
var s,p,s1,s2:string;
    min,len,i:integer;
begin
  clrscr;
  writeLn('Vvedite stroku: ');//строка может идти и после точки
  readLn(s);
  writeln;
  p:=copy(s,1,pos('.',s)-1)+' ';//выделяем первое предложение до точки, но без нее и добавляем пробел
  s1:=''; min:=255;//за мин берем самое возможно длинное слово
  while pos(' ',p) > 0 do //пока в предложении есть пробелы
   begin
    len:=pos(' ',p)-1; //определяем длину слова от начала до пробела
      s1:=copy(p,1,len);//запоминаем это слово
    if len < min then //если оно короче предыдущего короткого
      begin
        s2:=s1; //запоминаем его еще раз
        min:=len;//запоминаем его длину
      end;
    delete(p,1,pos(' ',p));//удаляем просмотренное слово
   end;
  write(s2);//выводим самое короткое
  readLn;
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
Похожие ответы