様々なメモリ確保
前回の授業で説明していたような、必要に応じて確保するメモリは、動的メモリと呼ばれる。 動的メモリも、局所変数やalloca()を用いたスタック領域と、malloc()とfree()を使うヒープメモリ領域に分類される。 s […]
D/A変換回路とA/D変換回路
小型コンピュータを使った制御では、外部回路に指定した電圧を出力(D/A変換)したり、外部の電圧を入力(A/D変換)したりすることが多い。以下にその為の回路と動作について説明する。 D/A変換回路 ラダー抵抗回路によるD/ […]
入出力と変数・レポートNo.2
以下のような、位相が 0°,15°,30°,45° ずれた sin(x) のグラフを描くためのプログラムを作りたい。 Excel で式入力すりゃいいじゃん…というのはナシ。 0 =A1+15 =B1+15 & […]
mallocとfree
前回の講義での、「長いかもしれない名前」を覚える処理は、最悪の場合をどう扱うかでメモリのムダが発生する。 ここで、前回講義で説明した、大きな配列を少しづつ分けて使う処理を考える。 大きな配列を少しづつ貸し出す処理 cha […]
入出力リダイレクト
プログラムの動作を確認する場合、指定された値を使って計算したり、その結果を他のプログラムで使いたい場合が多い。そこで、入出リダイレクトについて説明する。 入力リダイレクト 以下に上げるような Excel のデータで平均を […]
実数の扱い・レポート-No.1
プログラムの制御構造と実数の取扱いの確認として、以下のレポートを次回講義までに提出せよ。 No.1-1 制御構造 以下の3つ(No.1-1-1,No.1-1-2,No1-1-3)の問題から、No.1-1-「(自分の出席番 […]
実数の注意点・回答編
回答がすぐに見えないように、別記事に分ける 数値の精度に注意 // case-1 ---- プログラムが止まらない #define PI 3.1415926535 int main() { double th , y ; […]
メモリを効率よく使うには
メモリ利用の効率 次にメモリの利用効率の話について解説する。 例えば、1クラスの名前のデータを覚えるなら、以下のような宣言が一般的であろう。 #define MEMBER_SIZE 50 #define NAME_LEN […]
複素数とクラス・隠蔽化の演習
コンストラクタやメソッドの書き方 前回のプログラムを、もう少しC++のオブジェクト指向っぽい書き方を導入してみる。この際に、分かりやすく記述するため、行数が長くなってきた時のための処理を考慮して、記述してみる。 #inc […]
マージソートのオーダー
マージソートの分析 マージソートは、与えられたデータを2分割し、 その2つの山をそれぞれマージソートを行う。 この結果の2つの山の頂上から、大きい方を取り出す…という処理を繰り返すことで、 ソートを行う。 こ […]