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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2008, 18:41   #1
KaZaaM
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 52
По умолчанию решить нужно к завтрашнему дню)

вообщем, задача довольно элементарная, но сидел над ней довольно долго,и так и не решил учитывая, что проходили этот материал в начале семестра, а сейчас мы далеко ушли...я все сдал, сделал небольшую ошибку в тесте на зачете и препод мне дал эту задачу на завтра, мне нужно только принести работающий код и все)))

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

написать программу для подсчета значения
F(m,n)=n!m!/n+m! , где 'n' и 'm' целые неотрицательные числа...

ЗЫ: пишу в консоле
KaZaaM вне форума Ответить с цитированием
Старый 26.12.2008, 18:50   #2
KaZaaM
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 52
По умолчанию

тролько плз, напишите мне ответ, либо, что мне никто помогать не будет и я буду вообще не спать, т.к. у меня завтра еще 2 зачета, либо напишите, что поможете...
KaZaaM вне форума Ответить с цитированием
Старый 26.12.2008, 18:58   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

KaZaaM Правила написаны для всех. И хорошо бы их прочитать перед тем, как создавать тему.
Что-то не верится, что вы сидели над этой задачей "очень долго", т.к. она действительно элементарная.

Код:
uses crt;

var
m,n : longint;
F : real;

function fact(ar : longint) : longint;
 var k : longint;
 begin
 k:=1;
 for k:=1 to ar-1 do
  ar:= ar*k;
 fact := ar;
 end;

begin
clrscr;
write('Enter m: ');
readln(m);
write('Enter n: ');
readln(n);

F:=fact(n)*fact(m)/fact(n+m);
writeln('F= ',F:7:4);

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.12.2008, 19:13   #4
KaZaaM
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 52
По умолчанию

правила читал, а сидел я после 3 часов культурологии, и 5 часов информатики, думаю мало кто сообразил бы хоть что то....

спасибо огроооомное!!! не думал, что кто то мне с этим поможет...
KaZaaM вне форума Ответить с цитированием
Старый 26.12.2008, 19:14   #5
KaZaaM
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 52
По умолчанию

блин, реально спасибо огромное...а то мне и так всю ночь сидеть((
KaZaaM вне форума Ответить с цитированием
Старый 26.12.2008, 19:19   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

KaZaaM Пожалуйста. В следующий раз все-таки придерживайтесь правил.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.12.2008, 20:12   #7
Тупой
Форумчанин
 
Аватар для Тупой
 
Регистрация: 26.12.2008
Сообщений: 146
По умолчанию

а если n = 150, а m = 140? Вы думаете, что результат будет очень большой?? Нет, простого real вполне хватит. А Вы вылезите за границы диапазона, а это нехорошо. Я бы обошелся без функции fact:
Ведь
n!m!/(n+m)!=n!/((m+1)...(m+n)) (см аттач)

Лучше написать чтонить такое:
PHP код:
ar 1
for k:=1 to n do
  
ar:= ar*k/(k+m);
 
end
где ar = результат, m и n определены и инициализированы гдето выше.
Изображения
Тип файла: jpg Untitled-3.jpg (13.7 Кб, 143 просмотров)
"Hello, world!" - 17 errors 56 warnings
Тупой вне форума Ответить с цитированием
Старый 26.12.2008, 20:22   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Тупой Я не спорю, что мой вариант не самый оптимальный. Но он все-таки более наглядный.
А так, да, лучше как вы написали. Но это уже относится к вопросам оптимизации )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.12.2008, 20:42   #9
KaZaaM
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 52
По умолчанию

i:=1;
z:=1;
while I<n do
begin
z:=z*(i+1) ;
inc(i)
end;

а так можно??
KaZaaM вне форума Ответить с цитированием
Старый 26.12.2008, 20:48   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

KaZaaM Для факториала? Можно )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужно решить ЭТО! goggin Помощь студентам 2 16.12.2008 19:35
Нужно решить 12-15 несложных задачек QBasic *GobliN Фриланс 1 02.06.2008 20:46
народ нужно решить задачю! finch Помощь студентам 1 21.06.2007 20:34