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

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

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

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

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

textual
Листинг программы
uses  Crt;
procedure Pr1(as:string);
var   s1,s2:string;
      i,j,n:integer;
begin
      s2:=''; s1:='';
      i:=1; n:=0;
      repeat
         While as[i] in [' ','.',',',':',';','-','!','?'] do
          begin
            s2:=s2+as[i];
            Inc(i);
          end;
         if i>Length(as)
          then
           begin
             if n=0
              then Break
              else
               if n=1
                then
                 begin
                   s2:=s2+s1;
                   Break;
                 end
                else
                 begin
                   for j:=Length(s1) downto 1 do
                   s2:=s2+s1[j];
                 Break;
                end;
           end
          else
           begin
             While i<=Length(as) do
              if as[i] in ['A'..'Z']
               then
                begin
                  s1:=s1+as[i];
                  Inc(i)
                end
               else
                if as[i] in ['a'..'z']
                 then
                  begin
                    s1:=s1+as[i];
                    Inc(i)
                  end
                 else
                  begin
                    Inc(n);
                    Break;
                  end;
             if n=2
              then
               begin
                 for j:=Length(s1) downto 1 do
                  s2:=s2+s1[j];
                 s1:='';
                 n:=0;
               end
              else
               begin
                 s2:=s2+s1;
                 s1:='';
               end;
           end;
      until i>Length(as);
      Writeln(s2);
end;
var   s:string;
begin
      ClrScr;
       Writeln('String:'); Readln(s); Writeln;
       Writeln('New Strinf:'); Writeln;
       Pr1(s);
      ReadKey;
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
Похожие ответы