第4講 ブロック崩しその2(ボールを動かして壁にぶつかると反射するようにするまで)
第2話 変数についてその2
#include<stdio.h>
int main()
{
  int a;
  a = 2;
  printf("a = %d\n", a);
  a = a + 3;
  printf("a = %d\n", a);
  return 0;
}
コピペ用添付ファイル
の実行結果
01
小学生の皆さんはこれを見ても驚かないでしょうが、
おそらく中学生や高校生の皆さんは、????
でしょうね。
中学生以上の人が疑問に思う行は、
  a = a + 3;
です。数学の得意な人なら、矛盾しているとさえ思うでしょう。
a = a + 3
から右辺のaを移項して、
a - a = 3
から
0 = 3
で矛盾しているというわけです。
確かに、=が数学の=ならば矛盾しています。
賢い皆さんのことですから、
きっと、なるほど第3講の第9話の話しをしようとしてるのだな、
と気がついたことでしょう。
=は決して数学の=ではありません。
  a = 2;

bnwq
aという名前の箱に、2を入れる操作です。
単純に箱に入れる操作です。
ですから、
  a = 2;

  a ← 2;
であると考えた方がよいのです。
であるなら、
  a = a + 3;
どういうことでしょうか。
そうです。
ここでも第3講第9話で説明したことがヒントとなります。
=の左側と右側にあるaは意味が違うのです。
左側のaは箱そのものを意味していました。
=に右側のaは箱そのものではなく箱の中に入っている2を意味しています。
箱の中を見ることを参照というのです。
ですから、
  a = a + 3;

  a = 2 + 3;
です。つまり=に右側(右辺といいます)の
a + 3のaはaの中身を参照しているのです。
aの中身をコピーして使うわけです。
尚、数学の=に相当するものはC言語では==です。
==等を比較演算子といいます。
a==bなら、aとbを比較して大きさが同じ場合に等しいというわけです。
a>bならaとbの大きさを比較してaの方が大きいこと示しています。
a>=bならば、aはb以上であるを示します。
≧がキーボードにないのでC言語では>=で代用しているのです。

さて、
  a = a + 3;
の意味が理解できると、
1+2+3+・・・+10のような計算ができます。
#include<stdio.h>
int main()
{
  int a;
  a = 0;
  a = a + 1;
  a = a + 2;
  a = a + 2;
  a = a + 3;
  a = a + 4;
  a = a + 5;
  a = a + 6;
  a = a + 7;
  a = a + 8;
  a = a + 9;
  a = a + 10;
  printf("1+2+3+4+5+6+7+8+9+10 = %d\n", a);
  return 0;
}
コピペ用添付ファイル
009
でもこれはあまりにも芸のないプログラムです。
なぜなら、1+2+3+・・・+100000なら
10万行もコードを書かなければなりませんし、
いちいちコードを書き換えるのはばかばかしい限りです。
そこで登場するのが、
繰り返し処理です。
実は、画像を動かすには繰り返し処理が不可欠です。



第1話へ  第3話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