第7講 社員(子分)

第3話 箱の適用範囲


実行結果
C言語

プログラムの文章
#include<iostream>
using namespace std;
void wa();
void seki();


int main(){

  wa();

  seki();

}

void wa(){
  cout<<"1から10までの和=";
  int w,i;
  w=0;
  for(i=1;i<11;i++){
    w+=i;
  }
  cout<<w<<endl<<endl;
}

void seki(){
  cout<<"1から10までの積=";
  
int w,i;
  w=1;
  for(i=1;i<11;i++){
    w*=i;
  }
  cout<<w<<endl<<endl;
}


何を示唆しておいたかおわかりになりましたか。
実は注目していただきたい1行は
  int w,i;
です。
これをカットして
#include<iostream>
using namespace std;
void wa();
void seki();

int main(){

  wa();

  seki();

}

void wa(){
  cout<<"1から10までの和=";
  int w,i;
  w=0;
  for(i=1;i<11;i++){
    w+=i;
  }
  cout<<w<<endl<<endl;
}

void seki(){
  cout<<"1から10までの積=";
  w=1;
  for(i=1;i<11;i++){
    w*=i;
  }
  cout<<w<<endl<<endl;
}
とどうなるかわかりますか。答えは30行下。





























答え
実行エラーをします。
どうしてでしょうか。
実はとても大切な話です。
独立部品から組み立てることを構造化プログラミングということは、
前にお話ししました。
独立とはどういうことか説明していませんでした。
c++
数字を入れる箱の名前(変数名)が同じであっても、
箱の適用範囲は枠内に限定されるのです。
つまり、それぞれの社員が用意した箱は、
その社員専用の箱でして、
他の社員は使えないのです。
社員は専門用語では、関数です。
つまり、箱(変数)は関数内のみでしか有効ではないのです。
関数内でしか変数が有効でないことをローカルであるといいます。
そして、関数内でしか有効でない変数をローカル変数というのです。
実は、関数を社員や子分と呼んでいますが、
名称を社員ではなく会社にすることも検討しています。
会社の方が、
会社の中にある箱(ロッカー)がその会社でしか使えないということを
イメージしやすいと考えるからです。
会社のロッカーを別の会社の人が勝手に使ってしまうことは考えられませんね。
関数を表す言葉を社員から会社に変更する場合は、
今まで会社と読んでいたプログラム全体は、
社会と言い換えなければならなくなります。

関数内でしか通用しない変数をローカル変数だといっているので、
もちろんプログラム全体で通用する変数もあります。
それをグローバル変数
(専門用語を用いない本講義では全社員共有の箱と名付けます。)
といいます。
次話では全社員共有の箱についてみていきます。



第2話へ 第4話へ

a

初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
VC++入門
VBA入門
専門用語なしのVBA入門
VB入門
初心者のためのEclipseによるJava入門