no message

This commit is contained in:
a-kizaki
2026-10-06 12:10:09 +09:00
commit 9c2090ffa2
156 changed files with 14850 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
<?php
// 「Hello, world」と表示(Webブラウザ上)してください

View File

@@ -0,0 +1,10 @@
<?php
// 変数 value を宣言してください
// 変数 value に 10(数字) を代入してください
// 変数 value に入っている値を出力します
echo $value;

View File

@@ -0,0 +1,7 @@
<?php
// TODO: 変数の命名規則に従っていない変数名を修正してください。
$1value = "100";
echo $1value;

View File

@@ -0,0 +1,9 @@
<?php
// TODO: 変数arrayにそれぞれ、整数[1,4,7,10,13] を代入してください
// TODO: 変数arrayに格納されている値を前から順番に全て表示してください(echoを使うこと)
// 【+αチャレンジ】
// 第4章で学ぶ「142ページ or 147ページの方法」を使うと、もっと簡単に書けます!
// まだ学んでいないけど、調べて挑戦してみよう!

View File

@@ -0,0 +1,11 @@
<?php
// TODO: 配列keywordを定義し 「'平', '島', '沼', '山', '森'」 を代入してください
// TODO: 配列keywordに格納されている「沼」のみを表示してください
// 【+αチャレンジ】
// 第4章で学ぶ「制御構文」を使うと、もっと簡単に書けます!
// まだ学んでいないけど、調べて挑戦してみよう!

View File

@@ -0,0 +1,14 @@
<?php
/*
* TODO: arrayに、以下の表の値を代入してください
*
* key |値
* --------┼---------
* name |Suzuki
* mail |suzuki@hoge.com
* pass |12qwaszx
*
* */
// TODO: 配列arrayのnameの値を出力してください

View File

@@ -0,0 +1,17 @@
<?php
// TODO: 配列の中に配列がある multiArray を定義し、以下のデータを格納してください
// [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
// TODO: multiArray の 2 番目の配列の 3 番目の要素(値 6)を出力してください
// TODO: 配列の中に連想配列がある userList を定義し、以下のデータを格納してください
/*
[
["name" => "Tanaka", "age" => 25, "job" => "Engineer"],
["name" => "Yamada", "age" => 30, "job" => "Designer"],
["name" => "Sato", "age" => 28, "job" => "Manager"]
]
*/
// TODO: userList から "Yamada" の "job" の値("Designer")を出力してください

View File

@@ -0,0 +1,8 @@
<?php
// TODO: 「PHP_BASIC」という名前の定数を "PHPの基礎" にする(const を使用)
// TODO: 「LANGUAGE」という名前の定数を "PHP" にする(define を使用)
// 定数を表示
echo PHP_BASIC . "<br>";
echo LANGUAGE;

View File

@@ -0,0 +1,13 @@
<?php
// 定数を定義し、ディレクトリのパスを管理しよう
// TODO: 「BASE_PATH」という定数を定義し、現在のファイルのあるディレクトリのパスを設定する
// ヒント: __DIR__ または dirname(__FILE__) を使う
// TODO: 「CONFIG_PATH」という定数を定義し、"config/" フォルダのパスを BASE_PATH を使って作る
// 定数を表示
echo "プロジェクトのルートディレクトリ: " . BASE_PATH . "<br>";
echo "設定ファイルのディレクトリ: " . CONFIG_PATH . "<br>";
// TODO: CONFIG_PATH に "database.php" を追加し、フルパスを作って表示する

View File

@@ -0,0 +1,11 @@
<?php
// TODO: シングルクォート内で「I'm learning PHP!」という文字列を正しく表現する
$singleQuoteString = 'I'm learning PHP!';
// TODO: ダブルクォート内で「He said, "PHP is fun!"」という文字列を正しく表現する
$doubleQuoteString = "He said, "PHP is fun!"";
// TODO: 上記の変数を表示する
echo $singleQuoteString . "<br>";
echo $doubleQuoteString . "<br>";

View File

@@ -0,0 +1,22 @@
<?php
// シングルクォート内で「I'm learning PHP!」を正しく表現
$singleQuoteString = 'I\'m learning PHP!';
// ダブルクォート内で「He said, "PHP is fun!"」を正しく表現
$doubleQuoteString = "He said, \"PHP is fun!\"";
// 変数を定義
$name = "Taro";
$age = 25;
// TODO: 変数展開を使い、「My name is Taro. I am 25 years old.」を作成(ダブルクォートを使用)
// TODO: シングルクォートを使って、同じ文章を作成(連結を使用)
// 変数を表示
echo $singleQuoteString . "<br>";
echo $doubleQuoteString . "<br>";
echo $intro1 . "<br>";
echo $intro2 . "<br>";

View File

@@ -0,0 +1,155 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra01スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第2章練習問題 <small>PHPを始めよう</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra01-01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01</a> <small>コメントとHello, world</small>
</h4>
</div>
</div>
<!-- ================== PTra01-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex02</a> <small>変数</small>
</h4>
</div>
</div>
<!-- ================== PTra01-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex03.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex03</a> <small>変数の命名規則</small>
</h4>
</div>
</div>
<!-- ================== PTra01-04 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex04.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex04</a> <small>配列</small>
</h4>
</div>
</div>
<!-- ================== PTra01-05 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex05.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex05</a> <small>配列</small>
</h4>
</div>
</div>
<!-- ================== PTra01-06 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex06.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex06</a> <small>連想配列</small>
</h4>
</div>
</div>
<!-- ================== PTra01-06 + α================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex06_α.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex06_α</a> <small>多次元配列</small><br>
<h5 style="color: red;">※ +αなので余裕ある方解いてね</h5>
</h4>
</div>
</div>
<!-- ================== PTra01-07 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex07.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex07</a> <small>定数</small>
</h4>
</div>
</div>
<!-- ================== PTra01-07+α ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex07_α.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex07_α</a> <small>定数 (ファイルパスを動的に取得)</small><br>
<h5 style="color: red;">※ +αなので余裕ある方解いてね</h5>
</h4>
</div>
</div>
<!-- ================== PTra01-08 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex08.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex08</a> <small>シングルクォートとダブルクォートのエスケープ</small>
</h4>
</div>
</div>
<!-- ================== PTra01-08 + α ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex08_α.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex08_α</a> <small>変数展開</small><br>
<h5 style="color: red;">※ +αなので余裕ある方解いてね</h5>
</h4>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<?php
// TODO: 20を5で割った値を出力してください
// 以下の1行は修正しないでください
echo nl2br("\n");
// TODO: 126を13で掛けた値を出力してください
// 以下の1行は修正しないでください
echo nl2br("\n");
// TODO: 97を6で割った時の余りを出力してください
// 補足説明
// nl2br() は、改行コードを HTML の <br> に変換する関数
// これを使うと、ブラウザで改行されて表示される

View File

@@ -0,0 +1,10 @@
<?php
$num = 10;
print $num;
// TODO: 変数numの値に30を足してください
// 変数numを出力する
print $num;

View File

@@ -0,0 +1,11 @@
<?php
$num1 = 50;
print $num1;
// TODO: 変数num2に140が入るようにしてください
// 括弧と四則演算を使って計算してください....どうすれば140という数値になるか考えてみましょう
// 以下のプログラムで140が表示されるようにしてください
print $num2; // ※※ この行は修正しないでください

View File

@@ -0,0 +1,11 @@
<?php
$num = 25;
print $num;
// TODO: プログラムを修正して、変数numに50が入るようにしてください
// リテラルを使わずに、変数を使って計算してください
// 以下のプログラムで50が表示されるようにしてください
print $num; // ※※ この行は修正しないでください

View File

@@ -0,0 +1,9 @@
<?php
// TODO: 変数ageを定義して、数値58を代入してください
// TODO: 変数nameを定義して、文字列"山田"を代入してください
// TODO: 変数age、nameを連結して、「山田さんは、58歳です」と表示してください

View File

@@ -0,0 +1,18 @@
<?php
$x = 10;
$y = 50;
print 'x:' . $x;
print '<br>';
print 'y:' . $y;
print '<br>';
// TODO: 変数 x, y の値をリテラルな数字を使わずに入れ替えてください
// ※プログラムは何行書いても良いです
// ここから下は修正しないでください
print 'x:' . $x; // 「x:50」が表示される
print '<br>';
print 'y:' . $y; // 「y:10」が表示される

View File

@@ -0,0 +1,9 @@
<?php
$num = 97;
print 'num:' . $num;
print '<br>';
// TODO: 変数targetを宣言して、97未満の数字を代入してください
// TODO: 変数numを、変数targetで割った時の商と余りを表示してください

View File

@@ -0,0 +1,7 @@
<?php
$num = 20;
$calc = 5;
$name = "鈴木";
// TODO: 変数num, calc, nameを連結して、「鈴木さんは、25歳になりました」と表示してください

