Строки: Определить в строке самое короткое слово, заканчивающееся на "А" - 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, исключая последний пробел.
- Если после выполнения цикла все слова были удалены, то выводится сообщение, что слов не найдено.
- Если в строке осталось слово, то выводится сообщение с найденным словом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д