2008年5月18日 (第60回)
- 数学の部屋 第26回(後半) 井之上先生、長水先生
math080518.mp3 - 先生紹介 環境都市工学科 江本先生 その1
SA5SX Debian インストール失敗
SA5SX がもう1台手に入れられたので、環境を設定。 同じくすぐさま Debian のインストールを試すが、 前回使った"Say goodbye to Microsoft,Now"を使うが、 インストーラが起動して、 ネットワークドライバ認識は成功するものの、DHCP 初期化に失敗する。
緊急連絡システム、越前町でも…
越前町の小学校より、元赴任先で使っていた緊急連絡システムを使いたいとの 連絡を受けて、登録作業を行い使ってもらう。
しかしながら、越前町は地域連携協定外であったため、 利用登録したのは早計との話があり、 承認関連の作業を慌てて行う…
# うーむ、こういう所は詰めの甘さだなぁ…反省…
実数データと文字列の扱い
先週の実数データの取扱いの説明のため、N進数の説明を行う。
N進数の扱い
で表現されるN進数は、
なので、
で割った 余り が最下位桁
で、 商 が
となる。
小数点のN進数データ は、
なので、小数部にNを掛けた時の 整数部 は
で、 小数部は、
となる。
実数データは近似値
よって、 というデータを2進数に直すと、
となる。このため、0.1 は近似値でしか記憶できない。
実数がからむ間違ったプログラム例
これに関連して実数がからむよくある間違いを示す。
// プログラムは無限ループで止まらないかもしれない。 // 理由:0.1を10回加えても正確に1.0にならないかもしれない。 double x ; for( x = 0.0 ; x != 1.0 ; x += 0.1 ) { // ★ x <= 1.0 で判定せよ! printf( "%f\n" , x ) ; } // 平均の小数部が正しく表示されない。 // 理由1:s/c は整数どおしの計算で小数点以下が消える。 // 理由2:s/c が整数だと、%f は実数64bitのはずだけど、 // 32bitの整数0しか渡されない。 // 結果 :ゴミが表示される。 int s = ≪合計≫ ; int c = ≪個数≫ ; printf( "%f" , s / c ) ; // ★ (double)s / (double)c と書く // sinの計算結果が全部0になる。 // 理由:th/180 は整数どおしの計算で 0 になる。 int th ; for( th = 0 ; th < 90 ; th += 5 ) { double x = sin( th / 180 * 3.141592 ) ; // ★ sin( (double)th / 180.0 * 3.141592 ) printf( "%f\n" , x ) ; }
文字列の取扱い
C言語における文字の取扱いということで、ASCIIコード表の説明と、 ‘文字’と”文字列”の違いの説明と、文字列の末尾に’\0’がついていることの説明。
日本人のプレゼン資料が海外では伝わらない…
学生さんのプレゼン資料作成時のアドバイス用にメモ。
アルゴリズムと処理速度
マージソートの処理時間のオーダ を再帰方程式で代入法により一般式の予測を示す。
これよりクイックソート と最大選択法
において、
、
であった時の、 データ10件、50件でどちらのアルゴリズムが速いのか求め、 何件以上ならどちらが速いのかを示す。
メモリの使用量
「クラスの名前と電話番号のデータベースを作りたい。あなたならどう宣言するか?」 を学生に回答してもらい、電話番号が最悪 int に納まらないとか、 クラス人数は大学の1000人クラスならどうするとか、 名前も 寿限夢 みたいな名前だったらどうする? といったような問題点を提起し、 C言語の固定長配列の問題を示す。 malloc+free の説明をするが、時間切れ…
2008年5月11日 (第59回)
- 体育祭の様子 電子情報2年片岡さん
- 数学の部屋 第26回(前半) 井之上先生、長水先生
math080511.mp3 - OB訪問コーナー 機械工学科卒業 天谷さん、岡田先生
電子情報デコレ
QRコードをテーマに…
体育祭準備の監督
今日は連休も最後に近づいたが、体育祭にて準備に忙しい学生さんで、 怪我などの緊急事態に備えた日直だった。 暑い中では、熱中症なども心配な季節だけど、今日は曇り&微妙に雨ということもあり、 無事何事もなく、終わる。