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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Помогите пожалуйста!!!

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

somewhere » 27 дек 2013, 10:14

Это и есть паскаль

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

АнастасияЯ » 26 дек 2013, 21:36

[quote="Naeel Maqsudov"]

А в паскале тоже самое? или работать не будет?

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

Naeel Maqsudov » 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.

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

АнастасияЯ » 26 дек 2013, 14:18

Спасибо, но если вам не трудно не могли бы вы расписать полностью программу?

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

Хыиуду » 26 дек 2013, 13:04

Раздел алгоритмы, тема "разбиение строки на слова".
Получение строки s1, обратной строке s:
for i:=length(s) downto 1 do s1:=s1+s;
Далее в цикле проходите по массиву слов, для каждого слова находите его обратное и ищете его в остальном массиве.

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

АнастасияЯ » 26 дек 2013, 02:35

Паскаль: В тексте найти одну пару [все пары] слов, из которых одно является обращением другого (например, “abcd” и “dcba”).

Вернуться к началу