![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Доброго времени суток ув.форумчане!Нужна ваша помощь в решении задачи по программированию.Язык програмирования-Delphi7.Задача состоит в следующем:Дан текст.Найти все палиндромы(слова-перевёртыши)в етом тексте.У меня неполучаеться перевод из паскаля в Delphi7-ниже исходный код! если несложно помогите организовать оконное приложение:
Код:
var i:byte;
s1:string;
begin
s1:='';
for i:=length(s) downto 1 do
s1:=s1+s[i];
if s=s1 then Pal:=true
else Pal:=false;
end;
begin;
writeln('Введите слова разделенными пробелами: ');
readln(s);
while pos(' ',s)>0 do
delete(s,pos(' ',s),1);
i:=length(s);
s1:='';
while s[i]<>' ' do
begin
s1:=s[i]+s1;
i:=i-1;
end;
k:=0;
while pos(' ',s)>0 do
begin
s2:=copy(s,1,pos(' ',s)-1);
if (s2<>s1)and Pal(s2) then
begin
write(s2,' ');
k:=k+1;
end;
delete(s,1,pos(' ',s));
end;
if k=0 then
write('В строке не найдено палиндрома! ');
readln
end. |
|
#2
|
||||
|
||||
|
Попробуй, может подойдёт:
Код:
function Palindrom(S : String) : Boolean;
var
I : Integer;
s1 : String;
begin
s1 := '';
for I := Length(s) downto 1 do
s1 := s1 + s[i];
Result := s = s1;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
S, S1, S2 : String;
I, K : Integer;
begin;
if Edit1.Text = '' then
Exit;
S := Edit1.Text;
while Pos(' ', S) > 0 do
delete(S, Pos(' ', S), 1);
I := Length(S);
s1 := '';
while S[i] <> ' ' do
begin
S1 := S[i] + S1;
dec(I);
end;
K := 0;
while Pos(' ', S) > 0 do
begin
S2 := Copy(S, 1, Pos(' ', S) - 1);
if (S2 <> S1) and Palindrom(S2) then
begin
S2 := ' ';
inc(K);
end;
delete(S, 1, Pos(' ', S));
end;
if K = 0 then
ShowMessage('В строке не найдено палиндрома! ');
end;Последний раз редактировалось angvelem, 20.06.2011 в 22:19. |
|
#3
|
|||
|
|||
|
Попробовал-но видимо в коде чего то не хватает-постоянно пишет"в строке не найдено полиндрома" -даже если он там есть!
|
|
#4
|
||||
|
||||
|
У меня с такой строкой "Он дивен, палиндром, и ни морд, ни лап не видно" всё работает.
![]() |
|
#5
|
|||
|
|||
|
angvelem, читай вопрос внимательно. Человеку надо найти все слова-палиндромы, а не текст.
|
|
#6
|
||||
|
||||
|
Судя по коду обрабатывается фраза содержащая пробелы, я предположил, что палиндромом выступает именно фраза а не отдельное слово, накопления найденных палиндромов в этом коде, что то не замечаю (не считая переменной K).
Как быть? Пойду застрелюсь. ![]() Последний раз редактировалось angvelem, 21.06.2011 в 01:47. |