情報構造論の追試のための解答例
情報構造論の成績不振者のための追試を、8/9(木) 15:30 より 4EI 教室で実施します。 インターンシップなどで当日参加困難な場合は、別日に実施しますので、連絡してください。 テスト問題の解答および解説を、以下に […]
局所変数配列をreturn
情報構造論の前期期末試験で、局所変数返しの解答が多かったので、メモ。 JavaScript でプログラムを書いていると、動くネタだけど、C言語では初心者がよく間違って書いてしまう定番であり、それなりに動いたりするから、誤 […]
集合とリスト処理
リスト構造は、必要に応じてメモリを確保するデータ構造であり、データ件数に依存しないプログラム が記述できる。その応用として、集合処理を考えてみる。 2進数を用いた集合計算 リストによる集合の前に、もっと簡単な集合処理を考 […]
スタックと待ち行列
計算処理中に一時的なデータの保存として、stackとqueueがよく利用されるが、それを配列を使って記述したり、任意の大きさにできるリストを用いて記述する。 # 授業は、前回の演習時間が不十分だったので、前半講義、後半演 […]
リスト追加処理
最初のリスト生成の説明では、補助関数 cons を用いて、直接リストを生成していた。 しかし、実際にはデータを入力しながらの処理となるであろう。 最も単純なリスト挿入 struct List* top = NULL ; […]
リスト構造でのプログラミング
前回説明した、リスト構造について簡単なプログラム作成を通して、プログラミングに慣れてみよう。 簡単なリスト処理の例 // 全要素を表示する関数 void print( struct List* p ) { for( ; […]
リスト構造について
データ処理において、配列は基本的データ構造だが、動的メモリ確保の説明で述べたように、基本の配列では大きさを変更することができない。これ以外にも、配列は途中にデータを挿入・削除を行う場合、の処理時間を伴う。以下にその問題点 […]
前期中間テストの答案返却
前期中間試験の返却と解答の解説を行う。 今年の学生は、3年で私がプログラミング応用を担当していないので、私が例年3年に出題していた以下のような問題が苦手だろうということで、出題した問題。ポインタと構造体と配列が絡む問題は […]
様々なメモリ確保
前回の授業で説明していたような、必要に応じて確保するメモリは、動的メモリと呼ばれる。 動的メモリも、局所変数やalloca()を用いたスタック領域と、malloc()とfree()を使うヒープメモリ領域に分類される。 s […]
mallocとfree
前回の講義での、「長いかもしれない名前」を覚える処理は、最悪の場合をどう扱うかでメモリのムダが発生する。 ここで、前回講義で説明した、大きな配列を少しづつ分けて使う処理を考える。 大きな配列を少しづつ貸し出す処理 cha […]