ホーム » 2012 » 9月

月別アーカイブ: 9月 2012

2012年9月
« 8月   10月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

最近の投稿(電子情報)

アーカイブ

カテゴリー

2012年9月30日(第288回)

  • 越前市中学生ロボコンについて
  • 防災訓練について
  • キャンパスリサーチについて

担当:前田勝(3EI)、松島(1C)、山野(1C)、西(教員)

ビニールハウス太陽光追尾制御

福井県機械工業会青年会との共同開発の、ビニールハウス制御、太陽光追尾型太陽光発電システム完成。

太陽光追尾型太陽電池パネル

ローテータを制御して、1時間毎に太陽の方向に太陽電池パネルの方向を変えてくれます。

1209300900_640x480.JPG

ビニールハウス制御システム

機械工業会青年部の方が作ってくれた、頑丈なビニールハウス。 XBeeによる無線通信で、温度センサー部と、空調部が連動して、30.5℃を超えると、 ビニールハウス内の遮光カーテンと、DCファンの空調により、ハウス内の温度を下げます。

1209300900_640x480.jpeg

データベース/ガイダンス

データベースの授業の1回目として、ガイダンスを行う。 授業で取り扱う内容などのシラバスについて説明い授業開始。

最近のWebシステムでの3段スキーマ・アーキテクチャなどを交えながら、 データベースの使われ方などの説明の後、データベースを使わなかったら どういった処理が大変で、データベースが如何に便利かを説明する。

詳細は、例年同じなので、前年度へのリンクを示す。

2分探索法と2分木

後期に入ったということで、中間試験までと期末試験までの予定を 簡単に説明した後で、2分木の説明を行う。

2分木

比較として、最初に配列での高速なデータ検索として、 2分探索法について説明し、データ検索が O(log(N))で表せること、 データの追加の処理などは、配列で実装すれば、O(N)となり、 あまり高速ではないことを説明する。

一方、リスト構造は、シーケンシャルアクセスしかできないから、 中央値を取り出すのには、O(N)の時間を要するため、 2分探索法が出来ないことを説明する。

そこで、2分木のデータ例を図示し、目的のデータを探すのに 要する比較回数を検討してもらう。これにより、 2分木のピラミッド構造の段数が、データ検索の際のループ回数である ことを説明し、段数 m と、データ件数 2m = N より、 O(log(N))などの説明を行う。

structd Tree {
int  data ;
struct Tree *left ;
struct Tree *right ;
} ;
struct Tree* tcons( int x , struct Tree*l , struct Tree*r )
{
struct Tree* n ;
n = (struct Tree*)malloc( sizeof( struct Tree ) ) ;
if ( n != NULL ) {
n->data = x ;
n->left = l ;
n->right = r ;
}
return n ;
}
struct Tree* top = // 静的にデータを生成
tcons( 50 ,
tcons( 75 , NULL , NULL ) ,
tcons( 25 , NULL , NULL ) ) ;

例題

2分木データ挿入処理のプログラムは複雑になりそうだし、 いきなりポインタのポインタでは、混乱をすると思われるので、 簡単に検索、データ件数カウントなどの例題を示す。

int  find( struct Tree* p , int key )
{
while( p != NULL ) {
if ( p->data == key )
return 1 ;
else if ( p->data > key )
p = p->left ;
else
p = p->right ;
}
return 0 ;  // 見つからない
}
int count( struct Tree* p )
{   if ( p == NULL )
return 0 ;
else
return 1 + count( p->left ) + count( p->right ) ;
}

構造体の説明

後期に入って1回目の授業ということで、簡単に後期の授業の予定 (中間試験まで構造体、以降グラッフィック)といった点を伝えてからの、 説明。 構造体も2年の最後にやっている様ではあるが、 学生も「まだよく解っていない…」とのことで、 あらためて説明を行う。

構造体

