Строки: Определить в строке самое короткое слово, заканчивающееся на "А" - 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.
Объяснение кода листинга программы
- В начале объявляются переменные: s, s1, s2 типа string и min типа integer.
- Затем происходит ввод строки с помощью функции readln.
- Строка очищается от пробелов с помощью функции trim.
- К строке добавляется пробел в конец с помощью оператора конкатенации.
- Задается минимальная длина слова, которое нужно найти.
- Переменная s2 инициализируется пустой строкой.
- Запускается цикл while, который будет выполняться до тех пор, пока в строке остаются символы.
- В начале цикла с помощью функции trimleft удаляются пробелы слева.
- Переменная s1 инициализируется пустой строкой.
- С помощью функции copy в переменную s1 копируется первое слово из строки s, начиная с первого символа до текущего символа в строке s, исключая последний пробел.
- Проверяется условие: если длина слова меньше минимальной длины и последний символ слова - это буква
А
, то это слово считается подходящим. - Если условие выполняется, то переменная min обновляется, а переменная s2 записывает найденное слово.
- Слова из строки удаляются с помощью функции delete, начиная с первого символа до текущего символа в строке s, исключая последний пробел.
- Если после выполнения цикла все слова были удалены, то выводится сообщение, что слов не найдено.
- Если в строке осталось слово, то выводится сообщение с найденным словом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д