Вывести слова данного предложения, которые отличны от последнего слова - 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.

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

  1. Объявлены три переменные: s, s1, s2 (строки), p (целое число).
  2. Ввод строки s с помощью readln().
  3. Копирование строки s в s1.
  4. Поиск позиции первого пробела в s1 с помощью функции pos(), сохраняем результат в p.
  5. Пока p не равно 0 (т.е. пока не достигнут конец строки), выполняется следующий цикл:
    1. Удаление из s1 строки, начиная с первого символа и до p-1 символа (включительно).
    2. Обновление значения p, т.е. поиск следующего пробела в сокращенной строке.
  6. В цикле, пока p не равно 0, выполняется следующий блок:
    1. Копирование из s подстроки, начиная с первого символа и до p-1 символа (включительно), в переменную s2.
    2. Проверка, не равно ли s2 последнему слову s1 (т.е. если s2 содержит пробел).
    3. Если условие выполняется, то выводится значение s2, после чего добавляется пробел.
    4. Удаление из s подстроки, начиная с первого символа и до p-1 символа (включительно).
    5. Обновление значения p, т.е. поиск следующего пробела в сокращенной строке.
  7. Вывод последнего слова s1 с помощью writeln().
  8. Вывод слов, которые отличны от последнего слова, с помощью writeln().

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

6   голосов , оценка 4.667 из 5
Похожие ответы