View File

@@ -0,0 +1,15 @@
<?php
$length = 9; // 底辺
$height = 23; // 高さ
// TODO: 変数quadrangle に、四角形の面積を代入してください
// TODO: 変数quadrangle を表示してください
// TODO: 変数triangle に、三角形の面積を代入してください
// TODO: 変数triangle を表示してください

View File

@@ -0,0 +1,14 @@
<?php
$moneyInHand = 1000; // 所持金
$coffee = 120; // コーヒーの値段
$snack = 200; // スナック菓子の値段
/* TODO:
* ● 1本あたり120円(税別)の缶コーヒーを2本
* ● 1袋あたり200円(税別)のスナック菓子を1袋
*
* 上記商品を購入した時の所持金を表示してください
* ※ 消費税は、全商品の合計に8%が加算されます
* ※ 日本円には小数点がありませんので、整数の値で出力してください
*/

View File

@@ -0,0 +1,151 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra02スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第3章練習問題 <small>式と演算</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra02-01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex01
</a> <small>四則演算</small>
</h4>
</div>
</div>
<!-- ================== PTra02-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex02
</a> <small>変数と計算</small>
</h4>
</div>
</div>
<!-- ================== PTra02-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex03.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex03
</a> <small>演算子の優先順位</small>
</h4>
</div>
</div>
<!-- ================== PTra02-04 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex04.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex04
</a> <small>計算結果</small>
</h4>
</div>
</div>
<!-- ================== PTra02-05 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex05.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex05
</a> <small>加算と連結</small>
</h4>
</div>
</div>
<!-- ================== PTra02-06 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex06.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex06
</a> <small>スワップ</small>
</h4>
</div>
</div>
<!-- ================== PTra02-07 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex07.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex07
</a> <small>剰余演算</small>
</h4>
</div>
</div>
<!-- ================== PTra02-08 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex08.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex08
</a> <small>連結</small>
</h4>
</div>
</div>
<!-- ================== PTra02-09 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex09.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex09
</a> <small>面積算出</small>
</h4>
</div>
</div>
<!-- ================== PTra02-10 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex10.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex10
</a> <small>買い物</small>
</h4>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

9
Question03-if/Ex01.php Normal file
View File

@@ -0,0 +1,9 @@
<?php
// TODO: 変数num を宣言し、70を代入してください
// TODO:「変数numが70である」という条件式を追加してください
if () {
echo "条件に合致しました";
}

7
Question03-if/Ex02.php Normal file
View File

@@ -0,0 +1,7 @@
<?php
// TODO: 変数numを宣言し、65を代入してください
// TODO: 変数numの値が65以上の場合は、「合格です」と出力して、それ以外であれば「不合格です」を出力してください
// ※プログラムは何行書いても良いです

16
Question03-if/Ex03.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
// TODO: 前画面で入力した「任意の数値」を受け取ったうえで変数inputに代入してください
// ヒント:inputタグのname属性を確認しましょう
$input = ($_POST[???]);
// numに、input(文字列)を数値変換した値を代入します
// ※ 入力された値が、数字ではなかった場合はプログラムがエラーになります
$num = intval($input); // intval(文字列)で数値変換している
// TODO: 入力された値が3で割り切れるすうじか判定する条件式を記述してください
if () {
print "3で割り切れる数字です"
} else {
print "3で割り切れない数字です"
}

20
Question03-if/Ex04.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
// TODO: 前画面で入力した「西暦」を受け取ったうえで変数inputに代入してください
// numに、input(文字列)を数値変換した値を代入します
// ※ 入力された値が、数字ではなかった場合はプログラムがエラーになります
$num = intval($input); // intval(文字列)で数値変換している
/* TODO:
* 入力された値(西暦)がうるう年かどうか判定する条件式を追加してください
*
* うるう年の条件
* ● 西暦の年が 4 で割り切れる年は原則として「~年はうるう年です。」
* ● ただし、100で割り切れたら「~年はうるう年ではありません。」
* ● しかし、400で割り切れるなら「~年はうるう年です。」と表示する
*
* ※ プログラムは何行書いても良いです
*/

21
Question03-if/Ex05.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
// TODO: 前画面で入力した「降水確率」を受け取ったうえで変数inputに代入してください
// numに、input(文字列)を数値変換した値を代入します
// ※ 入力された値が、数字ではなかった場合はプログラムがエラーになります
$num = intval($input); // intval(文字列)で数値変換している
/* TODO:
* 以下の仕様に沿ってプログラムを完成させてください
*
* ●変数numの値が75以上であれば -> 「雨が降る確率が高いです」
* ●変数numの値が30~74の範囲であれば -> 「雨が振るかもしれないです」
* ●変数numの値が30未満であれば -> 「雨はまず降らないでしょう」
* とそれぞれ出力するようにしてください。
*
* ※ ただし、入力された値が100より大きく、0未満の場合は、「不正な値が入力されました」を出力してください
* ※ プログラムは何行書いても良いです
*/

19
Question03-if/Ex06.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
$limitNumber = 100;
// ランダムで数字を生成するプログラムです。
// 下記の命令を実行すると変数randomに、0以上、変数limitNumber未満の数字がランダムで代入されます
$random = mt_rand(0, $limitNumber);
/* TODO:
* 以下の仕様に沿ってプログラムを完成させてください
*
* ●変数randomの値から、出力する値を変更します。
* ●1%の確率 -> 「☆☆☆☆☆」 >> 要は1/100なので0と一致するようにしてください
* ●30%の確率 -> 「☆☆☆☆」 >> 1~30の30個の数字が当てはまるようにしてください
* ●上記以外の場合 -> 「☆☆☆」
*
* ※ プログラムは何行書いても良いです
*/

19
Question03-if/Ex07.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
// TODO: 前画面で入力した「数値」を受け取ったうえで変数inputに代入してください
// numに、input(文字列)を数値変換した値を代入します
// ※ 入力された値が、数字ではなかった場合はプログラムがエラーになります
$num = intval($input); // intval(文字列)で数値変換している
/* TODO:
* 以下の仕様に沿ってプログラムを完成させてください
*
* ●1~5の数字を入力すると、入力した数字を表示
* ●1~5以外の数値を入力した場合は、「入力したのは,1~5以外です」を表示
*
* ※ プログラムは何行書いても良いです
* ※ 必ず論理演算子を使用してください
*/

19
Question03-if/Ex08.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
$moneyInHand = 1000; // 所持金
// TODO: 前の画面で選択された値を、変数selectItemに代入してください
// ヒント1: selectタグのname属性を確認しましょう
// ヒント2: セレクトボックスの場合、name属性で指定し、受け取る値はoptionタグのvalue属性の値です
// オレンジジュースを選択したら、option value="1"なので1が受け取れる
/* TODO:
* 以下の仕様に沿ってプログラムを完成させてください
*
* ●選択された商品を購入
* ●所持金から、対応した商品の値段分を引く
* ●最後に所持金を表示してプログラム終了
*
* ※ プログラムは何行書いても良いです
*/

11
Question03-if/Ex09.php Normal file
View File

@@ -0,0 +1,11 @@
<?php
/* TODO:
* 以下の仕様に沿ってプログラムを完成させてください
*
* ●前の画面で入力された値を受け取ります
* ●0:日曜~6:土曜を、それぞれ入力された数字から判断して出力します
* ●0~6以外の場合は、「0~6の整数を入力してください」と出力します
*
* ※ プログラムは何行書いても良いです
*/

14
Question03-if/Ex10.php Normal file
View File

@@ -0,0 +1,14 @@
<?php
// TODO: 前の画面で受け取った3つの値を各変数に代入してください(変数名は任意です)
/* TODO:
* ●それぞれ7・7・7と比較を行います
* ■全て間違っていれば -> 「アウト」
* ■1つのみあっていれば -> 「ヒット」
* ■2つあっていれば -> 「ツーベース」
* ■3つ全てあっていれば -> 「ホームラン」
*
* ※ プログラムは何行書いても良いです
*/

237
Question03-if/index.html Normal file
View File

