Строки: Определить в строке самое короткое слово, заканчивающееся на "А" - Pascal ABC

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

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

Ребята, очень нужна помощь! Помогите разобраться с задачей по строкам. Вот условие: Определить в строке самое короткое слово, заканчивающееся на "А".

Решение задачи: «Строки: Определить в строке самое короткое слово, заканчивающееся на "А"»

textual
Листинг программы
  1. var
  2. s,s1,s2:string;
  3. min:integer;
  4. begin
  5. writeln('Введите строку ');
  6. readln(s);//ввод строки
  7. s:=trim(s);//удаление пробелов в начале и конце строки
  8. s:=s+' ';//добавляем пробел в конец строки
  9. min:=300;//задаем минимальное значение длины строки 300
  10. s2:='';//в этой переменной будет искомое слово, но пока присваиваем ей значение пустой строки
  11. while length(s)>0 do//пока в строке есть символы
  12.     begin
  13.     s:=trimleft(s);//удаляем пробелы слева
  14.     s1:='';//опустошаем строку s1
  15.     s1:=copy(s,1,pos(' ',s)-1);//записываем в  строку s1 очередное слово
  16.     if (min > length(s1)) and  (s1[length(s1)] = 'А') then //проверяем очередное слово меньше ли оно предыдущего, и заканчивается ли оно на А
  17.         begin
  18.         min:=length(s1);//переменной присваиваем значение длины слова
  19.         s2:=s1;//записываем найденное слово в переменную s2
  20.         end;
  21.     delete(s,1,pos(' ',s));//удаляем очередное слово из строки
  22.     end;
  23. if s2 = '' then //если строка осталась пустой, значит искомых слов нет выводим соответствующее сообщение
  24.     writeln('Слов заканчивающихся на А не найдено')
  25. else
  26. writeln('Самое короткое слово заканчивающееся на А: ',s2);//выводим искомое слово
  27. end.

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

  1. В начале объявляются переменные: s, s1, s2 типа string и min типа integer.
  2. Затем происходит ввод строки с помощью функции readln.
  3. Строка очищается от пробелов с помощью функции trim.
  4. К строке добавляется пробел в конец с помощью оператора конкатенации.
  5. Задается минимальная длина слова, которое нужно найти.
  6. Переменная s2 инициализируется пустой строкой.
  7. Запускается цикл while, который будет выполняться до тех пор, пока в строке остаются символы.
  8. В начале цикла с помощью функции trimleft удаляются пробелы слева.
  9. Переменная s1 инициализируется пустой строкой.
  10. С помощью функции copy в переменную s1 копируется первое слово из строки s, начиная с первого символа до текущего символа в строке s, исключая последний пробел.
  11. Проверяется условие: если длина слова меньше минимальной длины и последний символ слова - это буква А, то это слово считается подходящим.
  12. Если условие выполняется, то переменная min обновляется, а переменная s2 записывает найденное слово.
  13. Слова из строки удаляются с помощью функции delete, начиная с первого символа до текущего символа в строке s, исключая последний пробел.
  14. Если после выполнения цикла все слова были удалены, то выводится сообщение, что слов не найдено.
  15. Если в строке осталось слово, то выводится сообщение с найденным словом.

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


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

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

7   голосов , оценка 3.571 из 5

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

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

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