三角形の面積を求めるプログラム
http://alfalfa.livedoor.biz/archives/51520760.html
読解力も極端に弱く、『三角形の面積を求めるプログラムをつくれ』という試験を出したら、『どういうことかわからない』といってきた学生がいる。 読めないのか、読む気がないのか、理解できない。『あまりにも稚拙だ』というと、『稚拙って何ですか』と聞き返してきた」
なるほど。では、三角形の面積を求めるプログラムを作ってみましょう。以下ソース。
三角形の面積を計算するよ <form method="POST" action="sankaku.php"> 底辺<input type="text" name="teihen" size="10"> 高さ<input type="text" name="takasa" size="10"> <select name="tani"> <option value="mm">mm <option value="cm">cm <option value="m">m </select> <br> <input type="submit" value="求める"> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $teihen = check_data($_POST["teihen"]); $takasa = check_data($_POST["takasa"]); $tani = $_POST["tani"]; if($teihen && $takasa){ $menseki = $teihen * $takasa / 2; $menseki = sprintf("%01.2f",$menseki); echo "底辺:".$teihen.$tani."、高さ".$takasa.$tani."の面積は<br>"; echo $menseki.$tani."です。"; } else { echo "底辺と高さは必須です"; } } function check_data($str){ $result = preg_match ( "/[0-9]/", $str) or die("半角数字で入力してください"); if($str == 0){ echo "底辺、高さに0は入力しないでください"; exit; } return($str); } ?>
簡単じゃねーか!と舐めてかかったものの、意外と手間がかかった。しかも改良の余地あり。
まず、phpで作るからにはインタラクティブ性を…と思ったのでフォームから数値を入力させることに。
三角形の面積を求める公式は底辺×高さ÷2なので、この辺は基本がわかる人なら即出来るだろう。
やっかいなのが例外処理と小数点の問題。
入力時に整数しか選べないようにした。小数点でもよかったけどね…また今度。
半角数字以外やゼロを入力するとエラーになる設定にはした。
単位は超手抜きだが底辺も高さも一括で指定という仕様に。
肝心の面積の表示だが、小数点は第二位までの表示に。
参考にしたのは
sprintfを使う、と。
何にでも真面目に取り組むって大事だな。もっと頑張ろう。