@@ -0,0 +1,237 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra03スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第4章練習問題 <small>制御構文 - if文</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra03-01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex01
</a> <small>条件式</small>
</h4>
</div>
</div>
<!-- ================== PTra03-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex02
</a> <small>関係演算子(比較演算子)</small>
</h4>
</div>
</div>
<!-- ================== PTra03-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse3"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex03</a>
<small>倍数判定</small>
</h4>
</div>
<div id="collapse3" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex03.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="num">任意の数値</label> <input type="number" class="form-control" id="num"
name="num" placeholder="任意の数値を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex03</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra03-04 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse4"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex04</a>
<small>うるう年判定</small>
</h4>
</div>
<div id="collapse4" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex04.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="yaer">西暦</label> <input type="number" class="form-control" id="year"
name="year" placeholder="西暦を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex04</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra03-05 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse5"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex05</a>
<small>降水確率</small>
</h4>
</div>
<div id="collapse5" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex05.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="probability">降水確率</label> <input type="number" class="form-control"
id="probability" name="probability" placeholder="降水確率を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex05</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra03-06 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex06.php" target="_blank"> <span class="glyphicon glyphicon-pencil"
aria-hidden="true"></span>
Ex06
</a> <small>排出確率</small>
</h4>
</div>
</div>
<!-- ================== PTra03-07 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse7"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex07</a>
<small>入力チェック</small>
</h4>
</div>
<div id="collapse7" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex07.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="val">1〜5までの数字</label> <input type="number" class="form-control" id="val"
name="val" placeholder="1〜5までの数字を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex07</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra03-08 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse8"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex08</a>
<small>ドロップダウンリスト</small>
<h5 style="color: red;">※ +αなので余裕ある方解いてね</h5>
</h4>
</div>
<div id="collapse8" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex08.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="item">購入する商品</label> <select class="form-control" id="item" name="item">
<option value="1">1.オレンジジュース(150円)</option>
<option value="2">2.りんごジュース(160円)</option>
<option value="3">3.コーヒー(200円)</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Ex08</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra03-09 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse9"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex09</a>
<small>曜日ナンバー</small>
</h4>
</div>
<div id="collapse9" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex09.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="weekNumber">0〜6までの数字</label> <input type="number" class="form-control"
id="weekNumber" name="weekNumber" placeholder="0〜6までの数字を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex09</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra03-10 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse10"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex10</a>
<small>3つの値判定</small>
<h5 style="color: red;">※ +αなので余裕ある方解いてね</h5>
</h4>
</div>
<div id="collapse10" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex10.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="num1">1つめの数字</label> <input type="number" class="form-control" id="num1"
name="num1" placeholder="1つ目の数字を入力してください">
</div>
<div class="form-group">
<label for="num2">2つめの数字</label> <input type="number" class="form-control" id="num2"
name="num2" placeholder="2つ目の数字を入力してください">
</div>
<div class="form-group">
<label for="num3">3つめの数字</label> <input type="number" class="form-control" id="num3"
name="num3" placeholder="3つ目の数字を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex10</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

17
Question04-while/Ex01.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
// TODO: 変数numを宣言し、2で初期化してください
// TODO: 条件式に、変数numが100を超えた場合にfalseになるような条件を記述してください
while () {
// TODO :変数numを2乗した数を変数numに代入してください
// TODO: 変数numの値を出力してください
}
echo "プログラムを終了します";

47
Question04-while/Ex02.php Normal file
View File

@@ -0,0 +1,47 @@
<?php
// 通称「FizzBuzz問題」です
// TODO: 変数indexを定義し、1で初期化してください
// TODO: 変数indexが100以下である場合繰り返す条件式を記述してください
while () {
// TODO: 変数indexの値が3でも5でも割り切れる数の場合は、「FizzBuzz」と出力
// TODO: 変数indexの値が3で割り切れ、5で割り切れない場合は、「Fizz」と出力
// TODO: 変数indexの値が5で割り切れ、3で割り切れない場合は、「Buzz」と出力
// TODO: 変数indexの値が3でも5でも割り切れない場合は、変数indexの値を出力
// TODO: 変数indexに1を加算した数を、変数indexに代入する
}
/*
* ---------出力結果例---------
* 1
* 2
* Fizz
* 4
* Buzz
* Fizz
* 7
* 8
* Fizz
* Buzz
* 11
* Fizz
* 13
* 14
* FizzBuzz
* 16
* :
* :
*/

17
Question04-while/Ex03.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
$limitNumber = 10;
$random = 0;
// TODO: ランダムで数値が生成され、数値が2であった場合にプログラムが終了する条件式にしてください。
while () {
// ランダムで数字を生成するプログラムです。
// 下記の命令を実行すると変数randomに、0以上、変数limitNumber未満の数字がランダムで代入されます
$random = mt_rand(0, $limitNumber);
echo "ランダムで生成された数値:$random";
}
echo "<br>プログラムを終了します。";

View File

@@ -0,0 +1,70 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra04スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第4章練習問題 <small>制御構文 - while文</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra04-01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01</a> <small>2乗した値の表示</small>
</h4>
</div>
</div>
<!-- ================== PTra04-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex02</a> <small>FizzBuzz</small>
</h4>
</div>
</div>
<!-- ================== PTra04-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex03.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex03</a>
<small>ランダムを引くまで繰り返し</small>
</h4>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min.js"></script>
</body>
</html>

View File

@@ -0,0 +1,16 @@
<?php
// TODO: 変数numを宣言し、5で初期化してください
/* TODO:
* 以下の仕様で、switch文を記述してください
*
* ●numが5だった場合 -> 「満点」
* ●numが4だった場合 -> 「合格点」
* ●numが3だった場合 -> 「もう少しで合格」
* ●numが2だった場合 -> 「不合格」
* ●numが1だった場合 -> 「もう少しがんばりましょう」
* ●numが0だった場合 -> 「前の単元を復習してください」
* ●numが0~5以外だった場合 -> 「正しい数値を入れてください」
*/

View File

@@ -0,0 +1,17 @@
<?php
// 前画面で入力した値が変数lineに代入されます
$line = $_POST["input"];
// TODO: 変数inputを宣言して、変数lineを数値に変換した値を代入してください
// ※ 前画面で入力された値が、数字ではなかった場合はプログラムがエラーになるので、エラーにならないように注意してください
/* TODO:
* 以下の仕様で、switch文を記述してください
*
* ●変数inputが2で割り切れる場合 -> 「##は偶数です」
* ●変数inputが2で割り切れない場合 -> 「##は奇数です」
*
* ※##は変数inputの中身
*/

View File

@@ -0,0 +1,38 @@
<?php
// TODO: 変数indexを宣言して、0で初期化してください
// TODO: 変数mountainを宣言して、0で初期化してください
// TODO: 変数riverを宣言して、0で初期化してください
// TODO: 変数oceanを宣言して、0で初期化してください
// 配列変数voteに、前画面で投票された5人分の値を格納します
$vote = $_POST['vote'];
// TODO: 変数indexが5未満である間繰り返す条件式を記述してください
while () {
echo ($index + 1) . '人目<br>';
echo '投票結果:' . vote[$index] .'<br>';
/* TODO:
* 以下の仕様で、switch文を記述してください
*
* ●配列vote[$index]が"山"であった場合 -> 変数mountainに1加算
* ●配列vote[$index]が"川"であった場合 -> 変数riverに1加算
* ●配列vote[$index]が"海"であった場合 -> 変数oceanに1加算
* ●配列vote[$index]が上記以外であった場合 -> 「無効票です」を出力
*/
// TODO: 変数indexに1を足して、変数indexに代入してください
}
// TODO: 変数mountain、river、oceanの中で最も票を集めたところを出力してください
// max関数を調べて活用してみましょう

View File

@@ -0,0 +1,16 @@
<?php
/* TODO:
* 以下のプログラムは未完成です。
* 下記の仕様に合わせて、プログラムを修正してください
*
* ●0~6が入力されている場合は、各曜日を出力した後プログラムを終了します
* 0 >> 日曜
* 1 >> 月曜
* 2 >> 火曜
* 3 >> 水曜
* 4 >> 木曜
* 5 >> 金曜
* 6 >> 土曜
*
*/

View File

@@ -0,0 +1,164 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra05スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第4章練習問題 <small>制御構文 - switch文</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra05-01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01</a> <small>数値からの判定</small>
</h4>
</div>
</div>
<!-- ================== PTra05-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse2">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex02</a>
<small>偶数判定</small>
</h4>
</div>
<div id="collapse2" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex02.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="input">数値</label>
<input type="number" class="form-control" name="input" placeholder="数値を入力してください">
</div>
<button type="submit" class="btn btn-primary">PTra05_02</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra05-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse3">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex03</a>
<small>投票結果判定</small>
<h5 style="color: red;">※ +αなので余裕ある方解いてね</h5>
</h4>
</div>
<div id="collapse3" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex03.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="first">一人目</label>
<select name="vote[0]">
<option value="山">山</option>
<option value="川">川</option>
<option value="海">海</option>
<option value="砂丘">砂丘</option>
</select>
</div>
<div class="form-group">
<label for="second">二人目</label>
<select name="vote[1]">
<option value="山">山</option>
<option value="川">川</option>
<option value="海">海</option>
<option value="砂丘">砂丘</option>
</select>
</div>
<div class="form-group">
<label for="third">三人目</label>
<select name="vote[2]">
<option value="山">山</option>
<option value="川">川</option>
<option value="海">海</option>
<option value="砂丘">砂丘</option>
</select>
</div>
<div class="form-group">
<label for="fourth">四人目</label>
<select name="vote[3]">
<option value="山">山</option>
<option value="川">川</option>
<option value="海">海</option>
<option value="砂丘">砂丘</option>
</select>
</div>
<div class="form-group">
<label for="fifth">四人目</label>
<select name="vote[4]">
<option value="山">山</option>
<option value="川">川</option>
<option value="海">海</option>
<option value="砂丘">砂丘</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Ex03</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra05-04 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse4">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex04</a>
<small>曜日判定</small>
</h4>
</div>
<div id="collapse4" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex04.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="week">何曜日?</label>
<select name="week">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Ex04</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

