Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Юльк_а
1

не выводятся результаты теста

01.12.2012, 16:24. Просмотров 682. Ответов 2
Метки нет (Все метки)

Помогите, пожалуйста. Задание таково: разработать экспертную систему по выбору турфирмы. Как оформить - каждый выбирает сам. У меня был тест, написанный на JavaScript к студенческой конференции (помогал одногруппник), я решила этот тест переработать для экспертной системы. Бьюсь уже несколько дней, но результаты теста не выводятся.
Уровень знаний - начальный, редактор - блокнот. Поиск по сети ничего не дал.
мои варианты, почему не работает:
1. неверно заданы массивы
2. ошибка в записи формул
3. ошибки в синтаксисе

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<html>
<head>
<Title>Разработка экспертной системы по выбору турфирмы
</title>
<H1 align="center"><font face="Arial" color="#1C1C1C">Выбор турфирмы</font></H1>
</head>
<script>
function f()
{
var a=0;
var b=0; 
var c=0; 
var d=0; 
var e=0; 
var f=0; 
var g=0; 
 
// процент людей, которые пользуются данной турфирмой
var PHE=new Array(0.05, 0.07, 0.09, 0.03, 0.2, 0.1, 0.15);  
 
//вероятность наличия параметра у каждой фирмы
var PEH1=new Array(0.7, 0.1, 0.3, 0.1, 0.1, 0.8, 0.2, 0.1, 0.7, 0.7); 
var PEH2=new Array(0.9, 0.8, 0.1, 0.7, 0.1, 0.2, 0.9, 0.8, 0.4, 0.1);
var PEH3=new Array(0.2, 0.7, 0.7, 0.4, 0.6, 0.2, 0.2, 0.1, 0.1, 0.7);
var PEH4=new Array(0.1, 0.1, 0.9, 0.1, 0.1, 0.4, 0.6, 0.1, 0.1, 0.7);
var PEH5=new Array(0.7, 0.9, 0.4, 0.7, 0.5, 0.2, 0.8, 0.5, 0.5, 0.5);
var PEH6=new Array(0.6, 0.2, 0.1, 0.2, 0.7, 0.6, 0.9, 0.7, 0.8, 0.1);
var PEH7=new Array(0.5, 0.6, 0.3, 0.7, 0.1, 0.1, 0.6, 0.3, 0.1, 0.4);
 
//вероятность наличия параметра у других фирм
var RENH0=new Array(0.8, 0.7, 0.5, 0.7, 0.5, 0.3, 0.9, 0.6, 0.6, 0.8);
var RENH1=new Array(0.8, 0.7, 0.6, 0.6, 0.5, 0.4, 0.8, 0.5, 0.6, 0.8);
var RENH2=new Array(0.9, 0.5, 0.5, 0.6, 0.5, 0.5, 0.9, 0.5, 0.7, 0.8);
var RENH3=new Array(0.9, 0.6, 0.6, 0.7, 0.4, 0.2, 0.8, 0.4, 0.4, 0.6);
var RENH4=new Array(0.4, 0.3, 0.7, 0.3, 0.3, 0.4, 0.6, 0.4, 0.6, 0.6);
var RENH5=new Array(0.4, 0.6, 0.6, 0.5, 0.2, 0.2, 0.8, 0.4, 0.3, 0.5);
var RENH6=new Array(0.7, 0.5, 0.7, 0.4, 0.4, 0.5, 0.8, 0.5, 0.4, 0.6);
 
 
var flage=false; 
for(i=0;i<=9;i++)
{
    if(flage==true)
    {
 
        if(document.getElementById("a" + i).checked)
        {
        PHE[0]=((PEH1[i]*PHE[0])/(PEH1[i]*PHE[0]+PENH0[i]*(1-PHE[0])));         
        PHE[1]=((PEH2[i]*PHE[1])/(PEH2[i]*PHE[1]+PENH1[i]*(1-PHE[1])));
        PHE[2]=((PEH3[i]*PHE[2])/(PEH3[i]*PHE[2]+PENH2[i]*(1-PHE[2])));
        PHE[3]=((PEH4[i]*PHE[3])/(PEH4[i]*PHE[3]+PENH3[i]*(1-PHE[3])));
        PHE[4]=((PEH5[i]*PHE[4])/(PEH5[i]*PHE[4]+PENH4[i]*(1-PHE[4])));
        PHE[5]=((PEH6[i]*PHE[5])/(PEH6[i]*PHE[5]+PENH5[i]*(1-PHE[5])));
        PHE[6]=((PEH7[i]*PHE[6])/(PEH7[i]*PHE[6]+PENH6[i]*(1-PHE[6])));
        
        }
        
        if(document.getElementById("b" + i).checked)
        {
        PHE[0]=((1-PEH0[i])*PHE[0])/((1-PEH0[i])*PHE[0]+(1-PENH0[i])*(1-PHE[0]));
        PHE[1]=((1-PEH1[i])*PHE[1])/((1-PEH1[i])*PHE[1]+(1-PENH1[i])*(1-PHE[1]));
        PHE[2]=((1-PEH2[i])*PHE[2])/((1-PEH2[i])*PHE[2]+(1-PENH2[i])*(1-PHE[2]));
        PHE[3]=((1-PEH3[i])*PHE[3])/((1-PEH3[i])*PHE[3]+(1-PENH3[i])*(1-PHE[3]));
        PHE[4]=((1-PEH4[i])*PHE[4])/((1-PEH4[i])*PHE[4]+(1-PENH4[i])*(1-PHE[4]));
        PHE[5]=((1-PEH5[i])*PHE[5])/((1-PEH5[i])*PHE[5]+(1-PENH5[i])*(1-PHE[5]));
        PHE[6]=((1-PEH6[i])*PHE[6])/((1-PEH6[i])*PHE[6]+(1-PENH6[i])*(1-PHE[6]));
        }
    }
/* в каждом шаге цикла пересчитываются вероятности по формулам. 
Исходная вероятность РНЕ, на первом шаге меняет значение. 
на втором шаге в формулу подставляется измененное значение, на третьем - значение из второго шага и т.д.*/
 
flage=false
}
// попытка занести значения массива в переменные, а из переменных в метки
PHE[0]=a;
PHE[1]=b;
PHE[2]=c;
PHE[3]=d;
PHE[4]=e;
PHE[5]=f;
PHE[6]=g;
 
// получившееся значение заносим в метки
document.getElementById("label1").innerHTML = a;
document.getElementById("label2").innerHTML = b;
document.getElementById("label3").innerHTML = c;
document.getElementById("label4").innerHTML = d;
document.getElementById("label5").innerHTML = e;
document.getElementById("label6").innerHTML = f;
document.getElementById("label7").innerHTML = g;
 
 
}
</script>
 
<body><font size="3" color="#1C1C1C" face="Arial">Укажите параметры, которые необходимы вам при выборе тура
<form>
 
// сам тест. параметры, вероятности которых во 2 и 3 массивах.
 
<p><b>1. Вы хорошо переносите поездку на автобусах?</b>
<br><INPUT TYPE=RADIO NAME=R1 id="a0">Да
<br><INPUT TYPE=RADIO NAME=R1 id="b0">Нет
 
 
<p><b>2. Вам нужна помощь тур-агента при выборе тура?</b>
<br><INPUT TYPE=RADIO NAME=R2 id="a1">Да
<br><INPUT TYPE=RADIO NAME=R2 id="b1">Нет
 
<p><b>3. Вы хорошо переносите перелеты?</b>
<br><INPUT TYPE=RADIO NAME=R3 id="a2">Да
<br><INPUT TYPE=RADIO NAME=R3 id="b2">Нет
 
<p><b>4. Вы едете с ребенком?</b>
<br><INPUT TYPE=RADIO NAME=R4 id="a3">Да
<br><INPUT TYPE=RADIO NAME=R4 id="b3">Нет
 
<p><b>5. Вас интересуют горящие путевки?</b>
<br><INPUT TYPE=RADIO NAME=R5 id="a4">Да
<br><INPUT TYPE=RADIO NAME=R5 id="b4">Нет
 
