第2講 変数を理解しよう

第2話 文字の足し算

変数は、文字を収納するときより数字を収納するときの方が遙かに威力を発揮しますが、
文字においても変数を利用すると便利な点があります。
文字の足し算ができるのです。
第2講第1話で作ったプロジェクトを開いてください。

コード
コードを次のように変更してください。
#pragma endregion
   private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           //変数の宣言
           String^ a;     //文字の左右位置ずれは気にしない。
           String^ b;
           String^ c;
           String^ d;
           String^ f;
           String^ g;

           //変数への代入
           a=L"東日本大震災";
           b=L"の被災者";
           c=L"皆さん";
           d=L"の";
           f=L" ";
           g=L"がんばれ!";

           //表示
           label1->Text=a;
           label2->Text=a+b;
           label3->Text=a+b+c;
           label4->Text=a+b+c+d;
           label5->Text=a+b+c+d+f;
           label6->Text=a+b+c+d+f+g;
  }
};
}
位置

(Visual C++上文字の左右の位置とWebサイトの文字はどうして少しずれて表示されてしまいます。
エンターして普通に打つと、String^のSはeの真下に来ますが、Webページを同じように表示させることができないので、
多少のずれが生じてしまいます。
Visual C++には自動段組機能がありますから、基本的にそれに従いましょう。
段をずらすときは、半角スペースは使ってもいいのですが、スペースではなくTabキーを使うようにしましょう。
くどいようですが、文字の移動で全角スペースを使うとエラーします
Tabキーでのずれは、半角4文字文に相当します。)
//変数の宣言などの//がついた文が注釈文といわれるものです。
この部分をコンピュータは読み飛ばします。
コンピュータは//のついた文を丸ごと無視するのです。
したがいまして、注釈文は入れても入れなくてもプログラムに何の影響も与えません。
これはあくまで読む人間のために入れている説明です。
私の悪癖の1つとして、
注釈文をあまり入れない、があります。
これはプログラミングを始めた頃、タイピングの腕が悪く、
入れるのが面倒で、入れないでいるうちに染みついてしまった悪い習慣です。
皆さんは、是非注釈文を積極的に入れる習慣をつけましょう。
私は、悪癖のためにしばしば入れるを忘れてしまいますが。

さて、タイピングが終わった方(あるいはコピーペーストが終わった方)は、
F5を押してビルドし実行ボタンを押しましょう。
実行例
4行目と5行目は一見違いがありませんが、
5行目には最後のところに半角スペースが入っています。

文字の足し算ができていることがわかります。

ところで、変数ですがa,b,c,d,f,gとeが飛ばされています。
eは変数名として使えないからです。
『えっ?、どうして?』とお思いでしょう。
使えない理由は、private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
ピンクの部分にあります。すでに、eは変数として使われてしまっているのです。
変数は、ダブって宣言することはできません。
例えば、
String^ a;
String^ a;
とするとエラーします。
String^ e;
とするとこれと似たような状態になるとお考えください。;


では皆さん、この文字の足し算を使って性格診断ソフトを作ってみましょう。
コードと例えば、次のように変更してみましょう。
#pragma endregion
  private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
          //人の名前を収納する変数の宣言
          String^ a1;
          String^ a2;
          String^ a3;
          String^ a4;
          String^ a5;
          String^ a6;

          //性格を表す言葉を収納する変数
          String^ b1;
          String^ b2;
          String^ b3;
          String^ b4;

          //助詞を収納する変数
          String^ c;

          //人の名前の代入
          a1=L"太郎";
          a2=L"次郎";
          a3=L"三郎";
          a4=L"花子";
          a5=L"陽子";
          a6=L"春子";

          //性格を表す言葉の代入
          b1=L"明るく";
          b2=L"活発";
          b3=L"優しく";
          b4=L"世話好き";

          //助詞の代入
          c=L"は";


          //表示
          label1->Text=a1+c+b1+b2;
          label2->Text=a2+c+b3+b2;
          label3->Text=a3+c+b4;
          label4->Text=a4+c+b1+b4;
          label5->Text=a5+c+b3+b4;
          label6->Text=a6+c+b1+b3+b4+L"で"+b2;
   }
};
}
実行結果
実行例2
Visual C++の学習が進んでいけば、高校の先生を悩ませている推薦書作成ソフト等も作成できるようになります。
推薦書を作成するために、生徒にアンケートをしても、
生徒は、『明るい』『前向き』などの単語しか書いてくれません。
そこから、高校の先生方は、例えばA3用紙の隅から隅まで文章にして埋め尽くさなければなりません。
一人で何校も受ける場合もありますから、私は年間に100枚ぐらい推薦書を書いたこともあります。
単語の字数制限や項目(人物、学習など)だけを入れると、
その字数制限通りで、項目にあった推薦文が自動的にできたら高校の先生の仕事はかなり楽になり、
面接指導や小論文指導などに力を入れることができます。
そんな夢のようなソフトもできるようになりますよ。
本講座を卒業する頃には。
実は、卒業研究の課題をまだ決めていませんが、
この推薦書作成ソフトも候補の1つでしょうか。

さて、注目は
label6->Text=a6+c+b1+b3+b4+L"で"+b2;
ピンクの部分です。こういう使い方も可能です。


さて、いくつか課題を出してこの話を終わりにしましょう。

課題1
Form1の表題を、Form名のように変更しましょう。
ヒントは、デザイナー画面に戻り、Form1のプロパティです。
プロパティの中にForm1となっている場所がありますね。

課題2
実は、変数は再利用することができます。
人を表す変数を6個から3個の減らすにはどうしたらよいか考えてみてください。

課題3
さらに、人を表す変数を1個にするにはどうコーティングしたらよいでしょうか。




第1話へ 第3話へ

025


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

数学研究室に戻る