Зеркальное отображение каждого второго слова в предложении - Turbo Pascal

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

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

Написать программу, которая с помощью подпрограммы выводит зеркальное отображение каждого второго слова в предложении.

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

textual
Листинг программы
  1. uses  Crt;
  2. procedure Pr1(as:string);
  3. var   s1,s2:string;
  4.       i,j,n:integer;
  5. begin
  6.       s2:=''; s1:='';
  7.       i:=1; n:=0;
  8.       repeat
  9.          While as[i] in [' ','.',',',':',';','-','!','?'] do
  10.           begin
  11.             s2:=s2+as[i];
  12.             Inc(i);
  13.           end;
  14.          if i>Length(as)
  15.           then
  16.            begin
  17.              if n=0
  18.               then Break
  19.               else
  20.                if n=1
  21.                 then
  22.                  begin
  23.                    s2:=s2+s1;
  24.                    Break;
  25.                  end
  26.                 else
  27.                  begin
  28.                    for j:=Length(s1) downto 1 do
  29.                    s2:=s2+s1[j];
  30.                  Break;
  31.                 end;
  32.            end
  33.           else
  34.            begin
  35.              While i<=Length(as) do
  36.               if as[i] in ['A'..'Z']
  37.                then
  38.                 begin
  39.                   s1:=s1+as[i];
  40.                   Inc(i)
  41.                 end
  42.                else
  43.                 if as[i] in ['a'..'z']
  44.                  then
  45.                   begin
  46.                     s1:=s1+as[i];
  47.                     Inc(i)
  48.                   end
  49.                  else
  50.                   begin
  51.                     Inc(n);
  52.                     Break;
  53.                   end;
  54.              if n=2
  55.               then
  56.                begin
  57.                  for j:=Length(s1) downto 1 do
  58.                   s2:=s2+s1[j];
  59.                  s1:='';
  60.                  n:=0;
  61.                end
  62.               else
  63.                begin
  64.                  s2:=s2+s1;
  65.                  s1:='';
  66.                end;
  67.            end;
  68.       until i>Length(as);
  69.       Writeln(s2);
  70. end;
  71. var   s:string;
  72. begin
  73.       ClrScr;
  74.        Writeln('String:'); Readln(s); Writeln;
  75.        Writeln('New Strinf:'); Writeln;
  76.        Pr1(s);
  77.       ReadKey;
  78. end.

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

  1. В начале кода подключается библиотека Crt, которая содержит функции для работы со строками и буфером.
  2. Создается процедура Pr1, которая принимает строку в качестве параметра.
  3. Объявляются две переменные типа string - s1 и s2.
  4. Затем объявляются три переменные типа integer - i, j и n.
  5. В цикле повторяется следующий код:
    • Если текущий символ в строке является пробелом, точкой, запятой, двоеточием, скобкой, знаком равенства, вопросительным знаком или знаком восклицания, то к переменной s2 добавляется символ из переменной s1.
    • Если в строке закончились символы, а переменная n равна 0, то цикл прерывается.
    • Если переменная n равна 1, то к переменной s2 добавляется переменная s1, и цикл прерывается.
    • Если переменная n больше 1, то цикл продолжается, и для каждого символа в переменной s1 выполняется следующая последовательность действий:
      • К переменной s2 добавляется символ из переменной s1.
      • Переменная s1 сбрасывается в пустую строку.
      • Переменная n увеличивается на 1.
  6. После завершения цикла выводится на экран полученная строка.
  7. В основной части программы считывается строка от пользователя, выводится сообщение о вводе и вызывается процедура Pr1.
  8. После окончания работы с экраном вызывается функция ReadKey, чтобы дождаться нажатия клавиши перед завершением программы.

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


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

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

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

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

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

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