if文の演習をします(5月24日、25日)

第1問

難易度:★☆☆☆☆

//1,2時間目にやった条件分岐を実際に書いてみる
// ⓪ aを宣言(整数)
// ① aを読み込み(整数) std::cin 
// ② a > 5 ?             if(   )~else~
//    Yes: a - 5 を表示   std::cout
//     No: a + 5 を表示   std::cout
// ③ 終了

模範解答

#include <iostream>
 
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 <iostream>
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 <iostream>
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番には、罠がかかっています(開けると毒を食らう)

以下の処理を実装しなさい。

  1. “3つのうち1つの宝箱を開けます。番号を入力してください(1~3)”のメッセージを表示
  2. 1が押された?
    • Yes: “モンスターが現れた”と表示
    • No : 以下の条件処理を行う
  3. 2が押された?
    • Yes: “宝物ゲット!”と表示
    • No :以下の条件処理を行う
  4. 3が押された?
    • Yes: “罠だ!毒を食らった”と表示
    • No: “エラー :1~3以外が入力されました”と表示

- 終了

模範解答

#include <iostream>
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問

難易度:★★☆☆☆
試験の点数をキーボードから入力します。
試験の点数によって、以下のメッセージを表示したい。

条件 表示内容
得点が80点以上 高得点!おめでとう。
80 > 得点 ≧ 65点の範囲 (80は含まないが、65は含む)もう少しで高得点。
65 > 得点 ≧ 35点の範囲 (65は含まないが、35は含む)もう少し頑張りましょう。
得点が35点未満 追試です。

プログラムで以上の処理を実現しなさい。

模範解答

#include <iostream>
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 <iostream>
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つの条件から判定されます。

  1. 西暦が「4」で割り切れる(あまりが0)年は閏年ですが
  2. 西暦が「100」で割り切れる年は閏年ではありません。
  3. ただし、西暦が「400」で割り切れる年は閏年。

うるう年の参考

  • game-engineer/classes/2022/game-programing-1/first-term/5/5-23-1245.txt
  • 最終更新: 4年前
  • by root