仮想関数と純粋仮想基底クラス
前々回の講義では派生と継承の説明にて、次のようなプログラムを説明した。 派生と継承の復習 // 基底クラス class Person { private: char name[ 20 ] ; int age ; publ […]
派生と継承
隠ぺい化の次のステップとして、派生・継承を説明する。 派生を使わずに書くと… 元となるデータ構造(例えばPersonが名前と年齢)でプログラムを作っていて、 途中でその特殊パターンとして、所属と学年を加えた学 […]
数値の範囲とトラブル事例
先日の数値の範囲の説明で、浮動小数点型(float,double)などについても説明を行う。 16bitコンピュータの時代… 簡単な桁あふれの事例として、古いコンピュータ16bitの時代の事例。 // int […]
隠蔽化の課題(複素数クラスを例に)
前回の隠蔽化の話を受け、実際のプログラムの例を課題に説明。 複素数クラスを(実部,虚部)で実装した後に、(絶対値,偏角)に直したら… 基本プログラム(実部と虚部) 複素数を扱うクラスを作るのであれば、基本的に […]
再帰関数の処理と再帰方程式
前回の授業で、処理速度のオーダ記法について解説し、 実際例と処理速度の問題について解説する。 後半は、再帰呼び出しの処理速度見積もりのための再帰方程式を示す。 特殊な処理時間の見積もり 前回授業の最後に検討しておくように […]
C言語の構造体からオブジェクト指向に
前回の構造体の説明から、ポインタ渡しの説明を行った後、同様のプログラムをC++で書き換えることで、classやメソッドなどの説明を行う。 構造体でオブジェクト指向もどき 例えば、名前と電話番号の構造体で処理を記述する場合 […]
関数の値渡しと、整数型の数値の範囲
丁度、講義の前に別授業の課題に取り組んでいる学生を見ていたら、 次週に説明を行おうと思っていたN進数、小数点を含む2進数であった。 丁度、「計算機構成論」の補数、「数値計算」の小数点を含む2進数の講義で、 いつもになく、 […]
変数の寿命とスコープ
先週のC言語の制御構文のシメとして、switch-case文の説明をしてから、 変数の寿命とスコープの説明を行った。 switch-case文の説明では、以下の例は期待通りの動きをしない…といった例も交えて説 […]
処理速度の分析とオーダ記法
今回は、情報処理センターの機種更新に伴うパスワード再発行やら、 授業アンケートの作業に前半の時間をとられ、そのまま演習室にて授業。 2分探索法の処理時間分析 最初に、先週説明の単純サーチ と、2重ループの最大選択法 との […]
SQLite3でデータベース
卒研でデータベースを使いたい人もいるようだけど、 MySQLとかまで完璧なのが必要なければ、SQLite を使ったほうが楽。 ただし、データ型は実質すべてtext型になるけど、簡単なアプリベースなら 支障はないはず。 & […]