2010-11-25 修正 2009-01-16 新規 実習問題 (1) サンプル解答 ================================================================================ 1. (Sign01.php) 変数$aの値の符号(正か0のときは+, 負のときは-)を表示しなさい。 --- = 0) { print "$a は + です。"; } else { print "$a は - です。"; } ?> --- 2. (Sign02.php) 変数$aの値の符号(正のときは+, 0のときは0、負のときは-)を表示しな さい。 --- 0) { print "$a は + です。"; } elseif ($a == 0) { print "$a は 0 です。"; } else { print "$a は - です。"; } ?> --- 3. (Three01.php)変数$aの値を表示しなさい。このとき、$aが3の倍数のときは、面白い こともあわせて表示しなさい。 --- --- 4. (Month01.php) 変数$monthの値(1〜12)から、大の月、小の月、2月と表示しなさい。 (switch文を使う) --- --- 5. (Month02.php) 変数$monthの値(1〜12)から、大の月、小の月、2月と表示しなさい。 (配列を使う) --- "大", "2", "大", "小", "大", "小", "大", "大", "小", "大", "小", "大", ); print "$month は $MONTH_CATEGORY[$month] の月です。"; ?> --- 6. (Month03.php) Month02.phpで作った MONTH_CATEGORY 配列を一覧表にして表示しなさ い。 --- "大", "2", "大", "小", "大", "小", "大", "大", "小", "大", "小", "大", ); foreach ($MONTH_CATEGORY as $month => $caterory) { print "$month 月は $caterory の月です。"; print "
"; } ?> --- 7. (Month04.php) Month02.phpで作った MONTH_CATEGORY 配列を一覧表(逆順)にして表示 しなさい。 --- "大", "2", "大", "小", "大", "小", "大", "大", "小", "大", "小", "大", ); for ($month = count($MONTH_CATEGORY); $month > 0; $month--) { print "$month 月は $MONTH_CATEGORY[$month] の月です。"; print "
"; } ?> --- 8. (Month05.php) Month02.phpで作った MONTH_CATEGORY 配列で、最初の小の月が何月か を表示しなさい。 --- "大", "2", "大", "小", "大", "小", "大", "大", "小", "大", "小", "大", ); foreach ($MONTH_CATEGORY as $month => $category) { if ($category == "小") { print "最初の小の月は $month です。"; break; } } ?> --- 9. (LeapYear01.php) 変数$yearの値が西暦年として、この年がうるう年かどうかを表示 しなさい。 うるう年の条件: (1) 400 で割り切れれば、うるう年 (2) (1)だが、100 で割り切れれば、うるう年でない (3) (2)だが、4 で割り切れれば、うるう年 --- --- 10. (LeapYear02.php) LeapYear01.php の制御を、論理演算子を使って ひとつの if 文 で行いなさい。 --- --- 11. (LeapYear11.html、LeapYear11.php) LeapYear02.php を呼び出すフォームがある HTML を作りなさい。このフォームはテキストフィールドに西暦年を入れるようにしなさ い。ただし、LeapYear02.php は、プログラム中で値を設定しているので、これをフォー ムから送られてくる値を取得するようにしなさい。 ---
西暦年を入力してください。
--- --- --- 12. (Month12.html、Month12.php) Month02.php を呼び出すフォームがある HTML を作り なさい。このフォームは、選択リストを使って、1月から12月まで選択できるようにしな さい。ただし、Month01.php は、プログラム中で値を設定しているので、これをフォーム から送られてくる値を取得するようにしなさい。 ---
月を選択してください。

--- --- "大", "2", "大", "小", "大", "小", "大", "大", "小", "大", "小", "大", ); print "$month は $MONTH_CATEGORY[$month] の月です。"; ?> --- 13. (Month12.form.php) Month12.html で、選択リストを作る部分を、PHP を使って効率 的に出すようにしなさい。 ---
月を選択してください。

--- 14. (LeapYear12.form.php、LeapYear12.php) LeapYear12.php を呼び出すフォームがあ る PHP を作りなさい。 また、LeapYear12.php では、つぎの入力値のチェックを行いなさい。 ・HTMLのタグはすべて無効にする(タグ部分は受け取らない) ・値が入っていなければ、その旨のメッセージを表示する。(戻るボタンで戻るよう にガイダンスする) ・値がすべて半角数字でなければ、その旨のメッセージを表示する。(戻るボタンで 戻るようにガイダンスする) ---
西暦年を入力してください。
--- --- $message
"; } print "「前のページへ戻る」ボタンで戻ってください。
"; exit; } // うるう年の判定 if ((($year % 400) == 0) || ((($year % 100) != 0) && (($year % 4) == 0))) { print "$year は うるう年です。"; } else { print "$year は うるう年でではありません。"; } ?> --- 15. (LeapYear13.form.php、LeapYear13.php、LeapYear13.function.php) LeapYear12.php で、リクエストデータが正整数かどうかを判定する関数 isPositiveInteger() と、正整数を西暦年としてうるう年かどうかを判定する関数 isLeapYear() を作り、それを利用するようにしなさい。 ただし、エラーのメッセージについてはひとつにまとめてかまわない。 ---
西暦年を入力してください。
--- --- $message
"; } print "「前のページへ戻る」ボタンで戻ってください。
"; exit; } // うるう年の判定 if (isLeapYear($year)) { print "$year は うるう年です。"; } else { print "$year は うるう年でではありません。"; } ?> --- --- --- 以上