ホーム » 2009 » 5月

月別アーカイブ: 5月 2009

2009年5月
« 4月   6月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

最近の投稿(電子情報)

アーカイブ

カテゴリー

2009年5月31日 (第114回)

  • 英語の囃子 第10回 吉田先生、電子情報4年丸山さん
    eng090531.mp3
  • 福井大学大学祭会場から生電話 高専ライブ特派員 山本さん 

歯科健康フェアで工作教室

6月4日虫歯の日を前に、歯科健康フェアの会、場ににて「歯みがきロボット工作教室」を 行ってきました。午前中に2家族の工作を終え安心していたら、途中参加の2名が加わり、 時間内に工作を終えようと、アシスタントの学生さんも協力しながらの工作教室となりました。 無事に完成しましたが、参加者数は少なかったものの予想外に疲れました。

0905311005_240x320.jpg

派生クラスの説明

先週の問題提起をうけて、その解決手段でもある派生クラスについて説明する。

// 基本となるクラス
//        ⇒ "基底クラス" ("親クラス"と呼ぶ場合もある)
class Person {
private:
char name[20] ;
int  age ;
public:
Person( char s[] , int a ) {
strcpy( name , s ) ;
age = a ;
}
void print() {
printf( "name=%s , age=%d\n" , name , age ) ;
}
} ;
// Personのデータにbukaをちょっとだけ加えたクラス
//        ⇒ 派生クラス(導出クラスと呼ぶ場合もある。)
class Joshi : public Person {
private:
Person* buka ;
public:
// 上司のデータ構造のコンストラクタ
Joshi( char s[] , int a , Person* b )
: Person( s , a ) , // 上司の名前と年齢を初期化
buka( b )        // 部下の情報を保存
{}
void print() {
Person::print() ;	// Joshiの名前と年齢を
// Personのデータとして表示
buka->print() ;	// 部下の情報を表示
}
} ;
int main() {
Person saitoh( "T-Saitoh" , 44 ) ;
saitoh.print() ;
Joshi	 ashida( "Ashida Noboru" , 55 , &saitoh ) ;
ashida.print() ;
// 上司の情報と部下の情報がペアで表示される。
// テーブルという配列に、saitohとashidaを登録。
// table[]は、「Personへのポインタ」の配列。
Person* table[2] ;
table[0] = &saitoh ;
table[1] = &ashida ;
// table[]に格納された、saitohとashidaを表示する。
for( int i = 0 ; i < 2 ; i++ )
table[i]->print() ;
// ただし、table[1] に代入する時点で、Joshi は Person に
// 降格させられているので、部下の情報は表示されない。
}

プロジェクタ&エディタそのままで

いつもは、ホワイトボードにコードを書きながら説明を行っているが、 今日はEmacsを24ポイント表示にして、直接コードを入力しながらの説明を行った。 すぐにプログラムを実行した結果を見せながらだったので、ある意味便利。 しかしながら、継承の説明の前に、Joshi::print() を書いたコードを示し、 説明の順序を間違えた点で反省。

プロジェクタの説明では、エディタでスクロール移動をしすぎると、どこを見るべきか 追従できずに不満がでるだろうと、注意しながら…と思っていたが、 やっぱり画面移動が激しくなってしまった。 試験的に、プロジェクタを使ってみたけど、あまり巧い使い方ではなかったと反省。 「学生さんからは、この資料印刷して…」と頼まれたけど、 『そのまま日記にあげておく…』と説明する。

2009年5月24日 (第113回)

  • バララット大学留学交換留学報告会 前半
  • F-レックスの福井仕事塾のお知らせ F-レックスのサイトは こちら
  • ゲスト F-レックス学生チーム 木下さん、三田村さん

photo090524.jpg

メモ:LEGO MindStorm NXT に拡張インタフェース

MindStorm NXT に自作のハードウェアを接続するためのノウハウ?

NXTにLEDをつなげる回路をそのまま使って、フォトカプラにつなげてやれば 自作モータも簡単にまわすことができるだろう。 また、通常のタッチセンサーであれば、1つのポートにスイッチ1つが基本。 だけれども、自作のタッチセンサーを接続させる回路の例をみると、 単純にアナログセンサーに接続されているだけみたい。 リンク先の記事では、抵抗値の違うスイッチを並列接続することで、 2つのスイッチを確認する方法が記載されている。

クソゲーは大体こういう流れでプロジェクトが進む

「ゲームプログラマ」を夢見る学生さんの夢をつぶすのか… といった問題もあるが、やっぱりゲーム会社なんて、ひどい環境はやっぱりひどい。 ということで、知り合いより教えてもらったページを見てみましょう。

継承の概念の必要性

オブジェクト指向プログラミングの授業にて、 先週は隠蔽化などの基本についての演習を行っていて、 初めてのC++による戸惑いもあってレポート完成に 至るのは困難な様子であった。 そこで、今日の授業では、次の継承などの概念が 必要とされる問題点を解説し、後半を先週からの引き続きの演習とした。

継承が必要とされる状況として、GUIプログラミングでの、 共通部分がある癖に、拡張部分が発生すると別なデータ構造となる。 古いGUIプログラミングでは、型IDに応じた分岐処理の 煩雑さが発生することを説明する。

異なる型による問題点の別例として、データの並び替えにおける、 アルゴリズムは同じなのに、異なる型に応じて同じ処理を 何度も書くことの煩雑さを紹介する。

新型インフルエンザの対応

一昨日の夕方、全担任を集めての学校の対応の 説明があった。私自身は別用があったが別途話を聞いて、 下記のような学校の示した対応を行っている。

  • 関西方面に出かけた学生の動向確認。
  • 当面、発熱による欠席などの学生の状況を、担任が毎朝確認&報告。
  • 学生に、関西方面への移動自粛および移動の際は担任などへの連絡を行う。
  • 5/20午前を短縮授業とし、1限目最初に20分のショートホームルームを行い、 上記の対応を説明する。
  • 午後の特活の時間に、医師による予防対策の校内放送を行う。(放送のミスがあり校内放送は後日になった)
  • 学生玄関にアルコール消毒、トイレに薬用石鹸の設置。

創造工学・テーマ概要書作成

創造工学演習の授業において、開発するテーマの概要書
(プロコン応募時の予選応募書類を兼ねる)
を作成する。来週5/26を、プロコン学内選抜の締め切りと
しているため、来週までにプロコン応募書類書式に沿った
書類を作成してもらい、来週は書類添削および、実際の
開発を始めてもらう予定。

N進数変換(atoi,itoa相当)

先週までのN進数変換、データ型の範囲、文字列の扱いの説明が終わったので、 その応用ネタで、定番のN進数文字列の変換のプログラムを示し、 そのプログラムを2進数、8進数、16進数に変更する内容を、説明&実習で行う。

この課題をやると例年なんだけど、「int型って何進数ですか?」と質問される。 「あえて言うなら2進数だけど、数値で覚えているだけで、 表示するときに%d,%o,%xなりで、都合のよい表示のしかたをするだけ..」と 説明しても、やはり???な様子。 自分で、色々な数値で表示してみるなりをやってみないと、解らないんだけどね。 まずは、色々テストすべし!!!。

そりゃ、昔々のCOBOLなら、"PIC 99999" あたりで宣言して、10進5桁とか 扱ってりゃ、話は別だけど…