Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как расчитать сумму массива (https://javascript.ru/forum/misc/17438-kak-raschitat-summu-massiva.html)

вита 19.05.2011 14:06

как расчитать сумму массива
 
Хочу разобраться с функциями автокалькулятора найденного на просторах интерента. Как мне внести и вывести свою сумму в данный скрипт, помогите плиз.
<SCRIPT language=JavaScript><!--
BlackInk= new Array(50,37,30,25,21,18,16,14,13);
ColorInk= new Array(85,57,45,37,31,25,21,18,17);
Cut= new Array(3,0);
Paper= new Array(30,33,66,64,0,95,167,460,26,6,47,195);
Ves= new Array(65,80,80,80,0,120,160,178,80,0,80,200);
Falcov= new Array(30,10000);
Bigov= new Array(200,10000);
Cutk= new Array(0,1,2,3,4,5,7,8,9,11,13,14,15,17,19,20,21,23 ,24,25,26,27,29);
function kalk() {
var forma = document.form;
t = forma.tir.value;
f = forma.format.value;
sk = forma.ski.value;
var kcf;
var res2 = 0;
forma.rezz.value = "";
forma.rezzC.value = "";
forma.rezz2.value = "";
forma.rezz2C.value = "";
forma.rezz3.value = "";
forma.rezz3C.value = "";
forma.rezz4.value = "";
forma.rezz4C.value = "";
forma.rezz5.value = "";
forma.rezz5C.value = "";
forma.rezz0.value = "";
forma.rezz0C.value = "";
forma.rezz1.value = "";
forma.rezz1C.value = "";
forma.rezz0sk.value = "";
forma.rezz0skC.value = "";
forma.rezz0sk1R.value = "";
forma.rezz0sk1C.value = "";
forma.vez.value = "";
forma.obz1.value = "";
forma.obz2.value = "";
forma.obz3.value = "";
forma.obz4.value = "";
forma.liz1.value = "";
forma.liz2.value = "";
if (t == "") {
alert ("Какой тираж?\n\_______________");
forma.tir.focus();
}
else {
for (i=0; i<forma.format.length; i++) {
if (forma.format[i].checked == true) {
var f = forma.format[i].value;
break
}
}
for (i=0; i<forma.pap.length; i++) {
if (forma.pap[i].selected == true) {
var p = forma.pap[i].value;
break
}
}
for (i=0; i<forma.cut.length; i++) {
if (forma.cut[i].selected == true) {
var c = forma.cut[i].value;
break
}
}
for (i=0; i<forma.fal.length; i++) {
if (forma.fal[i].selected == true) {
var falc = forma.fal[i].value;
break
}
}
for (i=0; i<forma.big.length; i++) {
if (forma.big[i].selected == true) {
var bigs = forma.big[i].value;
break
}
}
if (forma.kr10.checked == true) kr10 = 1;
else kr10 = 0;
if (forma.kr20.checked == true) kr20 = 1;
else kr20 = 0;
if (forma.kr30.checked == true) kr30 = 1;
else kr30 = 0;
if (forma.kr40.checked == true) kr40 = 1;
else kr40 = 0;
if (forma.kr50.checked == true) kr50 = 1;
else kr50 = 0;
if (forma.kr60.checked == true) kr60 = 1;
else kr60 = 0;
if (forma.kr70.checked == true) kr70 = 1;
else kr70 = 0;
if (forma.kr80.checked == true) kr80 = 1;
else kr80 = 0;
if (forma.kr01.checked == true) kr01 = 1;
else kr01 = 0;
if (forma.kr02.checked == true) kr02 = 1;
else kr02 = 0;
if (forma.kr03.checked == true) kr03 = 1;
else kr03 = 0;
if (forma.kr04.checked == true) kr04 = 1;
else kr04 = 0;
if (forma.kr05.checked == true) kr05 = 1;
else kr05 = 0;
if (forma.kr06.checked == true) kr06 = 1;
else kr06 = 0;
if (forma.kr07.checked == true) kr07 = 1;
else kr07 = 0;
if (forma.kr08.checked == true) kr08 = 1;
else kr08 = 0;
var k3 = 1;
var kcf = 0;
var krezviz = 0;

if (f == "A3") k3 = 2;
if (f == "A5") kcf = 1;
if (f == "A6") kcf = 3;
if (f == "евро") kcf = 2;
if (f == "визитка") {kcf = 11; krezviz = 4}
var rt = Math.ceil(t/(kcf+1));
if (kr70+kr07 > 0) var noA3 = "краской бургундия.";
if (kr80+kr08 > 0) var noA3 = "изумрудной краской.";
if (rt >= 1) {
if (f != "A3" || f == "A3" && kr70+kr07+kr80+kr08 == 0) {
if (f != "A3" || f == "A3" && p != 7) {
if (p != 8 || p == 8 && kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08 == 0) {
if (p != 7 || p == 7 && kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08 == 0) {
if (p != 0 || p == 0 && kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08+kr10+kr20+ kr30+kr40+kr50+kr60+kr70+kr80 <= 1) {
if (f != "A3" || f == "A3" && p != 0) {
if (p == 4 || p == 5) alert ("ВНИМАНИЕ !\nВыбранная бумага покупается под заказ.\nСрок закупки 4-6 дней после оплаты.\n\n_________");
if (p == 9) alert ("ВНИМАНИЕ !\nДля печати на ризографе мы принимаем только хорошую бумагу.\nПлотность бумаги от 80 до 210 гр/м2.\nВыясните марку бумаги и проконсультируйтесь по телефону ___________.\n\n_________");
if (f == "A5" && c != 0 || f == "A6" && c != 0 || f == "евро" && c != 0 || f == "визитка" && c != 0) alert ("ВНИМАНИЕ !\nВы уверены, что отпечатанный тираж, уже порезанный до формата " + f + ",\nнужно ЕЩЕ РАЗ ПОРЕЗАТЬ ?\n\n___________");
if (kr01+kr02+kr03+kr04+kr05+kr06+kr07+kr08 > 1 || kr10+kr20+kr30+kr40+kr50+kr60+kr70+kr80 > 1) alert ("ВНИМАНИЕ !\nНа ризографе есть ограничения при печати в несколько красок.\nСоветуем Вам проконсультироваться по телефонам:\n_____________\n\n__________") ;
if (f == "визитка") alert ("Обратите внимание, что визитки отпечатанные на ризографе это не классические красивые визитки,\nа очень дешевые визитки для раздачи на улице.\n\nКрасивые солидные визитки мы можем напечатать на полноцветной цифровой машине.\nДля расчета классических цветных визиток есть другой калькулятор.\n\n________________");
if (rt>=100 && rt<200) {var nt1 = 0; var rt1 = 100; var rt2 = 200}
if (rt>=200 && rt<300) {var nt1 = 1; var rt1 = 200; var rt2 = 300}
if (rt>=300 && rt<400) {var nt1 = 2; var rt1 = 300; var rt2 = 400}
if (rt>=400 && rt<500) {var nt1 = 3; var rt1 = 400; var rt2 = 500}
if (rt>=500 && rt<1000) {var nt1 = 4; var rt1 = 500; var rt2 = 1000}
if (rt>=1000 && rt<2000) {var nt1 = 5; var rt1 = 1000; var rt2 = 2000}
if (rt>=2000 && rt<5000) {var nt1 = 6; var rt1 = 2000; var rt2 = 5000}
if (rt>=5000 && rt<10000) {var nt1 = 7; var rt1 = 5000; var rt2 = 10000}
var nt2 = nt1+1;
if (rt<100) {var RBlackInk = 100*BlackInk[0]/rt; var RColorInk = 100*ColorInk[0]/rt}
if (rt>=100 && rt<10000) {var RBlackInk = BlackInk[nt1]-(BlackInk[nt1]-BlackInk[nt2])*(rt-rt1)/(rt2-rt1); var RColorInk = ColorInk[nt1]-(ColorInk[nt1]-ColorInk[nt2])*(rt-rt1)/(rt2-rt1)}
if (rt>=10000) {var RBlackInk = BlackInk[8]; var RColorInk = ColorInk[8]}
var res = Math.round(((kr10+kr01)*RBlackInk+(kr20+kr30+kr40+ kr50+kr60+kr70+kr80+kr02+kr03+kr04+kr05+kr06+kr07+ kr08)*RColorInk)*rt*k3);
var resR = Math.floor(res*0.01);
var resC = Math.floor(res-resR*100);
if (resC >= 0 && resC <= 9) var resC = "0" + resC;
forma.rezz.value = resR;
forma.rezzC.value = resC;
var VesRezki = 1;
if (p == 5 || p == 6 || p == 7 || p == 11) var VesRezki = 2;
var res2 = Math.round((Cut[0]*(Cutk[c]*t+(kcf+krezviz)*rt))*VesRezki);
if (rt <= 300/VesRezki) res2 = Math.round(Cut[0]*(Cutk[c]*300*(kcf+1)+(kcf+krezviz)*300));
var res2R = Math.floor(res2*0.01);
var res2C = Math.floor(res2-res2R*100);
if (res2C >= 0 && res2C <= 9) var res2C = "0" + res2C;
forma.rezz2.value = res2R;
forma.rezz2C.value = res2C;
var res3 = Math.round(Paper[p]*rt*k3);
var res3R = Math.floor(res3*0.01);
var res3C = Math.floor(res3-res3R*100);
if (res3C >= 0 && res3C <= 9) var res3C = "0" + res3C;
forma.rezz3.value = res3R;
forma.rezz3C.value = res3C;
var res4 = 0;
if (falc != "0") var res4 = Math.round(Falcov[0]*t*(Cutk[c]+1))+Falcov[1];
var res4R = Math.floor(res4*0.01);
var res4C = Math.floor(res4-res4R*100);
if (res4C >= 0 && res4C <= 9) var res4C = "0" + res4C;
forma.rezz4.value = res4R;
forma.rezz4C.value = res4C;
var res5 = Math.round(Bigov[0]*t*(Cutk[c]+1)*bigs)+Bigov[1]*bigs;
var res5R = Math.floor(res5*0.01);
var res5C = Math.floor(res5-res5R*100);
if (res5C >= 0 && res5C <= 9) var res5C = "0" + res5C;
forma.rezz5.value = res5R;
forma.rezz5C.value = res5C;
var res0 = res+res2+res3+res4+res5;
var res0R = Math.floor(res0*0.01);
var res0C = Math.floor(res0-res0R*100);
if (res0C >= 0 && res0C <= 9) var res0C = "0" + res0C;
forma.rezz0.value = res0R;
forma.rezz0C.value = res0C;
var res1 = Math.round(res0/(t*(Cutk[c]+1)));
var res1R = Math.floor(res1*0.01);
var res1C = Math.floor(res1-res1R*100);
if (res1C >= 0 && res1C <= 9) var res1C = "0" + res1C;
forma.rezz1.value = res1R;
forma.rezz1C.value = res1C;
var res0sk = res0-sk*res0*0.01;
var res0skR = Math.floor(res0sk*0.01);
var res0skC = Math.floor(res0sk-res0skR*100);
if (res0skC >= 0 && res0skC <= 9) var res0skC = "0" + res0skC;
forma.rezz0sk.value = res0skR;
forma.rezz0skC.value = res0skC;
var res0sk1 = Math.round(res0sk/(t*(Cutk[c]+1)));
var res0sk1R = Math.floor(res0sk1*0.01);
var res0sk1C = Math.floor(res0sk1-res0sk1R*100);
if (res0sk1C >= 0 && res0sk1C <= 9) var res0sk1C = "0" + res0sk1C;
forma.rezz0sk1R.value = res0sk1R;
forma.rezz0sk1C.value = res0sk1C;
var ves = Math.round(Ves[p]*rt*k3*0.0006237)/10;
forma.vez.value = ves;
var obs1 = Math.round(ves*10/2.5)/10;
var obs2 = Math.round(ves*10/5)/10;
var obs3 = Math.round(ves*10/12.5)/10;
var obs4 = Math.round(ves*10/25)/10;
forma.obz1.value = obs1;
forma.obz2.value = obs2;
forma.obz3.value = obs3;
forma.obz4.value = obs4;
var lis1 = Math.round(rt*k3);
var lis2 = Math.round(rt*k3/2);
forma.liz1.value = lis1;
forma.liz2.value = lis2;

}
}
}
-->
</SCRIPT>

ksa 19.05.2011 14:22

Цитата:

Сообщение от вита
Хочу разобраться с функциями автокалькулятора найденного на просторах интерента.

Чего же ты такого хочешь калькулировать? :blink: Может стоит плясать не от какого-то скрипта... А от собственных нужд? :)


Часовой пояс GMT +3, время: 00:37.