<p><b>6. Вас интересует активный отдых?</b>
<br><INPUT TYPE=RADIO NAME=R6 id="a5">Да
<br><INPUT TYPE=RADIO NAME=R6 id="b5">Нет
 
 
<p><b>7. Вам интересны достопримечательности?</b>
<br><INPUT TYPE=RADIO NAME=R7 id="a6">Да
<br><INPUT TYPE=RADIO NAME=R7 id="b6">Нет
 
 
<p><b>8. Вы хотите поехать с группой?</b>
<br><INPUT TYPE=RADIO NAME=R8 id="a7">Да
<br><INPUT TYPE=RADIO NAME=R8 id="b7">Нет
 
 
<p><b>9. Ваш бюджет ограничен?</b>
<br><INPUT TYPE=RADIO NAME=R9 id="a8">Да
<br><INPUT TYPE=RADIO NAME=R9 id="b8">Нет
 
<p><b>10. Хотите поехать за границу?</b>
<br><INPUT TYPE=RADIO NAME=R10 id="a9">Да
<br><INPUT TYPE=RADIO NAME=R10 id="b9">Нет
 
 
<p><Input type=Button OnClick=f() value="Узнать результат" >
 
// в результате - ничего не выводится
<p>Экстрим-тур <span id="label1" size="10">0</span> </p>
<p>Русские красоты <span id="label2" size="10">0</span>  </p>
<p>Экватор <span id="label3" size="10">0</span> </p>
<p>ВИП-тур <span id="label4" size="10">0</span>  </p>
<p>Мир путешествий <span id="label5" size="10">0</span> </p>
<p>Глобус <span id="label6" size="10">0</span>  </p>
<p>Чудеса света <span id="label7" size="10">0</span></p>
 
<p><textarea rows="10" cols="70" id="text"></textarea></p>
</form>
 
</font></body>
</html>
переменная flage в принципе, здесь не нужна. но что с ней, что без нее, программа не работает
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2012, 16:24
Ответы с готовыми решениями:

Не выводятся результаты кода
Есть код используемый функцию CompareFileTime, который сравнивает две указанные даты. Почему ничего...

Почему выводятся такие результаты?
#include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; int main(void) { int a=5; float b=10; double...

Результаты теста OCCT
Всем доброго времени суток,обитатели киберфорума!:).Недавно решил сделать тест,результаты публикую...

Результаты посте теста
Как Вам такие результаты (взяты за время теста)? Не слишком ли нагреваются процессор и видеокарта?...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на JavaScript‌
2
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
01.12.2012, 20:16 2
Ошибок синтаксических нет - скрипт отрабатывает нормально.
Судя по всему, проблема в логике расчета.

На выходе из f() переменная PHE содержит нули, которые и выводятся.
1
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
01.12.2012, 20:53 3
Юльк_а, в строках 78-84 поменяйте местами левые и правые части операторов присваивания

то есть для строки 78: не PHE[0]=a; а a=PHE[0];
и так далее
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2012, 20:53

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Результаты поиска в окне popup не выводятся
Решил все-таки результаты поиска по сайту выводить в окне popup(всплывающее окно на jQuery). Окно...

Как подсчитывать результаты теста
В делфи новичок. Написал маленькую прогу на заданную тему. Состоит из 2-х разделов: &quot;Теоретический...

Нормальные ли результаты теста видеокарты?
http://s15.***********/i188/1005/4c/518058b33a83.jpg это сам комп ...

Как подсчитать результаты теста?
Дорогие форумчане! Будьте добры помочь, очень давно мучаюсь с тестом, на этом форуме прошарила все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.