Срочно, помогите пожалуйста. 1) Напишите пожалуйста программу в Паскале ,которая бы...

0 голосов
24 просмотров

Срочно, помогите пожалуйста. 1) Напишите пожалуйста программу в Паскале ,которая бы содержала и функцию и процедуру


Информатика (9.0k баллов) | 24 просмотров
Дано ответов: 2
0 голосов

На основе подпрограммы факториала вычислить число сочетаний Cnm из N элементов по M, использовав формулу: Сnm = N!/((N-M)!*M!). Реализовать 2 варианта решения - c процедурой и с функцией.
На голосовании 6 лет назад
Вариант 1(на основе функции)
Program zd;
var N,M:integer;
function Fact(x:integer):longint;
begin
if x=1 then Fact:=1
else fact:=x*fact(x-1);
end;
begin
readln(N,M);
write('N!/((N-M)!*M!)=',Fact(N)div(Fact(N-M)*Fact(M) ));
end.
2
Функция Cnm
program Cnm;
var n,m:integer;
function factorial(n: Byte): word;
Begin
if n=0 then factorial:=1
else factorial:=n*factorial(n-1);
End;
Begin
read(n,m);
if n>m then writeln(factorial(n) div factorial(n-m)*factorial(m))
else write('ERROR. n must be > than m');

End.
можете сделать лучше

(90 баллов)
0

Нужно, чтобы процедура и функция была в одной программе, а вы скинули две разные программы.

0 голосов

procedure foo(str: string);


begin


writeln(str);

end;

function foo1(str: string): string;

begin

foo1:= str;

end;

begin

foo('I am a procedure');

n:= foo1('I am a function');

writeln(n);

end.

(1.7k баллов)
0

Компилятор жалуется на строку foo1 = str; "Program1.pas(7) : Встречено '=', а ожидалось ';'"

0

я идиот, забыл :, исправил

0

Теперь Program3.pas(11) : Неизвестное имя 'n' )

0

А программа эта что делает можете объяснить пожалуйста?