Помогите пожалуйста!!!

Ответить
АнастасияЯ
Сообщения: 4
Зарегистрирован: 21 дек 2013, 23:04

26 дек 2013, 02:35

Паскаль: В тексте найти одну пару [все пары] слов, из которых одно является обращением другого (например, “abcd” и “dcba”).
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

26 дек 2013, 13:04

Раздел алгоритмы, тема "разбиение строки на слова".
Получение строки s1, обратной строке s:
for i:=length(s) downto 1 do s1:=s1+s;
Далее в цикле проходите по массиву слов, для каждого слова находите его обратное и ищете его в остальном массиве.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
АнастасияЯ
Сообщения: 4
Зарегистрирован: 21 дек 2013, 23:04

26 дек 2013, 14:18

Спасибо, но если вам не трудно не могли бы вы расписать полностью программу?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

26 дек 2013, 17:47

В условии не сказано, что считать словом. Если словом считается любая подстрока, то можно так:

Код: Выделить всё

var
  str: string;
  TxtLen,L,P1,P2: integer;

  function CheckPair(const str:string; pos1:integer; pos2:integer; len:integer):boolean;
  var i:integer;
  begin
    for i:=1 to len do if str[pos1+i-1]<>str[pos2+len-i] then begin
      CheckPair:=false;
      exit;
    end;
    CheckPair:=true;
  end;

begin
  write('input text:'); readln(str);
  TxtLen:=length(str);
  for L:=2 to trunc(TxtLen/2) do begin
    writeln('Searching for words with length ',L,'...');
    for P1:=1 to L do begin
      for P2:=P1+L to TxtLen-L+1 do begin
        if CheckPair(str,P1,P2,L) then writeln('Pair was found. "',copy(str,P1,L),'"@',P1,' and "',copy(str,P2,L),'"@',P2);
      end;
    end;
  end;
end.
АнастасияЯ
Сообщения: 4
Зарегистрирован: 21 дек 2013, 23:04

26 дек 2013, 21:36

[quote="Naeel Maqsudov"]

А в паскале тоже самое? или работать не будет?
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

27 дек 2013, 10:14

Это и есть паскаль
It's a long way to the top if you wanna rock'n'roll
Ответить