最初の説明として、定番の「名前と国語,算数,理科の成績で、クラスの データを扱う…」というネタで、構造体を使わずに記載すると、どうなるか? 途中で、扱うデータ件数が変更になったら、どうするか? 複数クラスのデータを扱うようになったらどうするか? といった変更について、説明を行う。

char name[ 50 ][ 20 ] ;
int  kokugo[ 50 ] ;
int  sansu[ 50 ] ;
int  rika[ 50 ] ;

人数が50と、マジックナンバーのまま。もし、1人分の名前の長さの20が 50であったら、50人クラス→100人との変更要求があれば、1人分の名前の 長さも変更してしまうミスがあるかもしれない。

他のクラスのデータも扱うようになったら?(例:電気科のデータも…)

char e_name[ 50 ][ 20 ] ;
int  e_kokugo[ 50 ] ;
int  e_sansu[ 50 ] ;
int  e_rika[ 50 ] ;

科目名が sansu → sugaku なら、e_sansu → e_sugaku を忘れるかも。 一番の問題は、name,…の入力処理と、e_name,…の入力処理を、 共通化できない。

構造体を使えば、

struct Student {
char  name[ 20 ] ;
int   kokugo ;
int   sansu ;
int   rika
} ;
struct Student saitoh = { "saitoh" , 90,92,96 } ;
struct Student ei[ 50 ] ; // EI学生
struct Student ee[ 50 ] ; // 電気学生...

構造体の入れ子

説明の中で、構造体の要素参照や、初期化を説明した後、 構造体の入れ子を説明する。 その前に、処理の入れ子として、{} による処理の複文の中に、 さらに{}のブロックがあるのも、処理の入れ子として説明。

struct Birthday {
int  month ;
int  day ;
} ;
struct Student {
char    name[ 20 ] ;
struct Birthday
bday
int     kokugo ;
int     sansu ;
} ;

やばかった…職場のネッ…(09/25)

  • 09/25 やばかった…職場のネットワークの、ルータやAPのパスワード、微妙に変更したの忘れて思い出すのに手間取り、焦った… #fnct

この記事は、twitter の @TohruSaitohに掲載した #fnct タグ付き記事を、まとめたものです。


第6回歯みがきロボットコンテストに参加

第6回目となった福井県歯科医師会主催の歯みがきロボットコンテストですが、 運営や審判での協力と、4EI学生が選手として参加しました。

1209241226_4000x3000.jpg

なお、このコンテストの模様は、10/7(Sun) 16:55 より放送を予定しています。

4EI学生も参加

この大会には、4年電子情報から、 リモコン部門(一般の部)に青池君,市橋君,川原君,山口君のグループと、自律部門(一般の部)に山腰君が参加しました。残念ながら、対戦では勝ち残ることはできませんでしたが、 前期の創造工学演習で作っていた作品を改良した車体にて、頑張ってくれました。

2012年9月23日(第287回)

  • 焼き鳥の話
  • グラフアートについて
  • 「青樹」について

担当:前田勝(3EI)、松島(1C)、山野(1C)、西(教員)

2012年9月16日(第286回)

  • 敬老の日について
  • 丹南産業フェアーについて
  • 食べ物の話

担当:前田勝(3EI)、松島(1C)、山野(1C)、西(教員)

子どもの中学校のパソコン室

子どもの中学校の文化祭だったんだけど、パソコン室がのぞき見れたので、 掲示物やらを職業柄チェックするヤツ。

Apple I,][,Macintosh,iMacと、Apple寄りだな。 TK-80が記載されている割に、日本のPCの歴史紹介なら、PC-8001 の写真が無いのが寂しい。

1209151346_1024x768.jpg

主記憶・補助記憶、CPUと、ひとまずこんなもんだろ。

1209151346-3_1024x768.jpg

そういえば、最近チェーンメールって見ないな…

1209151346-2_1024x768.jpg

おぉ、予想していたとはいえ、Windows Xp そろそろ7にしないとな…

1209151346-1_1024x768.jpg