8
Question06-for/Ex01.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
// TODO: 変数iが10未満である限り繰り返しを行う条件式を記述してください
for ($i = 0;; $i++) {
// TODO: 変数iを2乗した値を出力してください
}

13
Question06-for/Ex02.php Normal file
View File

@@ -0,0 +1,13 @@
<?php
// TODO: 20回繰り返しを行うfor文を記述してください
//-----for start
// TODO: 今何回目の処理なのかを出力してください
// TODO: 奇数回のときには、「奇数」を出力してください
//-----for end

14
Question06-for/Ex03.php Normal file
View File

@@ -0,0 +1,14 @@
<?php
// TODO: for文を使って、以下のような出力になるようにしてください
/*
* 出力結果例
* -----------------------------------
* ■
* ■
* ■
* ■
* ■
*/
// ヒント:改行はecho '<br>';で行うことができます。

8
Question06-for/Ex04.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
// TODO: for文を使って、以下のような出力になるようにしてください
/*
* 出力結果例
* -----------------------------------
* ■■■■■
*/

12
Question06-for/Ex05.php Normal file
View File

@@ -0,0 +1,12 @@
<?php
// TODO: for文を使って、以下のような出力になるようにしてください
/*
* 出力結果例
* -----------------------------------
* ■■■■■
* ■■■■■
* ■■■■■
* ■■■■■
* ■■■■■
*/

12
Question06-for/Ex06.php Normal file
View File

@@ -0,0 +1,12 @@
<?php
// TODO: for文を使って、以下のような出力になるようにしてください
/*
* 出力結果例
* -----------------------------------
* □□□□□
* ■□□□□
* ■■□□□
* ■■■□□
* ■■■■□
*/

17
Question06-for/Ex07.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
// TODO: for文を使って、以下のような出力になるようにしてください
/*
* 出力結果例
* -----------------------------------
* □□□□□
* ■□□□□
* ■■□□□
* ■■■□□
* ■■■■□
* ■■■■■
* ■■■■□
* ■■■□□
* ■■□□□
* ■□□□□
*/

85
Question06-for/Ex08.php Normal file
View File

@@ -0,0 +1,85 @@
<?php
// TODO: for文を使って、入力された数のマス分(n * nマス)図形を表示させるプログラムを書いてください
/*
* 1を入力した出力結果例
* -----------------------------------
* □□□□□□□□□□
* ■□□□□□□□□■
* ■■□□□□□□■■
* ■■■□□□□■■■
* ■■■■□□■■■■
* ■■■■■■■■■■
* ■■■■□□■■■■
* ■■■□□□□■■■
* ■■□□□□□□■■
* ■□□□□□□□□■
*/
/*
* 2を入力した出力結果例
* -----------------------------------
* □□□□□□□□□□□□□□□□□□□□
* ■□□□□□□□□■■□□□□□□□□■
* ■■□□□□□□■■■■□□□□□□■■
* ■■■□□□□■■■■■■□□□□■■■
* ■■■■□□■■■■■■■■□□■■■■
* ■■■■■■■■■■■■■■■■■■■■
* ■■■■□□■■■■■■■■□□■■■■
* ■■■□□□□■■■■■■□□□□■■■
* ■■□□□□□□■■■■□□□□□□■■
* ■□□□□□□□□■■□□□□□□□□■
* □□□□□□□□□□□□□□□□□□□□
* ■□□□□□□□□■■□□□□□□□□■
* ■■□□□□□□■■■■□□□□□□■■
* ■■■□□□□■■■■■■□□□□■■■
* ■■■■□□■■■■■■■■□□■■■■
* ■■■■■■■■■■■■■■■■■■■■
* ■■■■□□■■■■■■■■□□■■■■
* ■■■□□□□■■■■■■□□□□■■■
* ■■□□□□□□■■■■□□□□□□■■
* ■□□□□□□□□■■□□□□□□□□■
*/
/*
* 4を入力した出力結果例
* -----------------------------------
* □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
* □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
* □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
* □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
* ■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■■■■■□□■■■■
* ■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■■■■□□□□■■■
* ■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■■■□□□□□□■■
* ■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■■□□□□□□□□■
*/

8
Question06-for/Ex09.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
/*TODO:
* 1, 2, 1, 2, 3, 2, 1, 2, 3, 4, 3, 2, 1, 2, 3, …(以下続く)
*
* というような数列があります。
* この数列の50番目に出て来る数字を求めるプログラムを記述してください
*/

59
Question06-for/Ex10.php Normal file
View File

@@ -0,0 +1,59 @@
<?php
// 前画面の入力値を取得します。
$input = $_POST['number'];
// 前画面の入力値を数値に変換します。
// 前画面で入力された値が、数字ではなかった場合はプログラムがエラーになります
$maxCount = intval($input);
echo '2~' . $maxCount . 'までの中で素数を出力するプログラム';
echo '<br>';
echo '=========< 開始 >=========';
echo '<br>';
/* TODO:
* 以下の仕様でfor文を記述してください
*
* 初期化:変数iを宣言し、2で初期化してください
* 条件式:変数iが、maxCount以下である限り繰り返しを行います
* 後処理:変数iに1を足した数で、変数iを上書きします
*/
//-----for① start
/*
* 注)素数とは
*
* 1とその数自身以外で割り切れない数字のこと。ただし1は素数に含めない
*/
// TODO: 変数flgを宣言し、falseで初期化してください
/* TODO:
* 以下の仕様でfor文を記述してください
*
* 初期化:変数jを宣言し、2で初期化してください
* 条件式:変数jが、変数i未満である限り繰り返しを行います
* 後処理:変数jに1を足した数で、変数jを上書きします
*/
//-----for② start
// TODO: 変数iをjで割ったときの余りが0であった場合(割り切れた場合)処理を行うif文を記述してください
//-------if start
// TODO: 変数flgにtrueを代入してください
// TODO: for②の繰り返しをbreakする記述を入れてください
//-------if end
//-----for② end
// TODO: 変数flgがfalseであった場合は、変数iを出力してください
//-----for① end

177
Question06-for/index.html Normal file
View File

@@ -0,0 +1,177 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra06スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第4章練習問題 <small>制御構文-for文</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra06-01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01</a> <small>繰り返し条件式</small>
</h4>
</div>
</div>
<!-- ================== PTra06-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex02</a>
<small>奇数判定</small>
</h4>
</div>
</div>
<!-- ================== PTra06-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex03.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex03</a>
<small>図形描画Lv1</small>
</h4>
</div>
</div>
<!-- ================== PTra06-04 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex04.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex04</a>
<small>図形描画Lv2</small>
</h4>
</div>
</div>
<!-- ================== PTra06-05 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex05.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex05</a>
<small>図形描画Lv3</small>
</h4>
</div>
</div>
<!-- ================== PTra06-06 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex06.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex06</a>
<small>図形描画Lv4</small>
</h4>
</div>
</div>
<!-- ================== PTra06-07 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex07.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex07</a>
<small>図形描画Lv5</small>
<h5 style="color: red;">※ +αなので余裕ある方解いてね, 競技プログラミングよりの問題となってます。<br>複雑なアルゴリズムの問題に挑戦したいという方は是非!
</h5>
</h4>
</div>
</div>
<!-- ================== PTra06-08 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse10">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex08</a>
<small>図形描画Lv6</small>
<h5 style="color: red;">※ +αなので余裕ある方解いてね, 競技プログラミングよりの問題となってます。<br>複雑なアルゴリズムの問題に挑戦したいという方は是非!
</h5>
</h4>
</div>
<div id="collapse10" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex08.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="size">数値</label>
<input type="number" class="form-control" id="size" name="size"
placeholder="数値を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex08</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra06-09 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex09.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex09</a>
<small>数列判定</small>
<h5 style="color: red;">※ +αなので余裕ある方解いてね, 競技プログラミングよりの問題となってます。<br>複雑なアルゴリズムの問題に挑戦したいという方は是非!
</h5>
</h4>
</div>
</div>
<!-- ================== PTra06-10 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse3"><span
class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex10</a>
<small>素数判定</small>
</h4>
</div>
<div id="collapse3" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex10.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="number">数値</label>
<input type="number" class="form-control" id="number" name="number"
placeholder="2より大きい数値を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex10</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,5 @@
<?php
// 配列を定義
$fruits = ["Apple", "Banana", "Cherry", "Grape", "Mango"];
// TODO: foreach を使って配列の中身をすべて表示

