Зеркальное отображение каждого второго слова в предложении - 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, чтобы дождаться нажатия клавиши перед завершением программы.