プログラミング:数値計算の注意
非常勤講師:山本博志 講義補助資料
JAVAからJAVAScriptへの変更点で気をつけることは、Antoineの蒸気圧推算が
log Pressure = A- B/(T+C)
の計算で、log が自然対数のlog,(LNと書かれることもある)、log10(底を10にしたログ)、T(温度)がケルビンか°Cか、圧力がmmHgかBarかでアントワン定数が数種類あることだ。Pirikaではlog10, Kelvin, mmHgのAntoineを採用している。(通常の化合物で、AntAが7付近、AntBが1200,AntCが200ちょっとなので、気をつけて計算して頂きたい。)
JAVAやJavaScriptのMath.log(X)関数は自然対数なので、
function log10(x) { return Math.LOG10E * Math.log(x); }
という関数を用意して、log10を計算できるようにしておく。
結果を出力するときに、数値演算は、327.93674084848というように小数点以下ずらずら値が入ってくるので、小数点以下を四捨五入する関数、Math.round(X)を使って丸め込む。
X=327.93674084848*100; 100倍する。
var Y=Math.round(X); 小数点以下を四捨五入。
X=Y/100.0; 1/100倍する。
出力の改行コードは”\n"とする。\の記号はマックの場合はオプションキーを押しながら¥記号を押す。プログラムによっては¥記号でも通用するが、JavaScriptでは¥記号はダメなようだ。後はJAVAの数値計算部分で変数の int や double を var に変えて配列の定義をJavaScriptに変える。変数の初期値はJAVAは0になっているが、JavaScriptでは初期化されないのできちんと定義する。それさえ気をつければ、問題なく移植できる。GUIの設計は、DashCodeを使ってパーツを配置するだけなので20分もあれば設計できる。キャンバスへの描画はHTML5から導入されたものだが、座標を指定して、線や丸を書くだけなので簡単にできるだろう。値をセットしたときに、ボタンの色を変えたりボタンを使えなくしたりしたい。それはこのようにやる。
var buttonToEnable = document.getElementById("button1");
buttonToEnable.object.setEnabled(false);
buttonToEnable.opacity=0.2;
setEnabledでtrueかfalseでボタンを押されたときに動作するかしないかを設定できる。また、opacityが1.0の時にはボタンがはっきり見えて、0.2では薄暗く見える。
プログラミングのトップページへ