0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScriptで悪戦苦闘

Last updated at Posted at 2017-12-23

やりたいことはこれ
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ボタンが押されていない状態だった。つまり、計算ボタンが無効のまま押していた。(恥;)

反省
ブラウザについているデバッグモードを十分に活用しよう
やっと出来上がったのはコレ。

課題.html
<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>
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?