Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 16.12.2012
Сообщений: 4

Оптимизировать работу программы, собрав 4 функции в одну

27.05.2013, 23:41. Показов 588. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно оптимизировать скрипт. написала 4 функции для соответствующих форм, которые делают одно и то же. наверное, нужно создать какой то цикл?
по отдельности все великолепно считается, а в одну никак не собирается(
помогите пожалуйста!


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
function raschet1(){
 
var marsh1,otel1,sez1,chsl1
 
marsh1=marshrut1.mrsh1.options[marshrut1.mrsh1.selectedIndex].value
otel1=stars1.star1.options[stars1.star1.selectedIndex].value
sez1=sezon1.szn1.options[sezon1.szn1.selectedIndex].value
chsl1=document.colvo1.col1.value
all1=(1*marsh1+1*otel1+1*sez1)*chsl1
 
if(marsh1==1)
    {document.getElementById('vivod1').innerHTML="Не все пункты выбраны!";}   
else if (otel1==1)
    {document.getElementById('vivod1').innerHTML="Не все пункты выбраны!";}
else if (sez1==1)
    {document.getElementById('vivod1').innerHTML="Не все пункты выбраны!";}
else if (chsl1==0)
    {document.getElementById('vivod1').innerHTML="Не все пункты выбраны!";}
else{document.getElementById('vivod1').innerHTML=all1}
var a,b,c,d,z=0
a=document.getElementById('vivod1').innerHTML
b=document.getElementById('vivod2').innerHTML
c=document.getElementById('vivod3').innerHTML
d=document.getElementById('vivod4').innerHTML
if(isNaN(a)){a=0}
else{z=1*a}
if(isNaN(b)){b=0}
else{z=1*a+1*b}
if(isNaN(c)){c=0}
else{z=1*a+1*b+1*c}
if(isNaN(d)){d=0}
else{z=1*a+1*b+1*c+1*d}
document.getElementById('final').innerHTML=z
}
 
 
function raschet2(){
 
var marsh2,otel2,sez2,chsl2
 
marsh2=marshrut2.mrsh2.options[marshrut2.mrsh2.selectedIndex].value
otel2=stars2.star2.options[stars2.star2.selectedIndex].value
sez2=sezon2.szn2.options[sezon2.szn2.selectedIndex].value
chsl2=document.colvo2.col2.value
all2=(1*marsh2+1*otel2+1*sez2)*chsl2
 
if(marsh2==1)
    {document.getElementById('vivod2').innerHTML="Не все пункты выбраны!";}   
else if (otel2==1)
    {document.getElementById('vivod2').innerHTML="Не все пункты выбраны!";}
else if (sez2==1)
    {document.getElementById('vivod2').innerHTML="Не все пункты выбраны!";}
else if (chsl2==0)
    {document.getElementById('vivod2').innerHTML="Не все пункты выбраны!";}
else{document.getElementById('vivod2').innerHTML=all2}
var a,b,c,d,z=0
a=document.getElementById('vivod1').innerHTML
b=document.getElementById('vivod2').innerHTML
c=document.getElementById('vivod3').innerHTML
d=document.getElementById('vivod4').innerHTML
if(isNaN(a)){a=0}
else{z=1*a}
if(isNaN(b)){b=0}
else{z=1*a+1*b}
if(isNaN(c)){c=0}
else{z=1*a+1*b+1*c}
if(isNaN(d)){d=0}
else{z=1*a+1*b+1*c+1*d}
document.getElementById('final').innerHTML=z
}
 
 
 
 
function raschet3(){
var marsh3,otel3,sez3,chsl3
 
marsh3=marshrut3.mrsh3.options[marshrut3.mrsh3.selectedIndex].value
otel3=stars3.star3.options[stars3.star3.selectedIndex].value
sez3=sezon3.szn3.options[sezon3.szn3.selectedIndex].value
chsl3=document.colvo3.col3.value
all3=(1*marsh3+1*otel3+1*sez3)*chsl3
 
 
if(marsh3==1)
    {document.getElementById('vivod3').innerHTML="Не все пункты выбраны!";}   
else if (otel3==1)
    {document.getElementById('vivod3').innerHTML="Не все пункты выбраны!";}
else if (sez3==1)
    {document.getElementById('vivod3').innerHTML="Не все пункты выбраны!";}
else if (chsl3==0)
    {document.getElementById('vivod3').innerHTML="Не все пункты выбраны!";}
else{document.getElementById('vivod3').innerHTML=all3}
var a,b,c,d,z=0
a=document.getElementById('vivod1').innerHTML
b=document.getElementById('vivod2').innerHTML
c=document.getElementById('vivod3').innerHTML
d=document.getElementById('vivod4').innerHTML
if(isNaN(a)){a=0}
else{z=1*a}
if(isNaN(b)){b=0}
else{z=1*a+1*b}
if(isNaN(c)){c=0}
else{z=1*a+1*b+1*c}
if(isNaN(d)){d=0}
else{z=1*a+1*b+1*c+1*d}
document.getElementById('final').innerHTML=z
}
 
 
 
 
 
function raschet4(){
 
var marsh4,otel4,sez4,chsl4
 
marsh4=marshrut4.mrsh4.options[marshrut4.mrsh4.selectedIndex].value
otel4=stars4.star4.options[stars4.star4.selectedIndex].value
sez4=sezon4.szn4.options[sezon4.szn4.selectedIndex].value
chsl4=document.colvo4.col4.value
all4=(1*marsh4+1*otel4+1*sez4)*chsl4
 
 
if(marsh4==1)
    {document.getElementById('vivod4').innerHTML="Не все пункты выбраны!";}   
else if (otel4==1)
    {document.getElementById('vivod4').innerHTML="Не все пункты выбраны!";}
else if (sez4==1)
    {document.getElementById('vivod4').innerHTML="Не все пункты выбраны!";}
else if (chsl4==0)
    {document.getElementById('vivod4').innerHTML="Не все пункты выбраны!";}
else{document.getElementById('vivod4').innerHTML=all4}
var a,b,c,d,z=0
a=document.getElementById('vivod1').innerHTML
b=document.getElementById('vivod2').innerHTML
c=document.getElementById('vivod3').innerHTML
d=document.getElementById('vivod4').innerHTML
if(isNaN(a)){a=0}
else{z=1*a}
if(isNaN(b)){b=0}
else{z=1*a+1*b}
if(isNaN(c)){c=0}
else{z=1*a+1*b+1*c}
if(isNaN(d)){d=0}
else{z=1*a+1*b+1*c+1*d}
document.getElementById('final').innerHTML=z
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2013, 23:41
Ответы с готовыми решениями:

Из трех таблиц перенести строки в одну, собрав по ключевому полю, как?
Здравствуйте! Помогите. Есть три таблицы 1,2,3. Количество столбцов одинаковое. Как сделать так, чтобы данные из трех таблиц...

Как оптимизировать работу программы визуализации графов?
В общем, программа должна генерировать граф и визуализировать его, всё работает, но если вводить число вершин больше 30, то генерируется и...

Какие есть функции, завершающие работу программы
известно, что если в функции main встретится "return x;" , то программа завершается. можно ли завершать программу из других функций? чтото...

2
18 / 11 / 5
Регистрация: 27.05.2013
Сообщений: 36
28.05.2013, 13:43
Цикл тут не организуешь по одной простой причине.
marshrut1
marshrut2
marshrut3
marshrut4
И прочим подобным переменным. Из них надо организовывать массив, чтобы к элементам можно было обращаться следующим образом:
marshrut[1]
marshrut[2]
и т.д.

И то, лучше это сделать не циклом, а передать функции опр. аргумент. (1, 2, 3 или 4)

Добавлено через 4 часа 51 минуту
Попробовал упростить. За работоспособность не ручаюсь, т.к. нет на чем проверить)
Код

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
var marsh, otel, sez, chsl;
 
function update() {
    marsh = [
        marshrut1.mrsh1.options[marshrut1.mrsh1.selectedIndex].value,
        marshrut2.mrsh2.options[marshrut2.mrsh2.selectedIndex].value,
        marshrut3.mrsh3.options[marshrut3.mrsh3.selectedIndex].value,
        marshrut4.mrsh4.options[marshrut4.mrsh4.selectedIndex].value
    ];
 
    otel = [
        stars1.star1.options[stars1.star1.selectedIndex].value,
        stars2.star2.options[stars2.star2.selectedIndex].value,
        stars3.star3.options[stars3.star3.selectedIndex].value,
        stars4.star4.options[stars4.star4.selectedIndex].value
    ];
 
    sez = [
        sezon1.szn1.options[sezon1.szn1.selectedIndex].value,
        sezon2.szn2.options[sezon2.szn2.selectedIndex].value,
        sezon3.szn3.options[sezon3.szn3.selectedIndex].value,
        sezon4.szn4.options[sezon4.szn4.selectedIndex].value
    ];
 
    chsl = [
        document.colvo1.col1.value,
        document.colvo2.col2.value,
        document.colvo3.col3.value,
        document.colvo4.col4.value
    ];
};
 
function calculation(i) {
    i--;
    update();
    var all = (+marsh[i] + +otel[i] + +sez[i])*chsl[i];
    if (((marsh[i] || otel[i] || sez[i]) == 1) || (chsl[i] == 0)) {
        document.getElementById('vivod' + (i+1)).innerHTML = 'Не все пунты выбраны!';
    } else {
        document.getElementById('vivod' + (i+1)).innerHTML = all;
    };
 
    var arr = [], result = 0;
    for (var j = 1; j < 5 ; j++) {
        arr[j-1] = document.getElementById('vivod' + j).innerHTML;
        if (!isNaN(arr[j-1])) result += arr[j-1];
    };
    document.getElementById('final').innerHTML = result;
}
0
0 / 0 / 1
Регистрация: 16.12.2012
Сообщений: 4
29.05.2013, 09:54  [ТС]
вот как получилось) работает, спасибо!

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
function raschet(){
 
var a0,a1,a2, a3, a4,b1, b2,allk,i,j
 
a1=new Array(marshrut1.mrsh.options[marshrut1.mrsh.selectedIndex].value, marshrut1.star.options[marshrut1.star.selectedIndex].value,
marshrut1.szn.options[marshrut1.szn.selectedIndex].value, marshrut1.col.value);
a2=new Array(marshrut2.mrsh.options[marshrut2.mrsh.selectedIndex].value, marshrut2.star.options[marshrut2.star.selectedIndex].value,
marshrut2.szn.options[marshrut2.szn.selectedIndex].value, marshrut2.col.value);
a3=new Array(marshrut3.mrsh.options[marshrut3.mrsh.selectedIndex].value, marshrut3.star.options[marshrut3.star.selectedIndex].value,
marshrut3.szn.options[marshrut3.szn.selectedIndex].value, marshrut3.col.value);
a4=new Array(marshrut4.mrsh.options[marshrut4.mrsh.selectedIndex].value, marshrut4.star.options[marshrut4.star.selectedIndex].value,
marshrut4.szn.options[marshrut4.szn.selectedIndex].value, marshrut4.col.value);
b1=a1.concat(a2);
b2=a3.concat(a4);
a0=b1.concat(b2);
j=1;
i=0;
while((j<=4)&&(i<a0.length)){
 
allk=(1*(a0[i])+1*(a0[i+1])+1*(a0[i+2]))*(a0[i+3]);
if((a0[i])==1)
{document.getElementById('vivod'+(j)).innerHTML="Íå âñå ïóíêòû âûáðàíû!";} 
else if ((a0[i+1])==1)
{document.getElementById('vivod'+(j)).innerHTML="Íå âñå ïóíêòû âûáðàíû!";}
else if ((a0[i+2])==1)
{document.getElementById('vivod'+(j)).innerHTML="Íå âñå ïóíêòû âûáðàíû!";}
else if ((a0[i+3])==0)
{document.getElementById('vivod'+(j)).innerHTML="Íå âñå ïóíêòû âûáðàíû!";}
else{
 
document.getElementById('vivod'+(j)).innerHTML=allk;}
 
var a,b,c,d,z=0
a=document.getElementById('vivod1').innerHTML
b=document.getElementById('vivod2').innerHTML
c=document.getElementById('vivod3').innerHTML
d=document.getElementById('vivod4').innerHTML
if(isNaN(a)){a=0}
else{z=1*a};
if(isNaN(b)){b=0}
else{z=1*a+1*b};
if(isNaN(c)){c=0}
else{z=1*a+1*b+1*c};
if(isNaN(d)){d=0}
else{z=1*a+1*b+1*c+1*d};
document.getElementById('final').innerHTML=z;
i+=4;
j++;
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2013, 09:54
Помогаю со студенческими работами здесь

Оптимизировать работу
Подскажите что необходимо менять в JS для того что бы получить мне нужный результат. Сейчас JS формирует 6 секторов с кнопками, на кнопках,...

Оптимизировать работу с диапазоном ячеек
Добрый день Всех с новым годом Есть макрос мне надо чтобы его использовать в диапазоне B2:B1000 не хочется каждый диапазон по...

Оптимизировать работу игрового клуба
:help: Доброго времени суток! Мне предстоит подключить 11 компьютеров. Задача такая: - работа компьютеров по сети - работа...

Как оптимизировать работу с несколькими DataGridView?
Есть форма с несколькими DataGridView (отсюда https://www.cyberforum.ru/csharp-net/thread228350.html). По клику в заголовке нужно...

Как лучше оптимизировать работу с данными БД
Здравствуйте. У меня в приложении есть функция работы с адресами из Кладр. Выглядит это как на скриншоте. Первоначально я хотел по...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru