今回は、ニコニコ動画の(nm6415611)にて関数の勉強をしております
一通り動画を目に通して実際に取り組んでみたところ、関数以前に分からない点がありましたので質問させていただきます
プログラムはこのようなものでした
/*tasizan.c*/
#include<stdio.h>
int tasizan(int x,int y);
int main(void){
int a,b,add;
scanf("%d%d",&a,&b);
add=tasizan(a,b);
printf("add=%d\n",add);
return 0;
}
int tasizan(int x,int y){
int answer;
answer=x+y;
return answer;
}
表現の方法の違いなのかもしれないのですが。add=tasizan(a,b);
これがどういった役割を果たしているのかが分かりません
scanfで二つの整数を入力してそれぞれを a と b に代入、その後の行です
add=tasizan(足し算)とあるので
int tasizan(int x,int y){
int answer;
answer=x+y;
return answer;
この部分に関係しているのかなと憶測はつくものの理解が出来ませんこの動画での関数についての解説もまったくといってよいほど理解が出来ていないのですが、それについては今もう少し勉強してみます
そもそもこの関数の役割が理解できません
動画では ミク、ルカの二人のキャラを利用して大まかな解説がされています
このような内容です
ミクを「取りまとめ役」、ルカを「足し算担当」というように役割を分担した例を考えます
まず、ミクが、「どんな数を足し算してほしいのか」という情報をルカに伝達します
ルカが受け取った数を「加算処理」します
答えをだします
出した答えをミクに伝えます
それをミクが受け取ったらやり取りは終了です
動画では図や画像で説明されているので、見ていただけると分かると思います
これについてですが、関数(今回の単元)を理解せずに僕が二つの入力された整数を加算処理するプログラムを書けといわれたらこのようなものを作ります。
#include<stdio.h>
int main(void){
int a,b,c;
printf("二つの整数を入力してください\n");
printf("①:");scanf("%d",&a);
printf("②:");scanf("%d",&b);
c=a+b;
printf("結果=%d\n",c);
return 0;
}
出来なかったらどうしようとか思いながらも今書いてみたプログラムです結果はきちんと表示されます
このプログラムと関数の動画のプログラムで行う処理はまったく同じに思えます。
いったい関数は何の役割を果たしているのでしょうか;
最初の論点から大分ずれてしまいました すみません
■追記
質問の途中、なぜか改行が反映されないというバグ?がおきているので、読みにくいかと思われますがお許しください;
