Вывести слова данного предложения, которые отличны от последнего слова - Pascal ABC
Формулировка задачи:
Помогите с программой и блок схемой
Используя строки и функции
Вывести слова данного предложения, которые отличны от последнего слова.
Решение задачи: «Вывести слова данного предложения, которые отличны от последнего слова»
textual
Листинг программы
var s,s1,s2:string; p:integer; begin write(''); readln(s); s1:=s; p:=pos(' ',s1); while p<>0 do begin delete(s1,1,p); p:=pos(' ',s1); end; writeln('Последнее слово: ',s1); write('Слова отличные от последнего: '); p:=pos(' ',s); while p<>0 do begin s2:=copy(s,1,p-1); if s2<>s1 then write(s2,' '); delete(s,1,p); p:=pos(' ',s); end; end.
Объяснение кода листинга программы
- Объявлены три переменные: s, s1, s2 (строки), p (целое число).
- Ввод строки s с помощью readln().
- Копирование строки s в s1.
- Поиск позиции первого пробела в s1 с помощью функции pos(), сохраняем результат в p.
- Пока p не равно 0 (т.е. пока не достигнут конец строки), выполняется следующий цикл:
- Удаление из s1 строки, начиная с первого символа и до p-1 символа (включительно).
- Обновление значения p, т.е. поиск следующего пробела в сокращенной строке.
- В цикле, пока p не равно 0, выполняется следующий блок:
- Копирование из s подстроки, начиная с первого символа и до p-1 символа (включительно), в переменную s2.
- Проверка, не равно ли s2 последнему слову s1 (т.е. если s2 содержит пробел).
- Если условие выполняется, то выводится значение s2, после чего добавляется пробел.
- Удаление из s подстроки, начиная с первого символа и до p-1 символа (включительно).
- Обновление значения p, т.е. поиск следующего пробела в сокращенной строке.
- Вывод последнего слова s1 с помощью writeln().
- Вывод слов, которые отличны от последнего слова, с помощью writeln().