第10講 関数の学習
第2話 なぜ関数というのか?

引数や戻り値の説明の前に、
簡単な例を作りなぜ関数というのかを理解して頂きたいと思います。
次のようにメモ帳等でタイピングしてc.cppというファイル名でどこかのフォルダに保存しましょう。
もちろん、タイピングが面倒な型はc.cppをクリックしてどこかのフォルダに保存されても結構です。

#include<stdio.h>
char f(char x);

int main(void){
  char y;

  y=f(5);
  printf("yの値は%d",y);
}

char f(char x){
  char y;

  y=3*x+5;

  return(y);
}

(コピーペースト用

#include<stdio.h>
char f(char x);

int main(void){
char y;

y=f(5);
printf("yの値は%d",y);
}

char f(char x){
char y;

y=3*x+5;

return(y);
}




c.cppを好きなフォルダに保存できたらスタート→すべてのプログラム→Micosoft Visual Studio 2010 ExpressVisual Studio コマンドプロンプト
の順にクリックした下さい。コマンドラインから、CD(チェンジ・ディレクトリー)を利用することによってc.cppを保存したフォルダにチェンジしてください。
そして、コマンドラインから、cl/Ehsc c.cppと打ち込みリターンしましょう。


コマンドラインの説明を忘れていましたが、図の赤いアンダーラインのことをいいます。
黄色の囲みができればコンパイル(プログラムファイルをコンピュータが理解できる言葉に翻訳して、実行(エクゼ)ファイルを作ること)は成功です。
コマンドラインからcと打ち込みリターンしましょう(これは実行ファイルc.cppを実行させる命令 c.cppを実行させる場合拡張子.cppは打たなくて良い。)。
と出てくるはずです。
もう一度プログラムを見てください。
#include<stdio.h>
char f(char x);

int main(void){
  char y;

  y=f(5);
  printf("yの値は%d",y);
}

char f(char x){
  char y;

  y=3*x+5;

  return(y);
}
ですから関数char f(char x)がf(x)=3*x+5と同じ働きをしていることを意味します。

関数というは、xに値を入れると値yを返してくれるものでした。
図にすると、
具体例は、です。
f(x)=3*x+5のxに5が代入され、20が計算されそれが出力されたのです。
このように、関数には関数に入れる値と出る値があります。
C++では入れる値のことを引数(ひきすう)といい、出力される値を戻り値といいます。


尚、わかりやすさを優先して引数をすべて同じ文字で表しましたが、
例えば、d.cpp

#include<stdio.h>
char f(char i);

int main(void){
  char y;

  y=f(5);
  printf("yの値は%d",y);
}

char f(char j){
  char y;

  y=3*j+5;

  return(y);
}
としても、結果は変わりません。


また、戻り値と変数名を同じにしましたが、異なっていても問題ありません。
例えば、次のようにプログラミング(e.cpp)してもよいのです。
#include<stdio.h>
char f(char i);

int main(void){
  char y;

  y=f(5);
  printf("yの値は%d",y);
}

char f(char j){
  char i;

  i=3*j+5;

  return(i);
}



では、char f(char x)のcharcharの意味を説明しましょう。
charは引数(ひきすう)の型がchar型であることを示し、
charは戻り値の型がchar型であることを示しています。

引数にしても戻り値にしてもint型、char型等いろいろありまが、
第1話で登場したvoid gakki1(void)というvoid型もあります。
void型とは値のないタイプです。
つまり、void gakki1(void)は引き渡す値である引数も、戻ってくる値である戻り値もないタイプです。
本来関数は、入力する値(引数)と出力する値(戻り値)があるのですが、
両方ともない部品を使いときもあります。
このようなときにvoid型を使うのです。

引数と戻り値はご理解できたでしょうか。

一つ語り落としたことがあります。
#include<stdio.h>
char f(char x);

int main(void){
  char y;

  y=f(5);
  printf("yの値は%d",y);
}

char f(char x){
  char y;

  y=3*x+5;

  return(y);
}
char f(char x);ようにC++では使う部品(関数)をプログラム冒頭で宣言しておく必要があります。
ただし、使う部品の中で唯一冒頭で示さなくてもいい関数があります。
おわかりですね。
mainです。これはC++のメイン関数ですから、使うことは当然なのでわざわざ冒頭で使うことを宣言しなくてもいいわけです。



第1話へ 第3話へ



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