Помощь - Поиск - Пользователи - Календарь
Полная версия: Биномиальные коэффициенты
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
shyrik
Описать функцию С(m,n), где 0=< m =< n, для вычисления биномиального коэффициента по формуле: при 0< m< n


формула:
volvo
shyrik
Например, так:
Код
Function C(m, n: Byte): LongInt;

 Procedure pC(m, n: Byte; Var R: Longint);
   Var R1, R2 : Longint;
   Begin
     If (m=0) or (m=n) Then R:=1
     Else
       Begin pC(m, n-1, R1); pC(m-1, n-1, R2); R:=R1+R2 End;
   End;

 Var Res: LongInt;
 Begin
   pC(m, n, Res);
   C := Res
 End;

Var
 R: LongInt;

begin
 WriteLn('C(5, 7) = ', C(5, 7))
end.
_Smoke_

function Cmn(m,n:byte):longint;
Begin
If (m=0) or (m=n) Then Cmn:=1
Else Cmn:=Cmn(m,n-1)+Cmn(m-1,n-1)
End;



Вроде так проще.
volvo
Если бы оно не вылетало при некоторых значениях с переполнением стека, я бы сделал это именно функцией... А поскольку вылетает, я обернул это дело в процедуру, и "разгрузил" стек...
BE@ST
Цитата(volvo @ 13.01.2005 21:09) *
shyrik
Например, так:
Код
Function C(m, n: Byte): LongInt;

Procedure pC(m, n: Byte; Var R: Longint);
   Var R1, R2 : Longint;
   Begin
     If (m=0) or (m=n) Then R:=1
     Else
       Begin pC(m, n-1, R1); pC(m-1, n-1, R2); R:=R1+R2 End;
   End;

Var Res: LongInt;
Begin
   pC(m, n, Res);
   C := Res
End;

Var
R: LongInt;

begin
WriteLn('C(5, 7) = ', C(5, 7))
end.


помогите плиз изменить код чтобы данные были не заранее прописаны ,а надо было вводить с клавиатуры

я пробывал но видимо делал что то не так и мне писало неверная ссылка переменной (что то в этом духе)...

я только учусь...
BE@ST
Код


program binom;
uses crt;
Function C(m, n: Byte): LongInt;

Procedure pC(m, n: Byte; Var R: Longint);
   Var R1, R2 : Longint;
   Begin
   clrscr;
     If (m=0) or (m=n) Then R:=1
     Else
       Begin pC(m, n-1, R1); pC(m-1, n-1, R2); R:=R1+R2 End;
   End;

Var Res: LongInt;
Begin
   pC(m, n, Res);
   C := Res
End;

Var
R: LongInt;

begin
WriteLn('C(5, 7) = ', C(5, 7));
readln;
end.



пробовал в readln пррописать m и n - пишет unknown identifier ...

пробывал их определить через вар так в итоге получается что вводишь их значение и на этом выполнение программы заканчивается а С не выводится...

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.