Лаба, проблема с написанием
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Лаба, проблема с написанием - 2008-11-08 19:15:46.810000
|
|
|
larian
Сообщений: 3
Оценки: 0
Присоединился: 2008-11-08 17:43:57.216666
|
Люди,я вечный должник по программированию и сейчас оно стало так сказать ребром-нужно срочно сдать.Осталась пара заданий,которые просто никак не могу сделать верно. Если не трудно,пишите так сказать "детским" языком! С меня репа! 1)Составьте программу, вычисляющую значение функции: U(m,n)=(m+n)!/(m-n)! Для вычисления факториала используйте подпрограмму-функцию. Значения аргументов m и n введите с клавиатуры. Факториалом целого положительного числа n называется произведение: n!=1*2*3*…*n Основное свойство факториала: n!=n*(n-1)!
|
|
|
RE: Лаба, проблема с написанием - 2008-11-08 21:06:52.120000
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
unsigned long fact(unsigned int i) {
if(i==1) return 1;
return fact(i-1)*i;
}
long U(int m, int n) {
return fact(m+n)/fact(m-n);
}
//дальше уже детский сад. лень.
int main(int ac, char **av) {/*
...
*/
|
|
|
RE: Лаба, проблема с написанием - 2008-11-08 21:55:13.390000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
module Solution
where
import Monad
fact :: Integer -> Integer
fact n = foldl (*) 1 [1..n]
u :: Integer -> Integer -> Double
u m n = doFact (+) / doFact (-)
where doFact pred = (fromInteger $ fact (m `pred` n)) :: Double
main :: IO ()
main = do
m <- getDouble "m"
n <- getDouble "n"
putStrLn $ "U(m, n) = " ++ (show $ u m n)
where getDouble str = do
putStr $ "Enter " ++ str ++ ": "
liftM read $ getLine :: IO Integer
|
|
|
RE: Лаба, проблема с написанием - 2008-11-08 21:56:20.903333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
(defmacro with-user-inputed ((&rest vars) &body body)
`(let (,@(loop for var in vars
collect `(,var (progn (format t "Enter value of ~a: " ',var)
(force-output t)
(read)))))
,@body))
(defun ! (n)
(if (<= n 0)
1
(* n (! (1- n)))))
(defun U (m n)
(/ (! (+ m n))
(! (- m n))))
(with-user-inputed (m n)
(U m n))
|
|
|
RE: Лаба, проблема с написанием - 2008-11-08 21:57:48.543333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
все любят гипножабу P.S. посчитай U(50000, 10000)
|
|
|
RE: Лаба, проблема с написанием - 2008-11-08 23:03:58.376666
|
|
|
larian
Сообщений: 3
Оценки: 0
Присоединился: 2008-11-08 17:43:57.216666
|
Люди,а не трудно написать на языке паскаль? т.к. я не смогу перевести то,что вы мне написали.спасибо заранее!
|
|
|
RE: Лаба, проблема с написанием - 2008-11-09 08:51:53.023333
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
var
us_m, us_n: integer;
function fact(I:integer):integer;
begin
if I=1 then fact:=1
else fact:=fact(I-1)*I;
end;
function U(m,n:integer):double;
begin
U:=fact(m+n)/fact(m-n);
{или Result:=..., точно не помню}
end;
begin
write('M = '); readln(us_m);
write('N = '); readln(us_n);
writeln('U(',us_m,',',us_n,') = ',U(us_m,us_n));
readln; {не забудь сделать обработку ошибок}
end.
P.S. 1000-й пост :)
|
|
|
RE: Лаба, проблема с написанием - 2008-11-09 10:42:46.193333
|
|
|
Herm
Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
|
Вот на скорую руку на бросал. за ошибки не ругай.
program lab;
Uses crt;
var m,n:integer;Z:real;
Function Fact(a:integer):integer;
var I,S:integer;
begin
S:=1;
For a:=1 to a do
begin
S:=S*a;
Fact:=S;
end;
end;
Function U(x,y:integer):real;
var k,l:integer;
begin
k:=x+y;
l:=x-y;
U:=Fact(k)/Fact(l);
end;
begin
clrscr;
Readln(m,n);
Z:=U(m,n);
Writeln;
Writeln('Z=',z:2:2);
readln;
end.
|
|
|
|
|