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

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

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

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

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

textual
Листинг программы
Var s,sl,st:string;
    i:byte;
Begin
    write('Последовательность слов: ');readln(s);
    if s[Length(s)]='.' then Delete(s,Length(s),1);
    i:=Length(s);
    While (s[i]<>' ')and(i<>0) do
    Begin
      st:=s[i]+st;
      Delete(s,i,1);
      dec(i);
    End;
    While Pos(' ',s)>0 do
    Begin
      sl:=Copy(s,1,Pos(' ',s)-1);
      Delete(s,1,Pos(' ',s));
      if (st<>sl)and(Length(sl)>1) then writeln(Copy(sl,1,Length(sl)-1));
    End;
    readln;
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
Похожие ответы