PHPで等差数列を書いてみた。
初項、公差、項数をフォーム入力してその等差数列の和と表を作ってみました。
入力送信側のファイル:arithmetical.php
<h1>等差数列</h1> <form action="arithmeticalAnswer.php" method="get"> <p>初項:<input type="text" size="5" maxlength="5" name="firstTerm"><span>(3桁まで)</span></p> <p>公差:<input type="text" size="5" maxlength="5" name="tolerance"><span>(3桁まで)</span></p> <p>項数:<input type="text" size="5" maxlength="5" name="termNum"><span>(3桁まで)</span></p> <input type="submit" value="送信"> </form>
受信側ファイル:arithmeticalAnswer.php
<?php define("First",$_REQUEST['firstTerm']);//初項を定数に $firstTerm=$_REQUEST['firstTerm'];//初項に公差を加算していく変数。 $tolerance=$_REQUEST['tolerance'];//公差 $termNum=$_REQUEST['termNum'];//項数 ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>arithmeticalAnswer</title> <style type="text/css"> th { background:#333; color:#FFF; } th, td { border:1px solid #666; text-align:center; } </style> </head> <body> <p>初項<?php echo$firstTerm;?>。公差<?php echo$tolerance;?>。項数<?php echo$termNum;?>の等差数列。</p> <table> <tr> <?php $td=$firstTerm; for($cnt=1;$cnt<=2;$cnt++){ if($cnt==1){ for($th=1;$th<=$termNum;$th++){ if($th!=$termNum){ print("<th>第".$th."項</th>"); }else{print("<th>第".$th."項</th></tr>");} } }else{ for($th=1;$th<=$termNum;$th++){ print("<td>".$td."</td>"); $td+=$tolerance; } } } ?> </tr> </table> <p>よって<?php echo($termNum);?>項目目までの等差数列の合計は: <?php print(First+$td-$tolerance)*$termNum/2; ?> </p> <p><a href="arithmetical.php">戻る</a></p> </body> </html>
制作時間:1.5時間
反省点:項数が多くなると横幅が長く点を後ほど改良するとして、見にくいコードを直す必要あり。