第4講 if文の学習

第4話 if...else...文の入れ子式による4段階ないし5段階評価

4段階解答例その1
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e) {
           int a,b,c,d,f,w;

           //textBoxから5教科の値を取得
           a=int::Parse(textBox1->Text);
           b=int::Parse(textBox2->Text);
           c=int::Parse(textBox3->Text);
           d=int::Parse(textBox4->Text);
           f=int::Parse(textBox5->Text);  //eはすでに、System::EventArgs^ eと宣言されていて使えないのでfとなっている

           //5教科合計を計算
           w=a+b+c+d+f;

           //5教科合計を表示
           textBox6->Text=w.ToString();

           //合否判定
           if(w>=300)textBox7->Text=L"合格";
           if(w<300) textBox7->Text=L"不合格";

           //講評
           if(w>=450){
             textBox8->Text=L"超天才級";
           }
           else{
             if(w>=380){
                textBox8->Text=L"天才級。";
             }
             else{
               if(w>=300){
                 textBox8->Text=L"優秀";
               }
               else{
                 textBox8->Text=L"がんばりましょう";
               }
             }
           }
         }
};
}

[解説]
           if(w>=450){
             textBox8->Text=L"超天才級";
           }
           else{
             if(w>=380){
                textBox8->Text=L"天才級。";
             }
             else{
               if(w>=300){
                 textBox8->Text=L"優秀";
               }
               else{
                 textBox8->Text=L"がんばりましょう";
               }
             }
           }
今回もif...else...文について解説しておきましょう。
最初の
           if(w>=450){
             textBox8->Text=L"超天才級";
           }

によって、450以上の場合にtextBox8に『超天才級』と表示されます。
次のelse文
           else{
             if(w>=380){
                textBox8->Text=L"天才級。";
             }
             else{
               if(w>=300){
                 textBox8->Text=L"優秀";
               }
               else{
                 textBox8->Text=L"がんばりましょう";
               }
             }
           }

は450以上の否定で、450未満が対象になります。
すると、
             if(w>=380){
                textBox8->Text=L"天才級。";
             }

は、450未満で380以上が対象になります。
そして、次のelse文

             else{
               if(w>=300){
                 textBox8->Text=L"優秀";
               }
               else{
                 textBox8->Text=L"がんばりましょう";
               }
             }

では、380以上の否定=380未満が対象になります。
ですから、
               if(w>=300){
                 textBox8->Text=L"優秀";
               }

は380未満で300以上が対象になります。
最後のelse文
               else{
                 textBox8->Text=L"がんばりましょう";
               }

は300以上の否定で300未満が対象になります。

4段階解答例その2(if文のみによる)
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           int a,b,c,d,f,w;

           //textBoxから5教科の値を取得
           a=int::Parse(textBox1->Text);
           b=int::Parse(textBox2->Text);
           c=int::Parse(textBox3->Text);
           d=int::Parse(textBox4->Text);
           f=int::Parse(textBox5->Text);  //eはすでに、
System::EventArgs^ eと宣言されていて使えないのでfとなっている

           //5教科合計を計算
           w=a+b+c+d+f;

           //5教科合計を表示
           textBox6->Text=w.ToString();

           //合否判定
           if(w>=300)textBox7->Text=L"合格";
           if(w<300) textBox7->Text=L"不合格";

           //講評
           if(w>=450)textBox8->Text=L"超天才級";
           if(w<450 && w>=380)textBox8->Text=L"天才級";
           if(w<380 && w>=300)textBox8->Text=L"優秀";
           if(w<300)textBox8->Text=L"がんばりましょう";
         }
};
}



5段階評価解答例その1
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           int a,b,c,d,f,w;

           //textBoxから5教科の値を取得
           a=int::Parse(textBox1->Text);
           b=int::Parse(textBox2->Text);
           c=int::Parse(textBox3->Text);
           d=int::Parse(textBox4->Text);
           f=int::Parse(textBox5->Text);  //eはすでに、System::EventArgs^ eと宣言されていて使えないのでfとなっている

           //5教科合計を計算
           w=a+b+c+d+f;

           //5教科合計を表示
           textBox6->Text=w.ToString();

           //合否判定
           if(w>=300)textBox7->Text=L"合格";
           if(w<300) textBox7->Text=L"不合格";

           //講評
           if(w>=450){
             textBox8->Text=L"超天才級";
           }
           else{
             if(w>=380){
                textBox8->Text=L"天才級。";
             }
             else{
               if(w>=300){
                 textBox8->Text=L"優秀";
               }
               else{
                 if(w>=280){
                   textBox8->Text=L"残念、あとちょっとでした。";
                 }
                 else{
                   textBox8->Text=L"残念";
                 }
               }
             }
           }
         }
};
}

5段階解答例その2(if文のみによる)
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           int a,b,c,d,f,w;

           //textBoxから5教科の値を取得
           a=int::Parse(textBox1->Text);
           b=int::Parse(textBox2->Text);
           c=int::Parse(textBox3->Text);
           d=int::Parse(textBox4->Text);
           f=int::Parse(textBox5->Text);  //eはすでに、System::EventArgs^ eと宣言されていて使えないのでfとなっている

           //5教科合計を計算
           w=a+b+c+d+f;

           //5教科合計を表示
           textBox6->Text=w.ToString();

           //合否判定
           if(w>=300)textBox7->Text=L"合格";
           if(w<300) textBox7->Text=L"不合格";

           //講評
           if(w>=450)textBox8->Text=L"超天才級";
           if(w<450 && w>=380)textBox8->Text=L"天才級";
           if(w<380 && w>=300)textBox8->Text=L"優秀";
           if(w<300 && w>=280)textBox8->Text=L"残念、後一歩です。";
           if(w<280)textBox8->Text=L"残念";
         }
};
}
では、次の課題です。
今回は手でいちいちデータを入れていますが、
実行ボタンを押すと自動的に5教科のデータも入って、
合計、合否判定、評価も出るように変更しましょう。
0以上100以下の整数をランダムに発生させるには、
a=rand()%101;
とします。
rand()は乱数で、正確には私も知りませんが10万未満の整数をランダムに発生させるものです。
%は
a%b
なら、aをbで割った余りを計算させるものです。
ですから、
a=rand()%101;は0以上100以下の整数をランダムに発生させるものになります。
ただし、rand()を使うには、冒頭で
#pragma once
#include<stdlib.h>
namespace if文簡易ソフト {
として、インクルードファイルstdlib.hを読み込んでおく必要があります。
If...Else文


第3話へ 第5話へ

025


vc++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る