Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 28.01.2011, 06:43   #1 (permalink)
supavlova
Новичок
 
Регистрация: 28.01.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Составьте таблицу распределения вероятности

Помогите, пожалуйста, написать программу в PASCAL ABC: Вероятность приживления саженца ели в условиях нашего города равна 0,75. Составьте таблицу распределения вероятности гибели для 50 саженцев.
supavlova вне форума   Ответить с цитированием

Старый 28.01.2011, 06:43
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данные топики могут содержать в себе важную информацию

Составьте программу
Как вернуть кодировочную таблицу?
Запись события DBRadioGroup1Click в таблицу БД Microsoft Office Access

Старый 28.01.2011, 22:08   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от supavlova Посмотреть сообщение
Помогите, пожалуйста, написать программу в PASCAL ABC: Вероятность приживления саженца ели в условиях нашего города равна 0,75. Составьте таблицу распределения вероятности гибели для 50 саженцев.
Если я правильно понял задание, то так:
Код:
VAR
 i,j,k:Integer;
 Ps:Extended;

function Nfact(n:LongInt):Extended;
VAR
  i:LongInt;
  fact:Extended;
BEGIN
  IF n=0 THEN fact:=1 ELSE
    BEGIN
      fact:=1;
      FOR i:=1 TO n DO
        fact:=fact*i;
    END;
  Nfact:=fact;
END;

Function C(m,n:LongInt):Extended;
begin
 C:=Nfact(m)/(Nfact(n)*Nfact(m-n));
end;

function X2np(X:Extended; n:WORD):Extended;
Var i:WORD;
    Y:Extended;
Begin
  if n=0 then X2np:=1 else
  if n=1 then X2np:=X else
  begin
    Y:=X;
    for i:=2 to n do Y:=Y*X;
    X2np:=Y;
  end;
End;

BEGIN
 Write('The probability for  0 trees to die is ');
 WriteLn(X2np(0.75,50):22:18);
 Ps:=X2np(0.75,50);
 For j:=1 to 3 do
  begin
   If j=3 then k:=49 else k:=j*17;
   For i:=1+(j-1)*17 to k do
    begin
     Write('The probability for ',i:2,' trees to die is ');
     WriteLn(C(50,i)*X2np(0.25,i)*X2np(0.75,(50-i)):22:18);
     Ps:=Ps+C(50,i)*X2np(0.25,i)*X2np(0.75,(50-i));
    end;
   If j<3 then
    begin
     WriteLn('Press "Enter to continue..."');
     ReadLn;
    end;
  end;
 Write('The probability for 50 trees to die is ');
 WriteLn(X2np(0.25,50):22:18);
 Ps:=Ps+X2np(0.25,50);
 WriteLn('P_sum= ',Ps:22:18);
 ReadLn;
END.
В конце для контроля выводится суммарная вероятность, которая должна быть равна 1.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:35.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.