-
プログラムの4つの特性
リロケータブル(再配置可能)・リユーザブル(再使用可能)・リエントラント(再入可能)・リカーシブ(再帰的)
-
リロケータブル
プログラムを主記憶上のどこに配置しても実行可能
-
リユーザブル
主記憶上に読み込まれたプログラムはそれ以降は再ロードしなくても繰り返し利用可能
-
リエントラント
複数のタスクからの呼び出しに対して並行して実行可能
-
リカーシブ
プログラム実行中に自分自身を呼び出すことができる
-
リスト
データを数珠つなぎで管理するもの
-
キュー
先入先出で処理を行うデータ構造(FIFO)
-
スタック
後入先出で処理を行うデータ構造(LIFO)
-
木構造(2分木)
階層構造でデータを保持する方法
-
完全2分木
根/節が全て二つの子を持ち,かつ根から葉までの深さが等しい2分木
-
2分探索木
各節にて「左の子<親<右ノ子」が常に成り立つ2分木
-
ヒープ木
「親>子」もしくは「子>親」が常に成り立つ2分木
-
データ探索方法3つ
線形探索法・2分探索法・ハッシュ法
-
線形探索法
データを前から順番に探索していく
-
2分探索法
データが昇順または降順に並んでいる際にデータを2つに分けながら目的データを探索する方法
-
ハッシュ探索法
決められた計算式(ハッシュ関数)によってデータを計算し,その計算結果の場所を探索する
-
シノニム
データの格納場所が競合すること
-
データ整列方法(見るだけでいいよ)
基本交換法・基本選択法・基本挿入法・シェルソート・クイックソート・ヒープソート・マージソート
-
基本交換法(バブルソート)
隣り合うデータの大きさを比較し,必要に応じて入れ替えることで並び替える方法
-
基本選択法(選択ソート)
対象データの中から最大値もしくは最小値を選択して,先頭データと交換することで並び替える
-
基本挿入法(挿入ソート)
整列済み配列を用意して,未整列配列から整列済み配列の適切な位置にデータを挿入して並べる
-
シェルソート
データを一定間隔ごとに取り出し,そのデータ内で並び替えて元に戻す.次に,間隔を狭めて再度データを取り出し,並び替える.これを間隔が1になるまで繰り返す
-
クイックソート
データ内の基準値を決めて,基準値より大きいデータ/小さいデータにグループ分けしながら整列
-
ヒープソート
データを木構造で保持させてそれをヒープ木となるように並べ替える.ヒープ木となったら根を配列に戻し,同様の処理を繰り返して整列させる
-
マージソート
データが一つになるまで与えられたデータを分割し,そのデータを整列させながら元に戻す
-
プッシュ
スタックにデータを入れること
-
ポップ
スタックからデータを取り出すこと
-
プログラミング言語
コンピューターに処理を命令する際に使用する言語
-
マークアップ言語
文章の構造を記述する言語
-
低水準言語
コンピュータが理解しやすい形式で記述した言語
-
高水準言語
人間が理解できる形式で記述した言語
-
低水準言語2つ
機械語・アセンブラ言語
-
高水準言語4つ
C言語・Java・Python・JavaScript
-
マークアップ言語の例3つ
HTML・CSS・XML
-
HTML
Webページを作成するための言語.タグの定義が決まっている
-
CSS
HTMLで作成された文書に文字のフォント,大きさ,色など視覚表現をつける(マークアップ言語ではなくスタイルシート言語)
-
XML
アプリケーション間におけるデータ管理などを簡単にするための言語.利用者独自でタグを指定できる
-
言語プロセッサ
機械語へ翻訳を行うプログラム
-
原子プログラム
機械語以外で書かれたプログラムのこと
-
目的プログラム
機械語に翻訳されたプログラムのこと
-
言語プロセッサの種類2つ
インタプリタ方式・コンパイラ方式
-
インタプリタ方式とは.メリットデメリットも
1行1行読み込む.プログラムの動作をすぐに確かめられ,エラーも見つけやすいが実行速度は遅くなる
-
コンパイラ方式とは.メリットデメリットも
実行速度が速くなる.エラーが見つけにくい
-
コンパイル
コンパイラを用いて,C言語などで書かれたプログラミング言語を機械語に翻訳する
-
リンク
リンカを用いて複数の目的プログラムから1つのロードモジュールを生成する
-
ロード
ローダを用いてロードモジュールを主記憶にロードする
-
オブジェクト指向
効率よくかつ分かりやすく開発を行う開発手法
-
オブジェクト指向プログラミングの定義
プログラミングする事柄を「モノ」としてとらえ,「モノ」と「モノ」の関係性を定義することでコンピューターを動作させる
-
継承
元となるクラスで定義しているプロパティやメソッドを新しく作成したクラスに引き継ぐこと
-
カプセル化
オブジェクト内にあるプロパティ(属性)やメソッド(処理)の情報を外部化r直接書き換えられないように隠ぺいすること
-
ポリモーフィズム
オーバーライドすることで,同じ命令をしても各クラスで異なる処理を行うこと
-
オーバーライド
親クラスのメソッドを子クラスで上書きすること
-
汎化と特化
下位クラスの共通部分を抽出して上位クラスを定義すること(その逆が特化)
-
集約と分解
下位クラスが集まって,上位クラスが構成されていること
-
UML
Unifiled Modeling Language:オブジェクト指向のシステム開発で使用され,分析から設計,実装まで一貫して用いられるモデリング手法
-
UMLの例4つ
クラス図・シーケンス図・アクティビティ図・ユースケース図
-
クラス図
クラスの定義やクラス同士の関係を表現した図
-
シーケンス図
オブジェクト間のメッセージのやり取りを時系列で表現した図
-
アクティビティ図
処理の流れや条件分岐を表した図
-
シーケンス図とアクティビティ図の違い
シーケンス図:オブジェクト間のやり取りに注視.アクティビティ図:一連の処理フローに注視
-
ユースケース図
ユーザー視点で「このシステムではこんなことができる」という要件を表した図
-
スーパークラスとサブクラス間にはどんな関係が成り立つのか
汎化ー特化
-