実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB:http://robot-programming.jp/ 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎 E-mail:support@robot-programming.jp.

Slides:



Advertisements
Similar presentations
知能情報工学演習 I 第 12 回( C 言語第6 回) 課題の回答 岩村雅一
Advertisements

第 11 章 関数について 11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 数学関数の自作.
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB : 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎 :
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB : 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎 :
2001年11月更新 2章 Windowプログラムの構成 Windowsプログラムおよび       PiasTkプログラムの基本構造.
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
~手続き指向からオブジェクト指向へ(Ⅰ)~
第10回関数2 (関数の利用と変数のスコープ).
プログラミング演習(2組) 第12回
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
演習問題の答え #include #include #define NUM 5 typedef struct { // 構造体の定義 float shincho; // 身長 float taiju; // 体重 } shintai; void hyouji(shintai.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
プログラミング2 関数
情報工学演習I 第12回 C++の演習4(インライン展開).
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
関数の定義.
第10回関数 Ⅱ (ローカル変数とスコープ).
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
プログラミング演習I 2003年6月25日(第10回) 木村巌.
アルゴリズムとデータ構造 補足資料5-2 「サンプルプログラムsetop.c」
知能情報工学演習I 第12回(後半第6回) 課題の回答
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
高度プログラミング演習 (08).
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
関数への道.
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB: 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB: 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎
演習07-0 “Hello\n” “World!\n”と
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB: 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎
プログラミング 3 2 次元配列.
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB: 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
第13回 ポインタ 1 1.
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 11.5 関数引数
第5回 プログラミングⅡ 第5回
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
extern の意味 (C プログラミング演習,Visual Studio 2019 対応)
演習00-0 “Hello\n” “World!\n”と
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
フレンド関数とフレンド演算子.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
演算子のオーバーロード.
知能情報工学演習I 第12回( C言語第6回) 課題の回答
第12章 乱数という業の深い存在 ~ランダムな値・他~
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
Cプログラミング演習資料.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
第10回 関数と再帰.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
専門教育入門セミナー 2016/10/31.
値渡しと参照渡しについて.
第12章 ランダム関数.
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
高度プログラミング演習 (10).
プログラミング 2 静的変数.
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
Presentation transcript:

実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB:http://robot-programming.jp/ 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎 E-mail:support@robot-programming.jp

■関数化

関数化1(p.72) 関数化 呼び出し task main() { OnFwd(OUT_AC, 75); Wait(10000); OnFwd(OUT_C, 75); OnRev(OUT_A, 75); Wait(2000); Off(OUT_AC); } void forward() { OnFwd(OUT_AC, 75); Wait(10000); } void turn_right() { OnFwd(OUT_C, 75); OnRev(OUT_A, 75); Wait(2000); task main() { forward(); turn_right(); Off(OUT_AC); 呼び出し

関数化2 void forward() { OnFwd(OUT_AC, 75); Wait(5000); } void turn_right() { OnFwd(OUT_C, 75); OnRev(OUT_A, 75); Wait(2000); task main() { forward(); turn_right(); Off(OUT_AC); void forward(int time) { OnFwd(OUT_AC, 75); Wait(time); } void turn_right(int time) { OnFwd(OUT_C, 75); OnRev(OUT_A, 75); task main() { forward(5000); turn_right(2000); Off(OUT_AC);

引数を持つ関数 関数の書式:void 関数名(引数){ } 引数は関数内のみ有効

一周するには? 回転 回転  前進  前進  前進 回転 回転  前進

関数を利用すると記述するプログラムが読みやすくなる 1周するプログラム void forward(int time) { OnFwd(OUT_AC, 75); Wait(time); } void turn_right(int time) { OnFwd(OUT_A, 75); OnRev(OUT_C, 75); task main() { int i; for(i=1; i<=4; i++){ forward(5000); turn_right(500); 関数を利用すると記述するプログラムが読みやすくなる

時間を調整するには、TURN90の値を変るだけで全てに反映 #defineによる定義 → #define FWD 5000 #define TURN90 500 void forward(int time) { OnFwd(OUT_AC, 75); Wait(time); } void turn_right(int time) { OnFwd(OUT_A, 75); OnRev(OUT_C, 75); task main() { int i; for(i=1; i<=4; i++){ forward(FWD); turn_right(TURN90); } → 時間を調整するには、TURN90の値を変るだけで全てに反映