「質問には回答しません」と書いてあるのに、[Q&Aキット]の、表示されていない計算式を知りたい、という質問が時々あります。[Q&Aキット]
の「簡単計算フォーム」は JavaScript で作成してありますので、ソースを見ることで、どのような計算をしているのか、比較的簡単に知ることができます。
Q&Aキットの、計算式を見たいページを開いてください。そのページ上でマウスを右クリックし、[ソースを表示] などと書かれた項目を選択すると、そのページのソースが表示されます。見るのは上の方の、</head>の上の、次の赤字のファイル名(拡張子が js )です。s01010.htm(★ 熱の計算 容量計算)では、次の部分になります。
<title>★ 熱の計算: 容量計算</title>
<script src="s00010.js"></script>
<script src="s01010.js"></script>
<script src="h00010.js"></script>
<script>disp_css();</script>
</head>
拡張子が js の、この3つが JavaScript のファイルです。計算式は、開いたページと拡張子だけ異なる、s01010.js に書かれています。
計算式が簡単な、「★ 熱の計算 容量計算」で実際に計算式を見てみます。
s01010.js を開くと、次のように表示されます。緑色、赤色字の部分はわかりやすくするためのコメントで、JavaScript の動作には関係ありません。
/******** 物体を温度上昇させるのに必要な容量 ********/
function calc01()
{
var s=new Array(4);
var t;
with(document.WaForm)
{
try
{
s[0]=evl(inp01.value); // A
s[1]=evl(inp02.value); // B
s[2]=evl(inp03.value); // C
s[3]=evl(inp04.value); // D
}
catch(e)
{
alert("正しい数値を入力してください");
return false;
}
if(s[0]>0 && s[1]>0 && s[2]>0 && s[3]>0 )
{
inp01.value=s[0];
inp02.value=s[1];
inp03.value=s[2];
inp04.value=s[3];
t=(s[0]*s[1]*s[2])/(s[3]*3600);
result.value=marume(t); // E
}
else
alert("正しい数値を入力してください");
}
}
このフォームは WaForm という名前で、A~D を入力するテキストボックスの名前は、inp01~inp04 です。このテキストボックスの文字列を数値化(evl)して、s[0]~s[3]
に代入しています。
その後に、再度テキストボックス inp01~inp04 に s[0]~s[3] の値を入力しているのは、テキストボックスに計算式を入力した場合に、それを数値にするためです。
実際の計算は、t=(s[0]*s[1]*s[2])/(s[3]*3600) という部分で、ページに表示されている計算式と同じです。
次に、t を marume( ) という関数で処理してから、結果の E を表示するテキストボックス result に入力しています。なお、marume(
) というのは、s00010.js に書かれていて、小数点以下の桁数を減らしています。
JavaScript や HTML(特にフォーム)についての知識がある程度ないと、どの部分が計算式なのか? 判別するのが難しいかもしれません。そのためには、
技術情報 の[一番簡単な JavaScript] を見てください。[Q&A キット] のように、計算をするだけなら、第1回~第4回を見れば、大体わかると思います。