Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.03.2009, 20:40   #1
starlet
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 12
Печаль счастливые числа и полиндромы помогите!!!

Помогите пожалуйста испавить задачу!..у меня вообще бред получается(((((
Условие : на промежутке [a,b] найти все счастливые числа.отдельно вывести те,которые являются полиндромами.Все оформить через подпрограммы (PASCAL)


Unit HapPol;

INTERFACE
Type
mas=array [1..100] of longint;
Var
h,p:mas;
Function HAPPY (zn:byte;i:longint):boolean;
Function POLINDROM(i:longint;zn:byte):boolea n;
Procedure ALL(a,b:longint; var h,p:mas; var j,k:byte);
Procedure Print_Happy(h:mas;j:byte);
Procedure Print_Polindrom ( p:mas; k:byte);

IMPLEMENTATION


{1} Function HAPPY (zn:byte;i:longint):boolean;
Var
x:longint;
j,zn2,sl,sp:byte;
Begin
x:=i;
j:=zn;
zn2:=zn div 2;
while x<>0 do
begin
h[j]:=x mod 10;
x:=x div 10;
j:=j-1;
end;
for j:=1 to zn2 do
sl:=sl+h[j];
for j:=zn2 to zn do
sp:=sp+h[j];
Happy:=(sl=sp);
End;

{2} Function POLINDROM(i:longint;zn:byte):boolea n;
Var
x:longint;
j,zn2,l,r:byte;
Begin
x:=i;
j:=zn;
zn2:=zn div 2;
while x<>0 do
begin
p[j]:=x mod 10;
x:=x div 10;
j:=j-1;
end;
for l:=1 to zn2 do
for r:=zn downto zn2 do
polindrom:=(p[l]=p[r]);
End;



{3} Procedure ALL(a,b:longint; var h,p:mas; var j,k:byte);
Var
i:longint;
zn:byte;

Begin
j:=0;
k:=0;
for i:=a to b do
begin
if Happy(zn,i)=true then
begin
inc(j); {if happy}
h[j]:=i;
end;

if Polindrom(zn,i)=true then
begin
inc(k); {if polndom}
p[k]:=i;
end;
end;
End;


{4}Procedure Print_Happy(h:mas;j:byte);
var
i:byte;
Begin
if j=0 then writeln('no happy numbers') else
begin
writeln(j,'happy numbers:');
for i:=1 to j do
write(h[i]:10);
end;
End;

{5} Procedure Print_Polindrom ( p:mas; k:byte) ;
var
i:byte;
Begin
if k=0 then writeln('no polindrom') else
begin
writeln(k,'polindroms:')
for i:=1 to k do
write(p[i]:10);
end;
End;

End.

Последний раз редактировалось starlet; 15.03.2009 в 20:45.
starlet вне форума
Старый 16.03.2009, 09:12   #2
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

проверка на полиндром
Код:
function polindrom(x:longint):boolean;
var s,a:longint;  
begin
  a:=x;
  s:=0;
  repeat
    s:=s*10+a mod 10;
    a:=a div 10;
  until a=0;
  polindrom:=s=x;
end;
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума
Старый 16.03.2009, 09:23   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Уже обсуждалось
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральные числа n,p, целые числа a1 , ... ,an. Наталья111 Фриланс 10 09.11.2010 20:09
Даны натуральные числа m,n. Посчитать сумму m последнего числа n. лялька Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2008 15:22
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
Числа полиндромы grerg Помощь студентам 3 28.11.2007 18:15
переворот числа! помогите плиззз Devil Помощь студентам 5 03.04.2007 19:16