第3講 C言語の基本
第10話 戻り値について
第9話の
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
void f(int a); //aを2倍にしてその結果をコンソール画面に表示
int main(){
f(10); //社員f()に仕事を命じている
return(0); //プログラムを閉めるためのお呪い
}
void f(int a){
printf("%d\n",2*a); //2倍してその結果をコンソール画面に表示
}
を戻り値を使って書き直した例は、
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
int f(int a); //aを2倍にしてその結果を報告する社員
int main(){
printf("%d",f(10)); //社員f()に仕事を命じている
return(0); //プログラムを閉めるためのお呪い
}
int f(int a){
return(2*a); //aを2倍にしてmain()に返している
}
コピペ用添付ファイル
変数にも型があったように、
関数にも型があります。
その型とは、戻り値の型です。
何も返さない場合は、void型と言い、
返す値が整数の場合int型などと言うのです。
ところで、ただの部品=構成単位=細胞にすぎないのに、
なぜ、関数と呼ぶのでしょうか。
それは、数学の関数と全く同じ仕組みをしているからです。
数学の関数とは違うって、前に説明したのに、
今更、同じであるって反則では?
と思った方もいらっしゃるでしょうね。
関数を毛嫌いしている方もいらっしゃるでしょうが、
実は、そんなに訳のわからない概念でもないし、
重要な考え方であることが、
C言語の関数の学習を通してわかるはずです。
そして、とても魅力があるものであることも。
現代哲学の3大潮流の1つに分析哲学という分野があります。
分析哲学は、数学の関数から着想を得て、
物事を関数関係でとらえています。
哲学は、物事を根本から考える学問ですから、
関数は事象の本質に関わると考えてよいでしょう。
自然や社会の根源は、関数であると言っても決して過言ではないでしょう。
ピタゴラスは、宇宙の根源は数であると述べていますが、
それに習えば、自然や社会は関数からできているということができるでしょう。
数学の関数とはなんでしょうか。
それは、上の図のように入力された3を加工して6を出す機械だと思えばよいのです。
私の実家では、おまんじゅうを製造販売していましたが、
おまんじゅう生成機械は、あんこなどのおまんじゅうの材料を入れると、
加工しておまんじゅうを製造してくれていました。
でもなぜ関数というのでしょうか。
それは、入力側の3と出力側の6には明確な関係があるからです。
(今回は、2倍の関係です。)
両者は、関係している数ということです。
関数とは、結局関係する数です。
もし、あなたが国語は得意だけど、
数学は苦手だという方なら、
ぜひ、数学の単元を習うときに、
その単元名(関数など)の漢字からどんなことを習うのか予想するようにすると、
よいと思いますよ。
日本人が数学の成績で世界でトップクラス(かつては第1位でした)である理由の1つは、
日本語に漢字があったことであると言われています。
漢字は、数学の概念を表すのにぴったりであったのです。
漢字を用いる中国人も数学が得意です。
中国の場合日本と違って、政治的な指導者は理系出身者が多いのです。
(日本は、生涯賃金が文系の方がよいなど文系優遇社会ですが、
中国やインドは、超理系優遇社会なのです。おそらく韓国も。)
有意文字をもっていることが日本の強さです。
英語やドイツ語等には有意文字が残念ながらありません。
数学の概念が理解できないときには、
使われている漢字を手がかりにして考えるという習慣を身につけると、
国語は好きだけど、数学は嫌いということはなくなると思いますよ。
とにかく、まず漢字による解析をやってみて下さい。
コードを次のように書き直してください。
#include<stdio.h>
int f(int x);
int main(){
int x, y; //整数を入れる変数
x=3;
y=f(x);
printf("3の2倍は");
printf("%d",y);
printf("です。\n");
return(0);
}
int f(int x){
return(2*x);
}
実行画面
3の2倍は6です。
引数が
入力側の3ですし、戻り値が出力側の6に対応していることがわかります。
ですから、C言語の関数は数学の関数と全く同じ仕組みをしているのです。
でも、void型の関数は?
空も数学では重要な概念です。
0や空集合を思い浮かべて下さい。
void型は0に相当する空を返していると解釈すれば、
void型も数学の関数と同じ構造をしていることになります。
もっともvoid型の変数では、値を返すとエラーしますから、
void型を除くとC言語の関数は、数学の関数と同じ働きであるとしておきましょうか。
第9話へ 第4講第1話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