View File

@@ -0,0 +1,5 @@
<?php
// 配列を定義
$numbers = [10, 20, 30, 40, 50];
// TODO: foreach を使って各値を2倍して表示

View File

@@ -0,0 +1,5 @@
<?php
// 配列を定義
$colors = ["Red", "Blue", "Green", "Yellow", "Black"];
// TODO: foreach を使って要素を表示、"Green"が見つかったらループを終了してください

View File

@@ -0,0 +1,5 @@
<?php
// 配列を定義
$names = ["Taro", "Jiro", "Saburo", "Shiro", "Goro"];
// TODO: foreach を使って "Saburo" のみスキップして表示してください

11
Question07-Array/Ex05.php Normal file
View File

@@ -0,0 +1,11 @@
<?php
// TODO: 連想配列 $user を作成し、以下のデータを格納してください
/*
- "name" => "Taro"
- "age" => 25
- "job" => "Engineer"
*/
// TODO: foreach を使って、キー(key)と値(value)をすべて表示してください
// 例: 「name: Taro」のように表示されるようにする

17
Question07-Array/Ex06.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
// TODO: 連想配列 $people を作成し、以下の人物の名前と年齢を格納してください
/*
- "Taro" => 25
- "Jiro" => 32
- "Saburo" => 28
- "Shiro" => 40
- "Goro" => 35
*/
// TODO: foreach を使って、最年長の人物を見つけてください
// - 最年長の名前を $oldestName に格納する
// - 最年長の年齢を $maxAge に格納する
// TODO: 最年長の人物を以下のフォーマットで表示してください
// 例: 「最年長は Shiro さん(40歳)です。」

21
Question07-Array/Ex07.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
// TODO: 連想配列 $scores を作成し、以下の生徒の名前とテストの点数を格納してください
/*
- "Taro" => 72
- "Jiro" => 85
- "Saburo" => 60
- "Shiro" => 90
- "Goro" => 78
*/
// TODO: foreach を使って、以下の処理を実装してください
// 1. すべての生徒の合計点数を計算する($total に格納)
// 2. 生徒の人数をカウントする($count に格納)
// 3. 平均点を計算し、$average に格納する
// TODO: 計算した平均点を以下のフォーマットで表示してください
// 例: 「テストの平均点: 77 点」
// TODO: foreach を使い、平均点以上の生徒(合格者)を以下のフォーマットで表示してください
// 例: 「合格者: Jiro Shiro Goro」

42
Question07-Array/Ex08.php Normal file
View File

@@ -0,0 +1,42 @@
<?php
/**
*
* 商品データ(カテゴリーごとの売上金額)
* TODO: 連想配列 $sales を定義し、以下のデータを格納してください。
* カテゴリーごとに複数の商品情報が格納された配列とし、各商品の情報は連想配列で表します。
*
* - "Electronics" カテゴリー:
* - Laptop: price = 120000, quantity = 15
* - Smartphone: price = 80000, quantity = 30
* - Tablet: price = 50000, quantity = 20
*
* - "Clothing" カテゴリー:
* - T-Shirt: price = 3000, quantity = 200
* - Jeans: price = 6000, quantity = 150
* - Jacket: price = 15000, quantity = 100
*
* - "Groceries" カテゴリー:
* - Rice: price = 2000, quantity = 500
* - Milk: price = 180, quantity = 1000
* - Eggs: price = 250, quantity = 800
**/
// 各カテゴリーの合計売上を計算
$categorySales = [];
// TODO: foreach を使って、各カテゴリーごとの合計売上金額を計算してください。
// 各商品の売上金額は、"price" × "quantity" で求めます。
// 計算結果は、連想配列 $categorySales に格納してください。
// (キーはカテゴリー名、値はそのカテゴリーの合計売上金額)
// 最高売上のカテゴリーを見つける
$maxCategory = "";
$maxSales = 0;
// TODO: foreach を使って、$categorySales 配列から最も売上が高いカテゴリーを抽出してください。
// 抽出したカテゴリー名と、その売上金額を、それぞれ $maxCategory と $maxSales に格納すること。
// 結果を表示
echo "最高売上のカテゴリーは「{$maxCategory}」で、売上は " . number_format($maxSales) . " 円です。";

View File

@@ -0,0 +1,5 @@
<?php
// ※2次元配列を用いています
$array = array(array(500, 40, 6), array(70, 8, 90, 1000));
// 配列arrayに格納されている全ての数字の平均を出力してください

133
Question07-Array/index.html Normal file
View File

@@ -0,0 +1,133 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra07スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第4章練習問題 <small>配列の活用 / foreach命令</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra07-01-1 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01</a> <small>配列の全要素を表示</small>
</h4>
</div>
</div>
<!-- ================== PTra07-01-2 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex02</a> <small>配列の各要素を加工して表示</small>
</h4>
</div>
</div>
<!-- ================== PTra07-01-3 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex03.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex03</a> <small>特定の要素を見つけたら break する</small>
</h4>
</div>
</div>
<!-- ================== PTra07-01-4 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex04.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex04</a> <small>特定の要素をスキップ</small>
</h4>
</div>
</div>
<!-- ================== PTra07-02-1 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex05.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex05</a>
<small>連想配列の値を表示</small>
</h4>
</div>
</div>
<!-- ================== PTra07-02-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex06.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex06</a>
<small>最年長の人物を見つける</small>
</h4>
</div>
</div>
<!-- ================== PTra07-02-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex07.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex07</a>
<small>平均点を計算し、合格者を表示</small>
</h4>
</div>
</div>
<!-- ================== PTra07-02-04 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex08.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex08</a>
<small>最高売上の商品カテゴリーを見つける</small>
<h5 style="color: red;">※ +αなので余裕ある方解いてね</h5>
</h4>
</div>
</div>
<!-- ================== PTra07-05 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex09.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex09</a> <small>二次元配列:平均値算出</small>
</h4>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,16 @@
<?php
/*
* 以下の仕様で関数が作成されています
*
* 関数名 :number
* 引数 :なし
*
* 100を返すメソッド
*/
function number()
{
return 100;
}
// TODO: 変数receiveを宣言し、関数numberを実行した結果を代入してください
// TODO: 変数receiveを出力してください

View File

@@ -0,0 +1,21 @@
<?php
/*
* 以下の仕様で関数が作成されています
*
* 関数名 :average
* 引数 :x, y
*
* 引数で渡された2つの平均値を返す関数
*/
function average($x, $y)
{
$result = '平均は:' . (($x + $y) / 2);
return $result;
}
$x = 100;
$y = 50;
// TODO: 変数receiveを宣言して、average関数を(変数x, 変数y)で呼び出した結果を代入してください
// TODO: 変数receiveを出力してください

View File

@@ -0,0 +1,22 @@
<?php
/* TODO:
* 以下の仕様で関数を作成してください
*
* 関数名 :isEvenNumber
* 引数 :x
*
* 引数で渡された内容が偶数ならtrue、奇数ならfalseを返す関数
*/
// TODO: 0~100のランダムな値を取得して、変数numberに代入してください
// TODO: 変数resultを宣言し、関数isEvenNumberを(変数number)で呼び出した結果を代入してください
// 取得した値が偶数か奇数か判定します
if ($result) {
echo '偶数です';
} else {
echo '奇数です';
}

View File

@@ -0,0 +1,13 @@
<?php
/* TODO:
* 以下の仕様で関数を作成してください
*
* 関数名 :convertMessage
* 引数 :str
*
* 引数で渡された値の前後に 「 」 を付与して出力する関数("「"と引数と"」"の連結)
*/
$message = 'Hello, world!';
// TODO: 関数convertMessageを(変数messageを引数に)で呼び出してください

View File

@@ -0,0 +1,23 @@
<?php
/* TODO:
* 以下の仕様で関数を作成してください
*
* 関数名 :quadrangle
* 引数 :width, height
*
* 引数で渡された横の長さ(width)と縦の長さ(height)から、四角形の面積を返す関数
*/
/* TODO:
* 以下の仕様で関数を作成してください
*
* 関数名 :triangle
* 引数 :width, height
*
* 引数で渡された横の長さ(width)と縦の長さ(height)から、三角形の面積を返す関数
*/
// TODO:
// 変数choiceの中が、1であれば四角形の面積を算出するメソッドを、2であれば三角形の面積を算出するメソッドを呼び出してください

View File

