(79)リストの生成2011年6月29日リスト構造の生成。リストの生成と処理の部分も含めて2週分を記載。データ生成を単調に書いた例。;さすがに面倒なので、補助関数を使う。;リストを使った簡単な処理リストの末端には、これ以上データが続いていないことを表すNULLが入っている。再帰で同じ処理を書いてみる。データを入力しながらリストを生成してみる。データは入力順序と逆順に保存される。以下のように書くことができる。前期の後半はファイルについての説明を細かく行う。簡単にOSの歴史を説明。簡単にOSの意味を説明するために、簡単に歴史を紹介。ハードディスクにデータを記録するためにも、面倒なプログラムを自分で書いていた。プログラムを共通化できるようになった。OS,CPUの歴史をパソコンに限定して説明する。最初のパソコンのOSはBASICだった。共通の機能で使えるようになった。Interface(GUI)で操作しやすいMacintoshを開発する。これ以前のOSは、シングルタスク・シングルユーザが普通であった。マルチタスク機能が重要となってきた。プログラム保護機能が実装された。マルチユーザ・マルチタスク機能が普及する。ファイルを分類して保存ができるようになった。一方で、巨大なファイルであれば、PATH表現は長くて不便となる。振る舞い図と相互作用図について説明を行う。相互作用図アクティビティ図フローチャートを起源とする図で、状態変化と制御の流れ・データの流れを表現する。自分の環境にひとまずMaharaを入れてみることからやってみよう。使えるように、先頭の以下のコメントをはずす。/usr/share/maharaこのあと、http://ホスト名/mahara/にアクセス。パスワードとメールアドレスを登録して終了。先週のUMLの全体像の話に続いて、UMLの中の構造図を中心に説明を行う。配置図いかのサイトが、必要最小限かつ細かい表現方法が記載されていて便利。四角の枠の中に、クラス名、属性、メソッドを記載。属性・メソッドの前には、可視性の+:public,-:private,#:protectedの記号を書く。クラス間に何らかのつながりがあれば、関連ということで直線で結ぶ。線上には、役割や多重度(例:1..*)を記載。◇ーの矢印で接続する。コンポジションと呼ばれ、一般的に"has-a"関係となる。[パーツ]の矢印で接続する。C++あたりであれば、大抵の場合は、集約ならポインタで実装され、コンポジションなら実体で実装されるだろう。派生クラスから親クラスへの△矢印で接続を行う。オブジェクト図は、クラス図を具体的な実例で書く。クラス名には下線を書く。コンポーネント図、パッケージ図コンポーネント図は、物理的な構成要素からシステム構造を記述する。大きなプロジェクトの全体像を広い視点で見渡すような場合に有効。他のコンポーネントとのインタフェースを、ロリポップで表現。[コンポーネント]—(◯—[コンポーネント]—(◯—[...]パッケージ図は、パッケージ同士の依存関係を論理的なグルーピングで表現。具体的なデバイスや実行環境を、立方体の絵で表現。各デバイス間の関係を直線で接続して表す。まともな過去問を使えよ...2011年6月14日4EIのテスト問題の採点中。配列へのデータ挿入を出題している。過去の回答者の効率の悪いコードを真似ている人が多い。2つのコードを混ぜた回答していて、ハチャメチャ。頭の中で自分のコードをシミュレートしろよ...途中挿入だから、移動領域の重なったmoveだし、後ろ側からコピーする典型。;確認として、配列サイズ10000件で同一処理を10000回ループで時間を計測。通常後方シフト=0.281秒、効率の悪いシフト=0.534秒で、1.9倍遅い。Arduinoで動いてるんだってさ。タグ付き記事を、まとめたものです。miniOrange。