忍者ブログ
RoboCup Junior Japan Rescue Kanto OB

             2005~2013
[322]  [320]  [319]  [318]  [317]  [316]  [315]  [313]  [312]  [311]  [310
此方も一ヶ月以上経過していますね(笑)

とりあえず前回のお話は関数って何?という定義的なことを説明した、よくわからない内容でした。

今日はCにおける関数の作り方ということで書かせて頂きます。


C言語における関数というのは、所謂命令の塊のようなものです。


例えば、関数にaという数字が入ると、様々な動作をして、最終的にbという値を返す。みたいな関数もあれば

関数にcという数字が入るだけでdのような処理をする。というような関数もあります。

ロボットでいうと、前者がセンサーの値を取得する関数。後者がモーターを動かす関数等に例えられますね。

今まで普通に使っていたセンサーの値を取得する命令や、モーターを動かす命令といったものも

まぁ要するにすべて関数だと、云う訳です。

まぁそんな関数ですが、関数はいったいどうやって作ってどうやって使うのか。

これは基本的に3つのプロセスに分けて考えられます。


まずは関数の宣言。

このプログラムでは、このような関数を使いますよー、ということを最初に定義する必要があるのです。

まぁこの定義を宣言と言ったりするので関数の宣言と表記しています。


次が関数の定義

上の定義とごっちゃになりますが、此方の定義は関数そのものの定義です。

この関数はどういった関数なのか。どういう動作をするのかということを定義する関数です。

つまり、モーターの関数ならモーターを動かすのに必要な命令が、

センサーの関数ならセンサーの値取得に必要な命令がすべて詰まっているという訳です。

関数制作の上で一番の中心となっているのがこの部分でしょう。


そして最後は関数の呼び出し。

これは簡単で、関数を使いたい時に使う呼び出しです。

ROBOLABだったらあのタイルその物がそれに該当するし、NCXだったらOnFwd等の文章全てがそれに該当します。

C言語においては、これは関数名を使って呼び出すことになるので、

関数宣言や定義のところで決めることになる関数の名前はとても重要になってきます。



まぁここまで聞けばわかるでしょうが、実はROBOLABってプログラミングソフトというより、

関数の呼び出しを羅列するだけのソフトだったりするんですね。
まぁ普通はどんなソフトでもそうなんですが・・・ROBOLABは特にその傾向が・・・


だからROBOLABはあまり関数そのものを作ったりすることには適していないような作りになっています。

まぁできなくもないといえばできなくもないんですけどね。ROBOLABだと新たに関数を作るメリットは少ないかな・・・

ROBOLABは普通のプログラミングソフトとはだいぶ異なり、

ジャンプ主体になりがちなのでどっちかっていうとアセンブラに近いプログラムになるんですよね。

C言語の概念とはまた違ったものでプログラムを組む必要があるので

ROBOLABからのCの乗換は結構大変だったりします。逆にNXT-Gからの方が楽かもね。



まぁという感じで関数の組み方のお話は以上です。


といってもこれじゃなんのこっちゃかわかりゃしないので次の記事で実際に関数をC言語で作ってみようと思います。

それでは。

(^・ω・)ノ RadiumProduction in RoboCup Junior
Comments
※コメントは内容確認後に手動で公開するようにしております。反映までしばらくお待ちください。
Your Name
Title
color
URL
Comment
 

カレンダー
03 2017/04 05
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
最新CM
[09/25 ONE RoboCuper]
[11/19 big]
[11/11 お馬さん]
[08/08 うまごやぐらし!]
[04/20 匿名(にさせてw]
かうんた
らじぷろ目次
らじぷろ検索機
プロフィール
HN:
Luz
年齢:
23
性別:
男性
誕生日:
1994/02/15
職業:
大学生
趣味:
ラボ畜
自己紹介:
初めまして。Luzと申します。
某大学の情報学科に入りました。のんびりと生活を送るのが今年の夢です。
めーる
radiumproduction☆yahoo.co.jp
※☆を@に変更して下さい。
バーコード

PR

忍者ブログ 2005-2013,Powered by Radium-Luz-Lα+-Rescatar in RadiumProduction [PR]


Related Posts Plugin for WordPress, Blogger...