@@ -0,0 +1,5 @@
<?php
/* TODO:
* 入力された西暦がうるう年かどうかを判定する関数を作成してください
* 関数名、引数は自由に設定してください
*/

View File

@@ -0,0 +1,5 @@
<?php
/* TODO:
* 2~n《入力された数》までの素数を評価する関数を作成し、結果を出力してください
* 関数名、引数は自由に設定してください
*/

View File

@@ -0,0 +1,155 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra08スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
PTra08-Function <small>関数</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== PTra08-01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01</a> <small>関数の呼び出し</small>
</h4>
</div>
</div>
<!-- ================== PTra08-02 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex02</a>
<small>関数の引数利用</small>
</h4>
</div>
</div>
<!-- ================== PTra08-03 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex03.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex03</a>
<small>関数の作成</small>
</h4>
</div>
</div>
<!-- ================== PTra08-04 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex04.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex04</a>
<small>戻り値の設定</small>
</h4>
</div>
</div>
<!-- ================== PTra08-05 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse3">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex05</a>
<small>三角形・四角形の面積算出関数</small>
</h4>
</div>
<div id="collapse3" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex05.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="first">図形</label>
<select name="vote">
<option value="1">四角形</option>
<option value="2">三角形</option>
</select>
</div>
<div class="form-group">
<label for="number">縦</label>
<input type="number" class="form-control" name="height" placeholder="数値を入力してください">
</div>
<div class="form-group">
<label for="number">横</label>
<input type="number" class="form-control" name="width" placeholder="数値を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex05</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra08-06 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse2">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex06</a>
<small>うるう年の判定関数</small>
</h4>
</div>
<div id="collapse2" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex06.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="input">西暦</label>
<input type="number" class="form-control" name="input" placeholder="西暦を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex06</button>
</form>
</div>
</div>
</div>
<!-- ================== PTra08-07 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse7">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Ex07</a>
<small>素数判定</small>
</h4>
</div>
<div id="collapse7" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex07.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="number">最大値</label>
<input type="number" class="form-control" name="number" placeholder="数値を入力してください">
</div>
<button type="submit" class="btn btn-primary">Ex07</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,27 @@
<?php
/**
* TODO:
* 1. 配列 $fruits に "Apple", "Banana", "Cherry" を格納してください。
* 2. foreach 文を使って、$fruits の各要素を <li>…</li> として順番に出力する処理を書き、
* HTML内の <ul> … </ul> の間に埋め込んでください。
*/
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex01: 果物リスト</title>
</head>
<body>
<ul>
<!-- TODO: $fruits の各要素を <li>…</li> として出力 -->
</ul>
</body>
</html>

View File

@@ -0,0 +1,24 @@
<?php
/**
* TODO:
* 1. 配列 $colors に "Red", "Green", "Blue" を格納してください。
* 2. foreach 文を使って、$colors の各要素を <span>…</span> として順番に出力する処理を書き、
* HTML内に埋め込んでください。
*/
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ex02: 色リスト</title>
</head>
<body>
<!-- $colors の各要素を <span>…</span> として出力 -->
</body>
</html>

View File

@@ -0,0 +1,47 @@
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP練習問題 スタートページ</title>
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>PHP練習問題 <small>HTML埋め込みとforeach練習</small></h1>
</div>
<div class="panel-group" id="accordion">
<!-- Ex08_05_01 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01: 果物リストを foreach で生成
</a>
</h4>
</div>
</div>
<!-- Ex08_05_02 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex02: 色リストを foreach で埋め込み
</a>
</h4>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<?php
/**
* [Ex01 外部ファイル読み込み]
*
* TODO:
* 1. __DIR__を使い、Util/Hello.phpをrequire_onceで読み込む
* 2. 読み込んだHello.php内の getMessage() を呼び出し、
* その戻り値を出力してください。
*
*/

View File

@@ -0,0 +1,12 @@
<?php
/**
* [Ex02 エスケープ処理]
*
* TODO:
* 1. __DIR__を使い、Util/Escape.phpをrequire_onceで読み込む
* 2. URL経由で渡されたGETパラメータ "text" の値を取得する
* ※例: http://example.com/Ex02_question.php?text=<script>alert('xss')</script>
* 3. 取得した値を h() 関数でエスケープし、出力してください。
*
*/

View File

@@ -0,0 +1,17 @@
<?php
/**
* [Ex03 複数値のリクエスト処理]
*
* TODO:
* 1. __DIR__を使い、Util/Area.phpをrequire_onceで読み込む
* 2. POSTで送られた以下の値を取得する
* - 'vote' : 複数選択される可能性があるので配列で受け取る(例:$_POST['vote'])
* - 'height' : 数値(縦)
* - 'width' : 数値(横)
* 3. 選択された各図形について、
* - 値が1なら calcRectangle() を使い面積計算
* - 値が2なら calcTriangle() を使い面積計算
* 4. 計算結果を foreach などを用いて出力してください。
*
*/

View File

@@ -0,0 +1,16 @@
<?php
/**
* [Ex04 認証チェックとリダイレクト]
*
* TODO:
* 1. リクエストメソッドがPOSTであるかチェックしてください。
* POST以外の場合は「POSTメソッドで送信してください」と出力してください。
* 2. __DIR__ を使い、Util/Validate.php、Util/Redirect.php、Util/Escape.php を require_onceで読み込んでください。
* 3. POSTで送信された "username" と "password" を取得してください。
* 4. 取得した値を checkUser() 関数に渡し、認証チェックを行ってください。
* 5. 認証成功なら、redirect() 関数を使い "Ex04_success.php" へリダイレクトしてください。
* 6. 認証失敗なら、「認証に失敗しました。入力されたユーザー名:{username}」と出力してください。
* ※{username}は h() を使ってエスケープしてください。
*
*/

View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>認証成功</title>
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>認証成功</h1>
<p>おめでとう! 正しいユーザー情報が入力されました。</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?php
/**
* [Ex05 セッションを使う + 画像アップロード]
*
* TODO:
* 1. リクエストメソッドがPOSTであるかチェックしてください。
* ※POST以外の場合は「POSTメソッドで送信してください」と出力してください。
* 2. session_start() を呼び出し、セッションを開始してください。
* 3. __DIR__ を使い、Util/Upload.php を require_onceで読み込んでください。
* 4. $_FILES['image'] が存在するかチェックしてください。
* 5. uploadImage() 関数を使用して、画像アップロード処理を行ってください。
* ※アップロード先はプロジェクト内の "uploads" フォルダとします。
* ※関数はアップロード成功時に画像のファイル名を返すものとします。
* 6. アップロード成功なら、返されたファイル名を $_SESSION['uploaded_image'] に保存してください。
* 7. 成功時は「画像アップロード成功:{ファイル名}」と出力してください。
* ※{ファイル名}は実際のアップロードされた画像のファイル名に置き換えます。
* 8. アップロードに失敗した場合は、「画像アップロードに失敗しました」と出力してください。
*
*/

View File

@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP 練習問題スタートページ</title>
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>独習PHP第6・8章練習問題 <small>外部ファイル読み込みとリクエスト情報</small></h1>
</div>
<div class="panel-group" id="accordion">
<!-- Ex01 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01: 外部ファイル読み込み
</a>
<small>初級</small>
</h4>
</div>
</div>
<!-- Ex02 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex02: エスケープ処理
</a>
<small>初級</small>
</h4>
</div>
</div>
<!-- Ex03 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseEx03">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex03: 複数値のリクエスト処理
</a>
<small>初級</small>
</h4>
</div>
<div id="collapseEx03" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex03.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="vote">図形</label>
<select name="vote[]" multiple class="form-control">
<option value="1">四角形</option>
<option value="2">三角形</option>
</select>
</div>
<div class="form-group">
<label for="height">縦</label>
<input type="number" name="height" class="form-control" placeholder="数値を入力">
</div>
<div class="form-group">
<label for="width">横</label>
<input type="number" name="width" class="form-control" placeholder="数値を入力">
</div>
<button type="submit" class="btn btn-primary">計算する</button>
</form>
</div>
</div>
</div>
<!-- Ex04 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseEx04">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex04: 認証チェック(上級)
</a>
<small>上級</small>
</h4>
</div>
<div id="collapseEx04" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex04.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="username">ユーザー名</label>
<input type="text" name="username" class="form-control" placeholder="ユーザー名を入力">
</div>
<div class="form-group">
<label for="password">パスワード</label>
<input type="password" name="password" class="form-control" placeholder="パスワードを入力">
</div>
<button type="submit" class="btn btn-primary">ログイン</button>
</form>
</div>
</div>
</div>
<!-- Ex05 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseEx05">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex05: セッションを使う + 画像アップロード
</a>
<small>上級</small>
</h4>
</div>
<div id="collapseEx05" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex05.php" target="_blank" class="form-inline"
enctype="multipart/form-data">
<div class="form-group">
<label for="image">画像ファイル</label>
<input type="file" name="image" class="form-control">
</div>
<button type="submit" class="btn btn-primary">アップロード</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,18 @@
<?php
// area.php:Ex03用
/**
* 四角形の面積:縦×横
*/
function calcRectangle($height, $width)
{
return $height * $width;
}
/**
* 三角形の面積:縦×横/2
*/
function calcTriangle($height, $width)
{
return ($height * $width) / 2;
}

