ホーム » 2012 (ページ 20)

年別アーカイブ: 2012

2025年5月
 123
45678910
11121314151617
18192021222324
25262728293031

検索・リンク

オーダ記法と再帰関数

先週は、単純サーチ、最大選択法などの説明だったので、 2分探索方の説明を行い、

単純サーチ T(N) = Ta + Tb×N
最大選択法 T(N) = Ta + Tb×N + Tc×N^2
2分探索法 T(N) = Ta + Tb×log N

これらのTa,Tb,Tcは、計算機の性能に依存し、アルゴリズムの優劣判断には使えないので、 これらを記載しないオーダ記法を用い、 O(N) , O(N^2) , O(log N) のように記載する。

再帰関数

for 分による繰り返しの分析ができても、再帰処理を含む場合は、面倒になる。

以下のような再帰関数を示し、動作トレースのあと、一番簡単な fib について、 処理時間を示す。

int fact( int x ) {
if ( x == 0 )
return 1 ;
else
return x * fact( x - 1 ) ;
}
int fib( int x ) {
if ( x < 2 )
return 1 ;
else
return fib( x - 2 ) + fib( x - 1 ) ;
}

変数のスコープと寿命、数値の範囲

制御構文の説明の後として変数の説明、数値の範囲を説明。

int x=123; // 大域変数
void foo( int x ) { // 局所変数の仮引数。
x++ ;
printf( "%d" , x ) ;
}
void main() {
int a= 234;
foo( a ) ; // 235 値渡しでコピーされる。
foo( a ) ; // 235
}

関数の書き方の説明をしたけど、値渡し、ポインタ渡しの説明が不完全。 来週は、値渡し、ポインタ渡しを説明。

数値の範囲

char , short int , int , long int 、unsigned , signed といった型を説明。 数値の範囲は、他の授業で丁度やっていたので、すんなり説明が終わる。 ただし、2の補数表現の説明追加が必要かな。

職場の発注システムで、…(04/18)

  • 04/18 職場の発注システムで、プリンタトナーを発注したつもりだったけど、起票してなかった。おかげで、カスカス印刷の発注書のできあがり…. #fnct

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


2012年4月15日(第264回)

  • 新入生へのインタービュー
  • クラブ紹介 野球部

職場のSiteライセンスな…(04/13)

  • 04/13 職場のSiteライセンスなDVDでWindows7のインストール。Install DVDが起動しないと思ったら、Upgrade用だった…只今、Fullインストール用DVDを借りてきて、やり直し。(x_x; #fnct おかげで、一番遠い部署と3往復。いい運動か…

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


創造工学・実験(PHP)

創造工学の実験として、 ネットワーク系課題の取り組み者への実験テーマとして、PHPの説明を行う。

追記:実験中、ディレクトリのパーミッション変更を Samba 経由で行おうとしたけど、 Windows端末でのエクスプローラのフォルダ・プロパティに、「セキュリティ」タブが 表示されなくって、ちょっと焦る。 その場は、telnet login + chmod で対応したけど、なぜだろうと調べてみた。
なるほど、フォルダオプションの「簡易ファイルの共有を使用する」をOffにすればいいのか。5年の実験でも同じ環境を使うので、メモしておこう。

情報構造論ガイダンス

初回のガイダンスということで、この1年での授業予定などを説明する。 例年通り、「プログラムを作る場合、注意すべき点は?」を聞いてみる。 「わかりやすく/簡単に」が大多数。 「プログラムの効率」と答えるのがいたので、何の効率?と聞くと、 『処理速度」との答え。しかしながら、「メモリの使用量」が出てこない….

ということで、メモリ大量使用の高速化事例を紹介し、トレードオフ関係などを 説明した後、処理速度の見積もりの話として、単純サーチ(1重forループ)の処理時間、 最大選択法(2重forループ)の処理時間について説明する。 詳細は、昨年度と1回目と同じなので、リンクに留める。

プログラミング応用ガイダンス

3EI向けのプログラミング応用のガイダンスということで、 説明を行う。最初に、1年間の授業内容の予定や、 テストなどの評価方法、テスト過去問題のHP掲載などについて説明しておく。

授業では、2年の復習として、制御構文の説明を行う。 簡単な繰り返し構文の、実行順序トレースを下に、 文について解説を行う。

C言語の文

→式;
→while(式)文
→do 文 while(式);
→for(A;B;C)文
→if(式)文[else 文]
→{ 文 文 ... } // 複文
→;            // 空文

この他に、break,continue文、switch-case文などの 説明を行う。この際にswitch-case文でよくあるミスとして、 caseラベルに実数や文字列を記載した場合に動かない事例を示す。

オブジェクト指向ガイダンス

最初の授業ということで、ガイダンスを行う。 今年は、EI×3名,E×3名の受講となりそう。 E科については、構造体や文字列処理について、 説明の追加が必要。

最初に、オブジェクト指向の歴史ということで、 Fortranによる処理の流れ、Cobolによるデータの構造化、 Algolによる処理の構造化といった考えを最初に説明。 このあと、C言語の発生、Simulaによるオブジェクト指向の始まり、 SmalltalkによるGUIとの親和性、Cにオブジェクト指向を導入したC++、 ネットワークに応用したJavaなどを説明する。

この後で、構造体について説明を行う。 構造体宣言、要素参照、構造体の入れ子などを交えながら説明となった。

次週からは、構造体のポインタ参照と関数呼び出しを交え、 メソッド・クラスなどの基礎に説明を移す予定。

2012年4月8日(第263回)

誠市、ご縁市開催中でした。

  • 入学式について
  • 桜について
  • 5年電気電子工学科 田中さんのマラソン談義

photo120408.jpg

誠照寺さんの桜はまだつぼみです

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー