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

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

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

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

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

textual
Листинг программы
var
s,s1,s2:string;
min:integer;
begin
writeln('Введите строку ');
readln(s);//ввод строки
s:=trim(s);//удаление пробелов в начале и конце строки
s:=s+' ';//добавляем пробел в конец строки
min:=300;//задаем минимальное значение длины строки 300
s2:='';//в этой переменной будет искомое слово, но пока присваиваем ей значение пустой строки
while length(s)>0 do//пока в строке есть символы
    begin
    s:=trimleft(s);//удаляем пробелы слева
    s1:='';//опустошаем строку s1
    s1:=copy(s,1,pos(' ',s)-1);//записываем в  строку s1 очередное слово
    if (min > length(s1)) and  (s1[length(s1)] = 'А') then //проверяем очередное слово меньше ли оно предыдущего, и заканчивается ли оно на А 
        begin
        min:=length(s1);//переменной присваиваем значение длины слова
        s2:=s1;//записываем найденное слово в переменную s2
        end;
    delete(s,1,pos(' ',s));//удаляем очередное слово из строки
    end;
if s2 = '' then //если строка осталась пустой, значит искомых слов нет выводим соответствующее сообщение
    writeln('Слов заканчивающихся на А не найдено')
else
writeln('Самое короткое слово заканчивающееся на А: ',s2);//выводим искомое слово
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
Похожие ответы