View File

@@ -0,0 +1,9 @@
<?php
// escape.php:Ex02用
/**
* 文字列をエスケープする関数
*/
function h($str)
{
return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}

View File

@@ -0,0 +1,6 @@
<?php
// hello.php:Ex01用
function getMessage()
{
return "Hello, world!";
}

View File

@@ -0,0 +1,12 @@
<?php
// Util/redirect.php:Ex04/Ex05共通用
/**
* 指定したURLへリダイレクトする関数
*
* @param string $url リダイレクト先URL
*/
function redirect($url)
{
header("Location: " . $url);
exit;
}

View File

@@ -0,0 +1,14 @@
<?php
// Util/validate.php:Ex05用
/**
* ユーザー認証チェック関数
* ユーザー名が "admin"、パスワードが "secret" の場合のみ認証成功
*
* @param string $username
* @param string $password
* @return bool 認証成功ならtrue
*/
function checkUser($username, $password)
{
return ($username === 'admin' && $password === 'secret');
}

22
Question10-class/Ex01.php Normal file
View File

@@ -0,0 +1,22 @@
<?php
/**
* [Ex01 オブジェクト指向クラスの問題]
*
* TODO:
* 1. 新しく「User.php」というファイルを作成し、以下の仕様に基づいてUserクラスを定義してください。
* - クラス名: User
* - プロパティ:
* user_id : ユーザID(整数)
* user_name : ユーザ名(文字列)
* mail : メールアドレス(文字列)
* password : パスワード(文字列)
* - メソッド: なし
*
* 2. 本ファイル内で、require_onceを使ってUser.phpを読み込んでください。
*
* 3. 変数 $us を宣言し、Userクラスのインスタンスを作成して代入してください。
*
* 4. 最後に、$us の各プロパティの値を出力してください。
*
*/

16
Question10-class/Ex02.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
/**
* [Ex02 オブジェクト指向 クラスのプロパティ操作]
*
* TODO:
* 1. 既に作成した User クラス(User.php)を利用します。
* 2. require_onceを使い、User.php を読み込んでください。
* 3. 変数 $us を宣言し、User クラスのインスタンスを生成して代入してください。
* 4. $us の user_id プロパティに 101 を代入してください。
* 5. $us の user_name プロパティに "リゾーム太郎" を代入してください。
* 6. $us の mail プロパティに "rhizome@hoge.com" を代入してください。
* 7. $us の password プロパティに "1qazxcv" を代入してください。
* 8. 最後に、$us の各プロパティ (user_id, user_name, mail, password) の値を出力してください。
*
*/

18
Question10-class/Ex03.php Normal file
View File

@@ -0,0 +1,18 @@
<?php
/**
* [Ex03 オブジェクト指向 クラスの活用 - POSTによるUserクラスの利用]
*
* TODO:
* 1. 既に作成した User クラス(User.php)を利用します。
* 2. require_onceを使い、User.php を読み込んでください。
* 3. 前画面からPOSTで送信された以下のデータを、それぞれ変数に格納してください。
* - ユーザID(数字):キー "user_id"
* - ユーザ名:キー "user_name"
* - メールアドレス:キー "mail"
* - パスワード:キー "password"
* 4. 変数 $us を宣言し、User クラスのインスタンスを生成して代入してください。
* 5. 取得した各値を、$us の各プロパティ(user_id, user_name, mail, password)に代入してください。
* 6. 最後に、$us の各プロパティの値を出力してください。
*
*/

41
Question10-class/Ex04.php Normal file
View File

@@ -0,0 +1,41 @@
<?php
/**
* [Ex04 オブジェクト指向 クラスの活用 - Carクラスを用いた移動シミュレーション]
*
* TODO:
* 1. 新しく「Car.php」というファイルを作成し、以下の仕様に基づいて Car クラスを定義してください。
* - クラス名: Car
* - プロパティ:
* serialNo : シリアル番号(整数)
* color : 色(文字列)
* gasoline : ガソリン残量(整数)
* - メソッド:
* run() : 戻り値は整数、引数はなし。
* run() メソッドは以下の処理を行います。
* a. ガソリンが0の場合、進むことができないので -1 を返す。
* b. ガソリンを1消費する。
* c. 1~15のランダムな整数値を生成し、その値(進んだ距離)を返す。
*
* 2. 本ファイル内で、require_once を使い Car.php を読み込んでください。
* 3. 変数 $car を宣言し、Car クラスのインスタンスを生成して代入してください。
* 4. $car の各プロパティに以下の値を代入してください。
* - serialNo: 10000
* - color: "Red"
* - gasoline: 50
* 5. 目的地までの距離は300kmとします。
* 6. 以下の処理を実装してください。
* - 変数 $move を初期化し、これまで進んだ総距離とします。
* - 変数 $count を初期化し、run() メソッドを実行した回数(時間)をカウントします。
* - while ループを用いて、目的地まで進むまで以下を繰り返してください:
* a. $car の run() メソッドを呼び出し、戻り値を $ret に代入する。
* b. $ret が -1 なら、ループを終了する。
* c. $move に $ret を加算する。
* d. $count を1増やす。
* e. 現在の進行状況を「n時間でm km進みました。残り:x km」と表示する。
* ※ n: 実行回数、m: 今回の進んだ距離、x: 残り距離(残りが負の場合は0と表示)
* - ループ終了後、もし目的地に到達していなければ「目的地に到達できませんでした」と出力し、
* 目的地に到達していれば「目的地までn時間かかりました。残りのガソリンは、xリットルです」と出力してください。
* ※ x は $car->gasoline の残りの値
*
*/

27
Question10-class/Ex05.php Normal file
View File

@@ -0,0 +1,27 @@
<?php
/**
* [Ex05 オブジェクト指向 - Carクラスを用いた競争シミュレーション]
*
*
* TODO:
* 1. 既に作成済みの Car クラス(Car.php)を利用します。
* 2. require_once を使い、Car.php を読み込んでください。
* 3. POSTで送信されたデータから、3台の車の情報を取得してください。各車について、以下のキーの値を取得します:
* - シリアル番号: "serialNo1", "serialNo2", "serialNo3"
* - 色: "color1", "color2", "color3"
* - ガソリン: "gasoline1", "gasoline2", "gasoline3"
* 4. それぞれの車のインスタンスを生成し、取得した値を対応するプロパティに代入してください。
* 5. 目的地までの距離は200kmとします。各車について、以下のシミュレーションを行ってください:
* - 変数 $move を初期化し、これまでの走行距離を管理します。
* - 変数 $hours を初期化し、run() メソッドを実行した回数(=経過時間)をカウントします。
* - while ループを使い、目的地まで進むまで run() を呼び出してください。
* ・run() の戻り値が -1 の場合は、その車は走行不能とし、$hours を -1 としてください。
* ・それ以外の場合は、戻り値分を $move に加算し、$hours を1増やしてください。
* - 各run() の実行結果として、【n台目】 m 時間で x km進みました。残り y km と表示してください
* (ただし、残り距離が負の場合は0と表示)。
* 6. 各車のシミュレーション終了後、各車の走行時間(-1の場合は到達不可)をもとに順位付けを行い、以下のように出力してください:
* - 目的地に到達した車については「○台目の車が掛かった時間: n 時間」
* - 到達できなかった車については「○台目は目的地に到達できませんでした」
*
*/

153
Question10-class/index.html Normal file
View File

