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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2009, 15:15   #1
Roll1n
Пользователь
 
Регистрация: 04.01.2009
Сообщений: 30
По умолчанию Паскаль(функции)

Нужно оформить в виде функции
f=n!/k!*(n-k)!
Я смог оформить только n!/k!.
Код:
program factorial;
uses crt;
var n,k: integer;
f:real;


function f2( n:integer):real;

var i:integer;
f:real;
begin
     if n=1 then f2:=1
     else f2:=f2(n-1)*n;
end;

begin
        writeln(' введите n');
        read(n);
        writeln(' введите k');
        read(k);
        
f:=f2(n)/f2(k);
writeln('nxz=',f2(n));
writeln('kxz=',f2(k));

writeln('n!/k!=',f);
end.
Помогите доделать
Roll1n вне форума Ответить с цитированием
Старый 24.11.2009, 15:28   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Хих... f:=f2(n)/f2(k)*f2(n-k)
danekne вне форума Ответить с цитированием
Старый 24.11.2009, 15:34   #3
Roll1n
Пользователь
 
Регистрация: 04.01.2009
Сообщений: 30
По умолчанию

Я уже это пробовал
Паскаль на это жалуется:"слишком много вложенных вызовов подпрограмм"
Roll1n вне форума Ответить с цитированием
Старый 24.11.2009, 15:36   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
f=n!/k! = (1*2*3*...*n)/(1*2*3*...*k);   (n-k)!=(1*2*3*...*(n-k))
Вычисления должны быть в цикле, что-то не видно.
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 24.11.2009 в 15:46.
Sweta вне форума Ответить с цитированием
Старый 24.11.2009, 15:47   #5
Roll1n
Пользователь
 
Регистрация: 04.01.2009
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
Неа!

Вычисление должно быть в цикле, что-то не видно.
Зачем цикл,если нужно использовать функцию?
Roll1n вне форума Ответить с цитированием
Старый 24.11.2009, 15:50   #6
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Ну а разделить? черзез вспомогательную переменную?
danekne вне форума Ответить с цитированием
Старый 24.11.2009, 15:58   #7
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Аа! Поняла
Я бы в f2 не вызывала f2, а нахождение факториала сделала с помощью цикла.
т.е если i изменяется от 1 до n? то fact=fac*i;
тогда не будет
Цитата:
:"слишком много вложенных вызовов подпрограмм"
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 24.11.2009 в 16:05.
Sweta вне форума Ответить с цитированием
Старый 24.11.2009, 15:58   #8
Roll1n
Пользователь
 
Регистрация: 04.01.2009
Сообщений: 30
По умолчанию

Все,я доделал.Теперь работает правильно.

Последний раз редактировалось Roll1n; 24.11.2009 в 16:18.
Roll1n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль...Процедуры и функции Miledi Помощь студентам 3 14.05.2012 18:22
Процедуры и функции. Паскаль andronova Помощь студентам 2 25.05.2009 18:44
Паскаль. Вычисление функции СТАС48 Помощь студентам 0 30.11.2007 07:44
Паскаль. Матрицы, функции avm007 Помощь студентам 2 12.10.2007 13:40