Напечатать те слова последовательности, которые отличны от первого слова - 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.

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

  1. Программа использует функцию Simm, которая принимает строку s и возвращает true, если строка является палиндромом, и false в противном случае.
  2. В функции Simm создается строка s1, которая в цикле заполняется обратным порядком символов строки s.
  3. Если s1 равна s, то функция возвращает true, иначе false.
  4. В основной программе создаются строки t, t1 и t2, а также переменные i и n.
  5. Пользователю предлагается ввести текст из слов, разделенных пробелом.
  6. Введенный текст сохраняется в переменной t.
  7. Строка t1 формируется путем удаления пробелов из начала строки t.
  8. Цикл выполняется до тех пор, пока в строке t есть пробелы.
  9. В каждой итерации цикла формируется строка t2 путем удаления пробелов из начала строки t.
  10. Если t2 не равно t1 и функция Simm возвращает true, то слово t2 выводится на экран.
  11. После каждой итерации цикла из строки t удаляются последние 51 символа (предполагая, что каждое слово занимает не более 8 символов).
  12. Переменная n инициализируется значением 51*i, где i - это номер итерации цикла.
  13. В конце программы программа ожидает ввода пользователя, прежде чем завершиться.

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


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

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

6   голосов , оценка 3.833 из 5
Похожие ответы