Зеркальное отображение каждого второго слова в предложении - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека Crt, которая содержит функции для работы со строками и буфером.
- Создается процедура Pr1, которая принимает строку в качестве параметра.
- Объявляются две переменные типа string - s1 и s2.
- Затем объявляются три переменные типа integer - i, j и n.
- В цикле повторяется следующий код:
- Если текущий символ в строке является пробелом, точкой, запятой, двоеточием, скобкой, знаком равенства, вопросительным знаком или знаком восклицания, то к переменной s2 добавляется символ из переменной s1.
- Если в строке закончились символы, а переменная n равна 0, то цикл прерывается.
- Если переменная n равна 1, то к переменной s2 добавляется переменная s1, и цикл прерывается.
- Если переменная n больше 1, то цикл продолжается, и для каждого символа в переменной s1 выполняется следующая последовательность действий:
- К переменной s2 добавляется символ из переменной s1.
- Переменная s1 сбрасывается в пустую строку.
- Переменная n увеличивается на 1.
- После завершения цикла выводится на экран полученная строка.
- В основной части программы считывается строка от пользователя, выводится сообщение о вводе и вызывается процедура Pr1.
- После окончания работы с экраном вызывается функция ReadKey, чтобы дождаться нажатия клавиши перед завершением программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д