🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞C言語の基礎事項の解説は以上となります。いかがでしたか? 😊ニコニコ       🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞

ちょっとウォーミングアップ たくさんの引数を持つ関数を考察してみる

ソーラー「さてっと、💖 どっこから


 シューティングゲーム作製にとりかかろっかな~~~


むふふふ😊


なんか どきどきわくわくするね。」


アレサ 「そうですね


いきなり とりかかっても


それは楽しくてよいのですが


じっくり楽しめるよう


シューティングゲーム作製にあたり ちょっと ウォーミングアップから


はじめてみられませんか?」


ソーラー 「ウォーミングアップ? 僕を暖める計画なのかな?」


アレサ 「いきなり シューティングゲームのプログラムをみると


”は”っと・・・」


ソーラー「きゃっと😊・・・」


アレサ 「みゅ~🐈」


ソーラー「みゅう🐁」


アレサ「みゅ~~🐈」


ソーラー「みゅう みゅう🐁」


アレサ「と、なるような


一見すると 理解できにくい記述が多々みられるかもしれないですの」


ソーラー 「それも、そうだね。


僕を暖めてもしょうがない計画だよね?」


アレサ 「それらの理解できにくい記述も


簡単な命令文の組み合わせなので 


実は 難しくはありませんの


そこで そのようなプログラムをみても 普通に理解できるように


ここで練習していこうとおもいますの? ソーラーさん」


ソーラー「おっつK~~~(´▽`*)😝 こい、こ~い


どど~んと、こ~い、どんな練習になるのかな?なんか面白そうだね。」


アレサ「もう ソーラーさん お元気ですね。


では まず


たくさんの変数を引数にもつ関数からはじめてみたいと想いますの」


ソーラー「たくさんの変数を引数にもつ関数?


確かprintf関数もたくさんの引数をもつことができたかな・・・



#include<stdio.h>

int main(void){

int a=10;

int b=20;

int c=30;

printf("%d番のかたはこちら,%d番のかたはこちら,%d番のかたはこちらです。",a,b,c);

return 0;

}

コンパイル結果

10番のかたはこちら,20番のかたはこちら,30番のかたはこちらです。


ソーラー「このプログラム内のprintf関数


printf("%d番のかたはこちら,%d番のかたはこちら,%d番のかたはこちらです。",a,b,c);


は3つの引数として 変数 a,b,cをもっているよね。」


アレサ 「はい そして


printf関数は 


いくらでもたくさんの引数をとることができますの」


ソーラー 「10個の変数a,b,c,d,e,f,g,h,i,jを引数に持つprintf関数を


1つ 作製してみると・・・


printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,",a,b,c,d,e,f,g,h,i,j);

こんな感じだよね。


このprintf関数を プログラム内で使用すると


#include<stdio.h>

int main(void){

int a=10;

int b=20;

int c=30;

int d=40;

int e=50;

int f=60;

int g=70;

int h=80;

int i=90;

int j=100;

printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",a,b,c,d,e,f,g,h,i,j);

return 0;

}

コンパイル結果

10,20,30,40,50,60,70,80,90,100


こんなコンパイル結果になる


う~んん


いきなり


printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",a,b,c,d,e,f,g,h,i,j);


がプログラム内にかかれていたら


おどろくかな~~😝


いや~ それほどでもないかな(*´▽`*)~~~」


アレサ「このようにprintf関数が10個の変数をもっていたとしても


みなさん さほど 難しさは感じられないのではないですか(´▽`*)」


ソーラー「まあ、それもそうだよね


ふつうに 10個の変数に格納されている数値を


10個%d出力してるだけだもんね」


アレサ「そうですもの。


では ソーラーさん いきなりですが


次のような関数があらわれたら どうおもわれますか


🍓でろでろり~ん🍓          


       


       Newmadeprintf(a.b,c,d,e,f,g,h,i,j,)   


                         

🍓でろでろり~ん🍓 



ソーラー 「な、なにぃ!


いきなりボケられたああ  おおっ おおお


あうぅ


N・・・Newmadeprintf・・・?


は・・はぁぁ・・


Newmade・・・ printf・・・?


新しくつくられた・・・ printf ・・・ってことかな?


自作関数なのかな? 自作なの・・・?


そ、それはおいといて


し、しかし その右隣の( )内にある引数


a,b,c,d,e,f,g,h,i,j・・・・・?


これはいったいどういうことなのか・・・?


なんで10個も引数が・・・


まてよ・・・・?????


(a.b,c,d,e,f,g,h,i,j,)


この表現・・・・・・・


これは・・・?


普通のprintf関数では


printf(”%d,%d",a,b)なんて表現があったけど???


今回は%dがない・・・」


アレサ「 ソーラーさん どうおもわれました(#^.^#)」   


ソーラー 「はいっ なんかもう・・・やばい感じがします。


引数が2つで Newmadeprintf(a.b)でもちょっと・・・


??

でも

Newmadeprintf(a)


だったら簡単なのかな・・・?」


アレサ「もしプログラム内に


Newmadeprintf(a.b,c,d,e,f,g,h,i,j,);だけでなく


Scorecount(speed,hitshot,time,selecteditem);


Graphicrate(pc-type,os-type,window,size);


Soundrate(pc-type,os-type,Soundboard-type);


Display(file1.no,file2.no,file3.no);


などの みたこともないような(´▽`)関数が


大量のif文やfor文とともに(笑)いきなりあらわれたなら・・・」


ソーラー

「ちょっ、ちょっと~~~😝」


アレサ「 くす Newmadeprintf(a.b,c,d,e,f,g,h,i,j,)のような表記は


実際のプログラムではたくさんでてきますの。


ソーラーさんにみてもらいたくて


いきなり 🍓でろり~ん🍓と


Newmadeprintf(a.b,c,d,e,f,g,h,i,j,)を登場させましたの


ですが 難しいことはありません。


ソーラーさんの予想どおり


Newmadeprintf(a.b,c,d,e,f,g,h,i,j,) は自作関数となりますの。


ですから


この自作関数を定義する命令文を参照しないと


この自作関数が10個の引数をもちいて 


どのような働きをするかは分からないですの


そして


Newmadeprintf(a.b)や

Morinaga(sweet,milk,bitter)

Amazon( TV,Keybord,PC,HDdisk, mouse)

Newmadeprintf(a.b,c,d,e,f,g,h,i,j,)


(ここでNewmadeprintf,Morinaga,Amazonは自作関数となります。

変数名はa,bに限らずsweetのような単語でもよかったのですね。)


などのような


たくさんの引数を変数にもつ自作関数を一緒に考察してまいりましょう。


ね、ソーラーさん(*^-^*)」


ソーラー「おてやわらかに たのむよ~~~んヽ(^o^)丿」







  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます