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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2009, 19:56   #1
daur3n
Начинающий вникать
 
Аватар для daur3n
 
Регистрация: 10.02.2009
Сообщений: 5
По умолчанию переделать прогу

Как можно переделать эту прогу, чтобы она вычисляла сперва не по P(A/B),а с P(B/A)?А потом находила по нему P(A,B) и P(A/B) вместе с H??
задача такая :
Код:
program zzz;
uses crt;
const n=3;
var
pa,pb:array[1..n]of real;
pa_b,p_ab,p_ba:array[1..n,1..n]of real;
i,j:integer;
h,r,s:real;
begin
clrscr;
writeln('P(A/B)==>');
for i:=1 to n do
for j:=1 to n do
begin
read(p_ab[i,j]);
end;
writeln('P(B)==>');
for j:=1 to n do
read(pb[j]);
for i:=1 to n do
begin
for j:=1 to n do
if p_ab[i,j]<>0 then
r:=r+(pb[j]*(ln(p_ab[i,j])/ln(2)));
end;
r:=r*(-1);
for i:=1 to n do
for j:=1 to n do
begin
pa_b[i,j]:=pb[j]*p_ab[i,j];
end;
writeln('--------------------------');
writeln('P(A,B)==>');
for i:=1 to n do
begin
for j:=1 to n do
write(pa_b[i,j]:3:3);
writeln;
end;
writeln('H(A/B)=',r:3:3,'');
pa[1]:=0;
for i:=1 to n do
for j:=1 to n do
begin
pa[i]:=pa[i]+pa_b[i,j];
end;
writeln('=====================');
write('P(A[i]==>');
for i:=1 to n do
begin
write('pa[i]:3:3,''');
end;
for i:=1 to n do
for j:=1 to n do
begin
p_ba[i,j]:=pa_b[i,j]/pa[i];
end;
writeln;
writeln('P(B/A)==>');
for j:=1 to n do
begin
for j:=1 to n do
write(p_ba[i,j]:3:3,'');
writeln;
end;
for i:=1 to n do
begin
for j:=1 to n do
if p_ba[i,j]<>0 then
s:=s+(pa[i]*(p_ba[i,j]*(ln(p_ba[i,j])/ln(2))));
end;
s:=s*(-1);
writeln('H(B/A)=',s:3:3,'');
for i:=1 to n do
begin
for j:=1 to n do
if pa_b [i,j]<>0 then
h:=h+(pa_b[i,j]*(ln(pa_b[i,j])/ln(2)));
end;
h:=h*(-1);
writeln('==================================');
writeln('H(A,B)=',h:3:3,'');
readkey;
end.

Последний раз редактировалось AlDelta; 09.03.2009 в 19:58.
daur3n вне форума Ответить с цитированием
Старый 10.03.2009, 10:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну перенеси ты часть кода где начинается ввод PBA вверх...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2009, 13:34   #3
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

Сначала вводите P(B/A), затем P(A). Считаете P(B), P(A/B) аналогично тому, что есть для P(B/A) и P(A) в приведенном коде. И после этого рассчитываете все H.
Для понимания напишите просто на бумаге все формулы и все должно быть ясно.
Svetlag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите переделать прогу из Паскаля в Делфи! Toxass Общие вопросы Delphi 28 27.09.2009 15:36
помогите переделать прогу +Hitman+ Паскаль, Turbo Pascal, PascalABC.NET 4 17.11.2008 23:26
Немогу переделать(переписать) прогу!!!! metamfetamin Помощь студентам 0 25.11.2007 14:27