====== if文の演習をします(5月24日、25日) ======
==== 比較演算子 ====
[[http://www.yz-learning.com/yzwiki/doku.php?id=cpp:comparison-operator|この辺見てね!]]\\
=== 第1問 ===
難易度:★☆☆☆☆\\
//1,2時間目にやった条件分岐を実際に書いてみる
// ⓪ aを宣言(整数)
// ① aを読み込み(整数) std::cin
// ② a > 5 ? if( )~else~
// Yes: a - 5 を表示 std::cout
// No: a + 5 を表示 std::cout
// ③ 終了
=== 模範解答 ===
#include
using std::cin;
using std::cout;
using std::endl;
//↑これを書いておくとstd::を省略できる
int main() {
int a;
cin >> a;
if(a > 5)
{
cout << a - 5 << endl;
}
else
{
cout << a + 5 << endl;
}
return 0;
}
=== 第2問 ===
難易度:★☆☆☆☆\\
//その2
// ⓪ aを宣言(整数)
// ① aを読み込み(整数) std::cin
// ② a が 10と等しいか? if( )~else~ ?
// Yes: a を表示 std::cout
// No: 何もしない ?????
// ③ 終了
=== 模範解答 ===
#include
using std::cin;
using std::cout;
using std::endl;
int main() {
int a;
cin >> a;
if(a == 10)
{
cout << "a = " << a << endl;
}
return 0;
}
=== 第3問 ===
難易度:★★☆☆☆\\
//その3
// ⓪ aを宣言(整数)
// ① aを読み込み(整数) std::cin
// ② a は5より大きく10以下か? if( )~else~ ?
// Yes: a を表示 std::cout
// No: 何もしない ?????
// ③ 終了
=== 模範解答 ===
#include
using std::cin;
using std::cout;
using std::endl;
int main() {
int a;
cout << "aを入力:";
cin >> a;
if(a > 5 && a <= 10)
{
cout << "a = " << a << endl;;
}
return 0;
}
=== 第4問 ===
難易度:★★☆☆☆\\
* 宝箱が3つあります、宝箱にはそれぞれに1~3の番号がついています。
* この宝箱を1つだけ選んで開けます。
* 1番には、モンスターが入っています。(開けるとモンスター出現)
* 2番には、宝物が入っています(開けるとお宝ゲット)
* 3番には、罠がかかっています(開けると毒を食らう)
以下の処理を実装しなさい。\\
- "3つのうち1つの宝箱を開けます。番号を入力してください(1~3)"のメッセージを表示
- 1が押された?
* Yes: "モンスターが現れた"と表示
* No : 以下の条件処理を行う
- 2が押された?
* Yes: "宝物ゲット!"と表示
* No :以下の条件処理を行う
- 3が押された?
* Yes: "罠だ!毒を食らった"と表示
* No: "エラー :1~3以外が入力されました"と表示
- 終了
=== 模範解答 ===
#include
using std::cin;
using std::cout;
using std::endl;
int main() {
int input;
cout << "3つのうち1つの宝箱を開けます。\n番号を入力してください(1~3) : " ;
cin >> input;
if(input == 1)
{
cout <<"モンスターが現れた!" << endl;
}
else if(input == 2)
{
cout <<"宝物ゲット!" << endl;
}
else
{
cout <<"罠だ!毒を食らった" << endl;
}//それ以外はエラーにするにはどうする?
return 0;
}
=== 第5問 ===
難易度:★★☆☆☆\\
試験の点数をキーボードから入力します。\\
試験の点数によって、以下のメッセージを表示したい。\\
|< 50% 150px 300px >|
| 条件 | 表示内容 |
| 得点が80点以上 | 高得点!おめでとう。 |
| 80 > 得点 ≧ 65点の範囲 | (80は含まないが、65は含む)もう少しで高得点。 |
| 65 > 得点 ≧ 35点の範囲 | (65は含まないが、35は含む)もう少し頑張りましょう。 |
| 得点が35点未満 | 追試です。 |
プログラムで以上の処理を実現しなさい。\\
=== 模範解答 ===
#include
using std::cout;
using std::cin;
using std::endl;
int main() {
int point;
cout << "得点を入力:";
cin >> point;
//得点が80点以上 高得点!おめでとう。
if(point >= 80)
{
cout << "高得点!おめでとう。" << endl;
}
//(80は含まないが、65は含む)
//もう少しで高得点。
else if(point >= 65)
{
cout << "もう少しで高得点。" << endl;
}
else if(point >= 35)
{
cout << "もう少しがんばりましょう。" << endl;
}
else
{
cout << "追試です" << endl;
}
return 0;
}
=== 第6問 ===
難易度:★☆☆☆☆\\
整数をキーボードから入力(入力要求のメッセージを出す)させ、\\
偶数か奇数に応じてメッセージを表示するプログラムを作る\\
各メッセージ
入力要求 : 整数を入力して下さい。
偶数の時 : ○○は偶数です。
奇数の時 : ○○は奇数です。
(但し、○○は入力された整数)
(整数以外のものが入力された時に実行時エラーとなっても良しとする。
=== 模範解答 ===
#include
using std::endl;
using std::cout;
using std::cin;
int main() {
int var;
cout << "整数を入力:";
cin >> var;
//これの意味なんだっけ?
if(var % 2 == 1)
{
cout <<"奇数" << endl;
}
else
{
cout <<"偶数" << endl;
}
return 0;
}
=== 第7問 ===
難易度:★★★☆☆\\
西暦をキーボードから入力して、その入力した年が「うるう年」か「平年」かを判定するプログラムを作りなさい。
うるう年は以下の3つの条件から判定されます。\\
- 西暦が「4」で割り切れる(あまりが0)年は閏年ですが
- 西暦が「100」で割り切れる年は閏年ではありません。
- ただし、西暦が「400」で割り切れる年は閏年。
[[https://www.chugakujuken.com/koushi_blog/ooki/20170309.html| うるう年の参考]]