Вывести слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву - Turbo Pascal

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

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

Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных латинских букв; между соседними словами – пробел, за последним словом – точка. Вывести все слова последовательности, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: удалить из слова последнюю букву.

Решение задачи: «Вывести слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву»

textual
Листинг программы
  1. Var s,sl,st:string;
  2.     i:byte;
  3. Begin
  4.     write('Последовательность слов: ');readln(s);
  5.     if s[Length(s)]='.' then Delete(s,Length(s),1);
  6.     i:=Length(s);
  7.     While (s[i]<>' ')and(i<>0) do
  8.     Begin
  9.       st:=s[i]+st;
  10.       Delete(s,i,1);
  11.       dec(i);
  12.     End;
  13.     While Pos(' ',s)>0 do
  14.     Begin
  15.       sl:=Copy(s,1,Pos(' ',s)-1);
  16.       Delete(s,1,Pos(' ',s));
  17.       if (st<>sl)and(Length(sl)>1) then writeln(Copy(sl,1,Length(sl)-1));
  18.     End;
  19.     readln;
  20. End.

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

  1. В начале объявляются переменные s, sl и st типа string, а также переменная i типа byte.
  2. Затем выполняется чтение строки с помощью функции readln и сохранение её в переменной s.
  3. Если последний символ в строке является точкой, то с помощью функции Delete удаляется этот символ.
  4. Инициализируется переменная i, которая будет использоваться для цикла.
  5. Запускается цикл While, который выполняется до тех пор, пока i меньше или равно 0 и каждый символ в строке s не равен пробелу.
  6. Внутри цикла создается новая переменная st, которая представляет собой результат объединения текущего символа в строке s с предыдущим значением переменной st.
  7. Затем удаляется символ с конца строки s с помощью функции Delete.
  8. Десятикратно уменьшается значение переменной i.
  9. Повторяется шаг 5 до тех пор, пока условие цикла выполняется.
  10. Запускается цикл While, который выполняется до тех пор, пока в строке s есть пробелы.
  11. Внутри цикла сохраняется текущий символ в строке s в новую переменную sl с помощью функции Copy.
  12. Удаляется символ с конца строки s с помощью функции Delete.
  13. Если значение переменной st отличается от значения переменной sl и длина переменной sl больше 1, то выводится на экран копия строки sl, обрезанная до длины, равной длине переменной sl минус 1.
  14. Останавливается чтение ввода с помощью функции readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

5   голосов , оценка 3.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы