Найти самое короткое слово - 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.
Объяснение кода листинга программы
- В начале объявляются необходимые переменные: s, p, s1, s2 типа string и min, len, i типа integer.
- Затем происходит очистка экрана с помощью функции clrscr.
- Пользователю предлагается ввести строку. Это делается с помощью функции readLn, которая считывает введенную строку и сохраняет ее в переменной s.
- Далее происходит выделение первого предложения до точки без самой точки с помощью функции copy и добавление пробела. Результат сохраняется в переменной p.
- Переменная min устанавливается равной 255, что является максимальным значением для длины строки в данном языке.
- Запускается цикл while, который будет выполняться до тех пор, пока в предложении есть пробелы.
- Внутри цикла определяется длина текущего слова с помощью функции pos и сохраняется в переменной len.
- Если длина текущего слова меньше, чем длина предыдущего короткого слова, то запоминается текущее слово в переменной s1, а переменная min устанавливается равной длине текущего слова.
- После окончания цикла, самое короткое слово, если оно было изменено, сохраняется в переменной s2.
- Выводится самое короткое слово с помощью функции write.
- Выполняется функция readLn для завершения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д