Я пытаюсь создать довольно простую форму, которая позволит вводить переменные и решать заданную формулу. Я спотыкаюсь о том, как выразить формулу и как сделать первые две переменные понятыми как показатель степени.
Вот полная формула, которая работает в Excel (метки ячеек заменены входными именами для html):
=varNk * varQr * ( 273 + varT ) / ( 273 + varTo ) * varPp / varP * varKq * varKak
Обратите внимание, что «varNk» и «varQr» — это значения, введенные с показателями степени, т. е. 97,53^12.
РЕДАКТИРОВАТЬ: Фактическая формула (ссылка на изображение, так как у меня недостаточно представителей для прямой публикации) - http://mattk.net/DwFormula1.PNG
Вот что я пытался заставить работать. Я не был уверен, как правильно собрать окончательный результат, но в идеале я хочу выяснить, как сделать это с помощью одной кнопки.
<head>
<script>
function doCalcOne()
{
var varNk = document.getElementById('varNk').value;
var varQr = document.getElementById('varQr').value;
var varT = document.getElementById('varT').value;
var varTo = document.getElementById('varTo').value;
var varPo = document.getElementById('varPo').value;
var varP = document.getElementById('varP').value;
var varKq = document.getElementById('varKq').value;
var varKak = document.getElementById('varKak').value;
var result1 = document.getElementById('stepOne');
var stepOne = varNk * varQr;
result1.value = stepOne;
}
function doCalcTwo()
{
var result2 = document.getElementById('stepTwo');
var stepTwo = parseInt(varT.value) + 273;
result2.value = stepTwo;
}
</script>
</head>
<html>
<table>
<tr>
<td>Step One:<input id="stepOne" /></td>
</tr>
<tr>
<td>Step Two:<input id="stepTwo" /></td>
</tr>
</table>
<div id="DoseRateCalc">
<p>Enter the values below to calculate the Dose Rate</p>
</div>
<table style="width:600px;border:1px solid #000;">
<tr>
<td>
<p>Nk=<input id="varNk" type="text"></p>
</td>
<td>
<p>TN 34013 IC Cal Certificate Detection Calibration Factor</p>
</td>
<tr>
<td>
<p>Qr=<input id="varQr" type="text"></p>
</td>
<td>
<p>Unidos measured charge in pC (pico coulumb)@20mm</p>
</td>
</tr>
<tr>
<td>
<p>T=<input id="varT" type="text"></p>
</td>
<td>
<P>Current temperature</p>
</td>
</tr>
<tr>
<td>
<p>To=<input id="varTo" type="text"></p>
</td>
<td>
<p>TN34013 IC cal certificate protocol temp</p>
</td>
</tr>
<tr>
<td>
<p>Po=<input id="varPo" type="text"></p>
</td>
<td>
<p>Current pressure</p>
</td>
</tr>
<tr>
<td>
<p>P=<input id="varP" type="text"></p>
</td>
<td>
<p>TN34013 IC cal certificate protocol pressure</p>
</td>
</tr>
<tr>
<td>
<p>Kq=<input id="varKq" type="text"></p>
</td>
<td>
<p>TN34013 IC cal certificate protocol TW30 Beam Quality Correction value</p>
</td>
</tr>
<tr>
<td>
<p>Kak->DW=<input id="varKak" type="text">
</td>
<td>
<p>Correction factor TN 34013 IC from PTW. Air Kerma --> absorbed dose to water convertion for TW30 Water Phantom Manual pg43</p>
</td>
</tr>
</p>
<p><input type="button" value="Calculate Step 1" onClick="doCalcOne()"></p>
<p><input type="button" value="Calculate Step 2" onClick="doCalcTwo()"></p>
</table>
<br>
</html>
РЕДАКТИРОВАТЬ 2: Рабочая функция:
function doCalcOne()
{
var varNk = document.getElementById('varNk').value;
var varQr = document.getElementById('varQr').value;
var varT = document.getElementById('varT').value;
var varTo = document.getElementById('varTo').value;
var varPo = document.getElementById('varPo').value;
var varP = document.getElementById('varP').value;
var varKq = document.getElementById('varKq').value;
var varKak = document.getElementById('varKak').value;
var result1 = document.getElementById('stepOne');
var stepOne = varNk * (Math.pow(10,9)) * varQr * (Math.pow(10,-12)) * ( 273 + varT ) / ( 273 + varTo ) * varPo / varP * varKq * varKak;
num = stepOne;
result1.value = num.toPrecision(4);
}