Напечатать те слова последовательности, которые отличны от первого слова - PascalABC.NET
Формулировка задачи:
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству:
слово симметрично (например: авва).
Решение задачи: «Напечатать те слова последовательности, которые отличны от первого слова»
textual
Листинг программы
uses crt; function Simm(s:string):boolean; var s1:string; i:byte; begin s1:=''; for i:=length(s) downto 1 do s1:=s1+s[i]; if s1=s then Simm:=true else Simm:=false; end; var t,t1,t2:string; i,n:integer; begin clrscr; writeln('Введите текст из слов, разделенных пробелом:'); readln(t); t:=t+' '; t1:=copy(t,1,pos(' ',t)-1); delete(t,1,pos(' ',t)); while (pos(' ',t)>0) do begin t2:=copy(t,1,pos(' ',t)-1); if (t2<>t1) and Simm(t2) and (pos(' ',t)<=8) then write(t2,' '); delete(t,1,pos(' ',t)); for i:=1 to n do begin delete(t,51*n,pos(' ',t)); end; end; readln end.
Объяснение кода листинга программы
- Программа использует функцию
Simm
, которая принимает строкуs
и возвращаетtrue
, если строка является палиндромом, иfalse
в противном случае. - В функции
Simm
создается строкаs1
, которая в цикле заполняется обратным порядком символов строкиs
. - Если
s1
равнаs
, то функция возвращаетtrue
, иначеfalse
. - В основной программе создаются строки
t
,t1
иt2
, а также переменныеi
иn
. - Пользователю предлагается ввести текст из слов, разделенных пробелом.
- Введенный текст сохраняется в переменной
t
. - Строка
t1
формируется путем удаления пробелов из начала строкиt
. - Цикл выполняется до тех пор, пока в строке
t
есть пробелы. - В каждой итерации цикла формируется строка
t2
путем удаления пробелов из начала строкиt
. - Если
t2
не равноt1
и функцияSimm
возвращаетtrue
, то словоt2
выводится на экран. - После каждой итерации цикла из строки
t
удаляются последние 51 символа (предполагая, что каждое слово занимает не более 8 символов). - Переменная
n
инициализируется значением 51*i, гдеi
- это номер итерации цикла. - В конце программы программа ожидает ввода пользователя, прежде чем завершиться.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д