ホーム » 2010 » 9月 » 30

日別アーカイブ: 2010年9月30日

2010年9月
« 8月   10月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

画像処理型

歯みがきロボコンを前にして、学生さんの画像処理型ロボットが少しづつ 動くようになってきました。 ブラシの部分は、学生さんが「キャタピラの部品がほしい」との話でしたが、 近所に売っている所もなかったので、私の方で歯の曲がり具合に応じて 円弧っぽく動くようなものを作ってみました。

画像処理型といっても、処理速度やアルゴリズムの都合で、画面上の数点の 明るさしか取得していないんですけどね…

1009301813_320x240.jpg

構造体の説明

プログラミング応用での後半では、構造体などの複合型とグラフィックスを説明する予定。 特に中間試験までは、構造体・共用体・列挙型といったプログラムのデータ構造の 記述のバリエーションが広がることを目標にする。

構造体の説明といっても、2年生でも一応習っている内容でもあり、 関連する情報なども交えながら解説を行う。 構造体は、COBOL(Common Business Oriented Language:商用向け言語)での、 複合データを記述する考え方から出ている。 同じように、プログラミング言語では、手続きの構造化などの発展と共に、 構造化プログラミング(Structured Programming)に発展する。 データの構造化・処理の構造化は、データに対する処理の記述から、 オブジェクト指向へと発展していく。

構造体が無かったら、プログラムが発展していくときに、面倒が増えるのかといった話題を 説明したあと、実際の文法の説明を行う。 この中で、タグ名(Person) , 要素名(name,kokugo…) といった用語を解説。

struct Person {
char  name[ 20 ] ;
int   kokugo ;
int   sansu ;
int   rika ;
} ;
struct Person saitoh ;
strcpy( saitoh.name , "Saitoh" ) ;
saitoh.kokugo = 59 ;

途中で、タグ名などで変数名と同じルールといっても通じなかったので、 変数名が [A-Za-z_][A-Za-z0-9_]* (正規表現でかくと)といったものが使用可能 であることを説明する。

複合の型の雰囲気を感じてもらうために、構造体の初期化、構造体の入れ子(nesting)、 同一構造体の一括代入などの説明を行う。

構造体の一括代入などは、ANSI-Cなどでの機能であり、K&Rだとダメ…とかいった、 話題をしたので、ちょっと脱線して、JIS規格とかK&R文法などを紹介する。