Показать сообщение отдельно
Старый 16.03.2008, 11:16   #1 (permalink)
heiress
Новичок
 
Регистрация: 07.03.2008
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию исправьте мои ошибки

вот задача
задан текст, состоящий из строк, которые в свою очередь состоят из слов.
разработать программу которая находит все строки-палиндромы(перевертыши) и печатает их в порядке увеличения кол-ва слов, палиндромы с одинаковым кол-вом слов следует печатать по алфавиту.
вот что у меня получилось
Код:
   Program Zplata;
      uses wincrt;
type re=record
str,w,b:string;
k,p,s:byte;
end;
var a:array [1..10] of re;
i,n,t,j,h,f:byte;
u,r:string;
begin
write('n=');
readln(n);  

for i:=1 to n do begin
write('a[',i,'].str=');
readln(a[i].str);
a[i].w:=a[i].str;
while pos(' ',a[i].w)>0 do
delete(a[i].w,pos(' ',a[i].w),1);
a[i].b:='';
For j:=1 to Length(a[i].w) do begin
a[i].b:=a[i].w[j]+a[i].b;
end; 
 end;
for i:=1 to n-1 do
  for j:=i+1 to n do
if (a[i].b = a[i].w) and (Length(a[i].w)>Length(a[i].w)) then begin
                     	r:= a[i].str;
	             	a[i].str:= a[j].str;
		 a[j].str:= r;
           	     	end;
     if (a[i].b = a[i].w) and(Length(a[i].w)= Length(a[i].w)) and  ( a[i].str<a[j].str) then begin
                     	r:= a[i].str;
	             	a[i].str:= a[j].str;
		a[j].str:= r;
           	     	end;
 for i:=1 to n do
writeln(a[i].str);
end.
но не выводит ни по алфавиту, ни по кол-ву слов.
помогите!!!
heiress вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070