やりたいことはこれ
HTMLにJavaScriptを組み込んで、
工数を入力し、次式で求める標準工数を表示する
標準工期=(工数の3乗根)×2.5
失敗はこれ
①3乗根を求めたいが、結果が1になった。
原因は、文字列を数値変換するときにparseInsを使っていたので、整数になっていた。浮動小数点parseFloatにした。
②計算ボタンを押しても、結果が表示されなくなった。
原因 関数の大文字小文字が影響するとは知らなかった
誤 parsefloat
正 parseFloat
③計算ボタンを押しても、結果が表示されなくなった。
原因は、</script>
が無かった(恥;)
④外部ソースファイルのファイル名を間違った
原因 はじめのうち、JavaScriptを外部ファイルにしていた。改良していく途中で内部にした。
<script type="text/javascript" language="JavaScript" src="課題2.js"></script>
⑤計算ボタンをクリックしたが、計算結果がアラート表示されないので、JavaScriptかHtmlのどこかが間違ったと思ってデバッグをしていたが、アラート表示がウィンドウの後ろにあり、OKボタンが押されていない状態だった。つまり、計算ボタンが無効のまま押していた。(恥;)
反省
ブラウザについているデバッグモードを十分に活用しよう
やっと出来上がったのはコレ。
<body>
<h2> 内部スクリプトの実行 </h2>
<h3>標準工期</h3>
<form name="bekijo">
<input type="text" value="100">工数(人月)<br> <!-- 基数 -->
<input type="text" value="0.333333">3乗根<br> <!-- 指数 -->
<input type="button" value="計算" onclick="beki()">
</form>
<script>
function beki(){
//基数と指数をそれぞれ浮動小数点の数値に変換(parsefloat)して変数に格納
var num1=parseFloat(document.bekijo.elements[0].value);
var num2=parseFloat(document.bekijo.elements[1].value);
//べき乗を求めてアラートで表示
alert( "工数の3乗根は " + Math.pow(num1,num2) + "\n"
+ "標準工期は " + 2.5 * Math.pow(num1,num2) + "ヵ月" + "\n"
+ "25%短縮工期は" + 2.5 * Math.pow(num1,num2) * 0.75 + "ヵ月");
}
</script>
</body>