Skip to main content

Turbo Pascal

Аватар пользователя gund_uk
Не в сети
Студент
Зарегистрирован: 13.03.2006
Сообщения: 386
Баллы: 387
Turbo Pascal

На паскале есть стандартная функция вачисления факториала?
Может у кого есть електронный справочник по паскалю.
Помогите, плз. РГР'ка горит.

Аватар пользователя Batia
Не в сети
Студент
Зарегистрирован: 20.05.2006
Сообщения: 602
Баллы: 615
Turbo Pascal

Не у меня нету я в нём ни фега не шарю, вот в qBasic чуть чуть понимаю! :huh: :huh:

Аватар пользователя ustas
Не в сети
Студент
Зарегистрирован: 14.03.2006
Сообщения: 393
Баллы: 412
Turbo Pascal

"AlXumuk" пишет:

На паскале есть стандартная функция вачисления факториала?
Может у кого есть електронный справочник по паскалю.
Помогите, плз. РГР'ка горит.

попробуй так

function n(x:integer):integer;
i:integer;
n=1;
for i=1 to x do n:=i*n;
end;

проверить не могу, т.к. у меня паскаль на winXP х64 не работает

Аватар пользователя забыл_пароль
Не в сети
Гражданин
Зарегистрирован: 29.10.2005
Сообщения: 1414
Баллы: 1427
Turbo Pascal

"ustas" пишет:

попробуй так
function n(x:integer):integer;
i:integer;
n=1;
for i=1 to x do n:=i*n;
end;
проверить не могу, т.к. у меня паскаль на winXP х64 не работает

Забыл кое что Smile

function factorial(n:integer):longint;
var i:integer;h:longint;
begin
h:=1;
for i:=2 to n do h:=h*i;
factorial:=h;
end;

Аватар пользователя gund_uk
Не в сети
Студент
Зарегистрирован: 13.03.2006
Сообщения: 386
Баллы: 387
Turbo Pascal

Спосиб, помогло Smile
Просто я думал может там стандартная функция есть. Но можно и так. Smile

"ustas" пишет:

проверить не могу, т.к. у меня паскаль на winXP х64 не работает

Как так? И че такое х64?
У меня под XP идет Wink B)

Аватар пользователя ustas
Не в сети
Студент
Зарегистрирован: 14.03.2006
Сообщения: 393
Баллы: 412
Turbo Pascal

"AlXumuk" пишет:

Спосиб, помогло Smile
Как так? И че такое х64?
У меня под XP идет Wink B)

64-битная версия

Не в сети
Новенький
Зарегистрирован: 22.01.2006
Сообщения: 9
Баллы: 10
Turbo Pascal

"забыл_пароль" пишет:

Забыл кое что Smile

function factorial(n:integer):longint;
var i:integer;h:longint;
begin
h:=1;
for i:=2 to n do h:=h*i;
factorial:=h;
end;

Можно еще проще при помощи рекурсии:

function factorial(n: integer): integer;
begin
if n>1
then factorial:=n*factorial(n-1)
else factorial:=1;
end;

Аватар пользователя забыл_пароль
Не в сети
Гражданин
Зарегистрирован: 29.10.2005
Сообщения: 1414
Баллы: 1427
Turbo Pascal

"DreDD" пишет:

Можно еще проще при помощи рекурсии:

function factorial(n: integer): integer;
begin
if n>1
then factorial:=n*factorial(n-1)
else factorial:=1;
end;

Как раз проще первый метод (рекурсия занимает больше места в памяти) =) хотя в данном случае это наверняка имеет значение )

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".