@@ -0,0 +1,153 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra10スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第10章練習問題 <small>インスタンスとクラスの定義</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- Ex01 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01: オブジェクト指向 - Userクラスの作成
</a>
<small>初級</small>
</h4>
</div>
</div>
<!-- Ex02 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex02: オブジェクト指向 - Userクラスのプロパティ操作
</a>
<small>初級</small>
</h4>
</div>
</div>
<!-- Ex03 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseEx03">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex03: オブジェクト指向 - POSTによるUserクラスの利用
</a>
<small>初級</small>
</h4>
</div>
<div id="collapseEx03" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex03.php" target="_blank" class="form-inline">
<div class="form-group">
<label for="user_id">ユーザID</label>
<input type="number" class="form-control" name="user_id" placeholder="ユーザIDを入力してください">
<label for="user_name">ユーザ名</label>
<input type="text" class="form-control" name="user_name" placeholder="ユーザ名を入力してください">
<label for="mail">メールアドレス</label>
<input type="text" class="form-control" name="mail" placeholder="メールアドレスを入力してください">
<label for="password">パスワード</label>
<input type="text" class="form-control" name="password" placeholder="パスワードを入力してください">
</div>
<button type="submit" class="btn btn-primary">送信</button>
</form>
</div>
</div>
</div>
<!-- Ex04 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex04.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex04: オブジェクト指向 - Carクラスを用いた移動シミュレーション
</a>
<small>上級</small>
</h4>
</div>
</div>
<!-- Ex05 -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseEx05">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex05: オブジェクト指向 - Carクラスを用いた競争シミュレーション
</a>
<small>上級 ※複数の要素(クラス利用、アルゴリズム、配列操作など)を組み合わせる応用力を試す問題</small>
</h4>
</div>
<div id="collapseEx05" class="panel-collapse collapse">
<div class="panel-body">
<form method="post" action="Ex05.php" target="_blank" class="form-inline">
<!-- 1台目の車情報 -->
<div class="form-group">
<label for="serialNo1">1台目 シリアル番号</label>
<input type="number" class="form-control" name="serialNo1" placeholder="シリアル番号を入力">
<label for="color1">色</label>
<input type="text" class="form-control" name="color1" placeholder="色を入力">
<label for="gasoline1">ガソリン</label>
<input type="number" class="form-control" name="gasoline1" placeholder="ガソリン量を入力">
</div>
<br>
<!-- 2台目の車情報 -->
<div class="form-group">
<label for="serialNo2">2台目 シリアル番号</label>
<input type="number" class="form-control" name="serialNo2" placeholder="シリアル番号を入力">
<label for="color2">色</label>
<input type="text" class="form-control" name="color2" placeholder="色を入力">
<label for="gasoline2">ガソリン</label>
<input type="number" class="form-control" name="gasoline2" placeholder="ガソリン量を入力">
</div>
<br>
<!-- 3台目の車情報 -->
<div class="form-group">
<label for="serialNo3">3台目 シリアル番号</label>
<input type="number" class="form-control" name="serialNo3" placeholder="シリアル番号を入力">
<label for="color3">色</label>
<input type="text" class="form-control" name="color3" placeholder="色を入力">
<label for="gasoline3">ガソリン</label>
<input type="number" class="form-control" name="gasoline3" placeholder="ガソリン量を入力">
</div>
<br>
<button type="submit" class="btn btn-primary">Ex05 競争シミュレーション実行</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?php
/**
* [Ex01 コンストラクタを使おう]
*
* TODO:
* 1. 新しいファイル "Product.php" を作成し、以下の仕様に従って Product クラスを定義してください。
* - クラス名: Product
* - プロパティ:
* name : 文字列
* price : 数値
* category : 文字列
* - コンストラクタ:
* __construct($name, $price, $category) を定義し、上記各プロパティに値をセットしてください。
* 2. 本ファイル内で、require_once を使い Product.php を読み込んでください。
* 3. 変数 $product を宣言し、Product クラスのインスタンスを生成してください。
* 例: new Product("Laptop", 1500, "Electronics")
* 4. 最後に、$product の各プロパティ (name, price, category) の値を出力してください。
*
*/

View File

@@ -0,0 +1,18 @@
<?php
/**
* [Ex02 静的プロパティ・静的メソッドを使おう]
*
* TODO:
* 1. 新しいファイル "Calculator.php" を作成し、以下の仕様に従って Calculator クラスを定義してください。
* - クラス名: Calculator
* - 静的プロパティ:
* count : 初期値 0
* - 静的メソッド:
* add($a, $b) : 2つの数値の和を返す。実行時に静的プロパティ count を1増やす。
* 2. 本ファイル内で、require_once を使い Calculator.php を読み込んでください。
* 3. 静的メソッド add() を使い、以下の加算を2回行ってください。
* 例: 10+20, 30+40
* 4. それぞれの結果と、最終的な静的プロパティ count の値を出力してください。
*
*/

View File

@@ -0,0 +1,23 @@
<?php
/**
* [Ex03 シングルトンパターン - 静的メソッドを使おう]
*
*
* TODO:
* 1. 新しいファイル "Singleton.php" を作成し、以下の仕様に従って Singleton クラスを定義してください。
* - クラス名: Singleton
* - プロパティ:
* private static $instance : このクラスの唯一のインスタンスを保持する静的プロパティ
* public $value : 任意の値を格納するためのプロパティ
* - コンストラクタ:
* コンストラクタは private とし、外部からの直接インスタンス生成を禁止する。
* - 静的メソッド:
* public static function getInstance() :
* インスタンスが未生成なら新規に生成し、既に生成済みならそのインスタンスを返す。
* 2. 本ファイル内で、require_once を使い Singleton.php を読み込んでください。
* 3. 静的メソッド getInstance() を利用し、Singleton クラスのインスタンスを2つ取得してください。
* 4. 片方のインスタンスの value プロパティに、"Hello, Singleton!" を設定し、
* もう片方でその値を出力してください。
*
*/

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP コンストラクタ・静的系問題 スタートページ</title>
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>独習PHP第10章練習問題 (コンストラクタ・静的系問題) <small>クラスの基本とシングルトンパターン</small></h1>
</div>
<div class="panel-group" id="accordion">
<!-- Ex01:コンストラクタを使おう -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex01: コンストラクタを使おう (初級)
</a>
</h4>
</div>
</div>
<!-- Ex02:静的プロパティ・静的メソッドを使おう -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex02.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex02: 静的プロパティ・静的メソッドを使おう (初級)
</a>
</h4>
</div>
</div>
<!-- Ex03:シングルトンパターン(静的メソッド) -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex03.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Ex03: シングルトンパターン(静的メソッド) (上級)
</a>
</h4>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min"></script>
</body>
</html>

View File

@@ -0,0 +1,33 @@
<?php
/**
* [Ex01 オブジェクト指向 - Studentクラスのアクセサの実装と制御処理の追加]
*
* TODO:
* 1. 新しいファイル "Student.php" を作成し、以下の仕様に従って Student クラスを定義してください。
* - クラス名: Student
* - プロパティ(すべて private とする):
* student_id, student_name, company_name, class_name, mail, password
* - 各プロパティに対して、シンプルなゲッター(getXXX)とセッター(setXXX)を実装してください。
* (例:getStudentId() と setStudentId($id) など)
*
* (下記は1,2,3,4の処理が終わった後の+αの課題です)
*   シンプルな実装ができたら、下記の特定のセッターに対して、追加の制御処理(バリデーション)を実装するようにしてください:
*  a. setStudentId($id) : $id が正の整数であることをチェックし、正しくない場合は 0 をセットする。
*  b. setMail($mail) : $mail が有効なメールアドレスの形式かチェックし、無効な場合は "unknown@example.com" をセットする。
*  c. setPassword($password) : $password の長さが8文字以上であるかチェックし、短い場合は "defaultPass" をセットする。
*
* 2. 本ファイル内で、require_once を使い "Student.php" を読み込んでください。
*
* 3. Student クラスのインスタンスを生成し、以下の値を各セッターで設定してください。
* - student_id: 10001
* - student_name: "リゾーム太郎"
* - company_name: "株式会社リゾーム"
* - class_name: "Z教室"
* - mail: "rhizome@hogehoge.com"
* - password: "1qazxcvb"
*
* 4. 各プロパティの値を、対応するゲッターを使って出力してください。
*
*
*/

View File

@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PTra12スタートページ</title>
<!-- Bootstrap Core CSS -->
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
独習PHP第10章練習問題 <small>カプセル化</small>
</h1>
</div>
<div class="panel-group" id="accordion">
<!-- ================== Ex01 ================== -->
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="Ex01.php" target="_blank">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
PTra12_01</a> <small>カプセル化</small>
</h4>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="../common/js/jquery-3.2.1.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../common/js/bootstrap.min.js"></script>
</body>
</html>

View File

@@ -0,0 +1,24 @@
<?php
/**
* [Ex01 継承とnamespaceを使った問題]
*
* TODO:
* 1. 既に作成されている "common/Animal.php" を使用します。
* ※Animal.php は namespace Common を使用して定義されています。
* 仕様:
* - クラス名:Animal
* - プロパティ:private $name
* - メソッド:
* setName($name) : 名前をセットするセッター
* getName() : 名前を取得するゲッター
* run() : 「{name}は走る」と出力する
* breathe() : 「{name}は呼吸する」と出力する
*
* 2. 本ファイル内で、下記の処理を実装してください。
* a. require_once を使い "common/Animal.php" を読み込む。
* b. namespace を利用し、Animal クラスを継承したクラス "Ex01" を定義する。
* c. "Ex01" のインスタンスを生成し、setName() メソッドで名前に '人' をセットする。
* d. 継承したメソッド run() と breathe() を実行し、結果を出力する。
*
*/

Some files were not shown because too many files have changed in this diff Show More