選択ソート選択ソートは、最小値の要素を選択して、先頭の要素と置き換える整列アルゴリズムで、基本選択法ともいいます。例:「1・5・7・3・9」の5枚のカードを選択ソートで昇順に並び替える。要素[1]~[5]の値を調べて、最小値を求める。1.で求めた最小値を先頭の要素と交換する。残りの要素について、1と2を繰り返す。挿入ソート挿入ソートは、前の方の整列済みの並びの途中へ、直後の要素を挿入する整列アルゴリズムで、基本挿入法ともいいます。例:「1・5・7・3・9」の5枚のカードを挿入ソートで昇順に並び替える。先頭の要素を1要素だけの整列済みの並びと見立てる。整列済みの並びの要素と、その直後の要素を比較して、バブルソートと同じ要領で並び替えを行う。最後の要素を処理するまで、2を繰り返す。マージソートマージソートは、並びを2等分しながら、分割された部分同士を併合(マージ)することによって、全体を整列させるアルゴリズムです。例:「2・7・5・3・8・1・4・6」の8枚のカードをマージソートで昇順に並び替える。並びを2等分することを、整列済みの部分並びが見つかるまで反復する。(要素が1つになれば整列済みとみなすので、反復は必ず終了する。)整列済みの部分並び同士を、整列状態を保つように併合して、1つの部分並びにする。全体が1つの部分並びになるまで、2を反復する。シェルソートシェルソートは、シェル氏によって考案された挿入ソートの改良版の整列アルゴリズムです。適当な間隔を決めて、等間隔の飛び飛びの要素で作った部分的な並びに対して挿入ソートを適用する。間隔を狭めながら、間隔が1になるまで1を繰り返す。例:「2・7・5・3・8・1・4・6」の8枚のカードをシェルソートで昇順に並び替える。挿入ソートは、元々の並びが整列状態に近いほど高速になる性質があるため、間隔を空けて部分的な並びを作って徐々に整列させることで速度の向上を図っています。クイックソートクイックソートはその名の通り、特に高速な整列アルゴリズムです。適当な基準値を定めて、その値より小さい要素を前の方に移し、その値以上の要素を後の方へ移す。分割したそれぞれのグループへ、1の処理を反復して、全てのグループに属する要素数が1になるまで繰り返す。例:「9・2・7・5・3・8・1・4・6」の9枚のカードをクイックソートで昇順に並び替える。反復する毎に、分割されたグループの数は2倍、4倍、8倍というペースで増えていくので、各グループに含まれる要素の数は急激に減っていきます。基準値と要素の値を比較する回数が急速に減っていくことが、クイックソートが特に高速である理由です。ヒープソートヒープソートは、ヒープを経由する整列アルゴリズムです。ヒープは「小さい山」という意味の言葉であり、親の値が必ず子の値以上であることを保つ二分木です。要素の並びを元にして、ヒープを構築します。子の処理には、木構造アルゴリズムの一種である、ヒープ構築アルゴリズムを用います。根に当たる要素を取り出して、並びの端へ移します。ヒープに残った要素に対して、ヒープ再構築アルゴリズムを適用します。2と3をヒープの要素がなくなるまで繰り返します。例:「2・7・5・3・1・4・6」の7枚のカードをヒープソートで降順に並び替える。二分木は木の階層ごとに、部分木の数が2倍、4倍、8倍と増えていきます。値の大小比較の回数は2つの部分木の根を比較するだけなので、ヒープソートは特に高速とされています。アルゴリズムを理解する。再帰的アルゴリズムの考え方、特徴、実現に適したデータ構造を理解する。配列などに格納されたデータの集まりから、特定のデータを探すことです。その値が見つかる場合と、見つからない場合があり、複数ある場合には最初の一つを見つければ良い場合と、全てを見つける必要がある場合があります。探索の結果も見つかったかどうかだけではなく、何番目に見つかったか、いくつあったか、という情報を帰す場合があります。線形探索法(リニアサーチ)線形探索法とは、配列の先頭から1つずつ調べてゆき、求めるデータが見つかるか、又は配列の最後まで探し終わったとき探索を終了する方法です。以下に、線形探索法の場合の流れ図を示します。ここでは、4つの数が入った配列の中から、「5」を探すものとします。表示して探索を終了、最後まで探して見つからなかった場合は、「無し」と表示して終了します。簡単にするために、配列の最後に「番兵」と呼ばれるデータを追加する方法があります。探すデータと同じ値を、配列の最後尾の次に追加しておくことで、反復の終了条件として、添字の範囲を毎回チェックする必要がなくなります。整列済みのデータの並びを二等分しながら、目的のデータを探す探索アルゴリズムです。昇順に整列済みの配列であれば、以下のような流れとなります。並び全体の中央のデータと目的のデータを比較する。目的のデータが中央のデータより小さければ、前半の部分並びにを対象にして、大きければ後半の部分並びを対象にして、1を繰り返す。最終的に部分並びの要素が1つになったら、見つからなかったことになる。要素の数が65,536個(216)であった場合、線形探索法なら、最大で65,536回、平均でも32,768回かかります。減っていき、最大でも17回で済みますので、二分探索法の方がはるかに高速なアルゴリズムです。ハッシュ表探索ハッシュ表探索法は、データの格納位置をデータの値から決めることで、目的のデータを直接得られる方法です。ハッシュ表という配列の複数の要素に、探索対象の部分並びを所属させておき、目的のデータの値に対してある種の計算を行い、一つの部分並びだけを探索対象として選択する探索アルゴリズムです。目的のデータを100で割った余りは、必ず0~99の数になります。この値を100個の要素の配列の索引として、一つの部分並びを選択することが出来ます。この例の「目的のデータを100で割った余り」といったような、目的のデータを範囲内の値に換算する関数のことを「ハッシュ関数」といいます。ハッシュ表探索では、最初の1回目の検索で多くの部分並びの中から1つを選択することで、初めの時期の検索回数を減らしています。ハッシュ関数と衝突ハッシュ関数を適用した結果、値が重複してしまうことを衝突(シノニム)といいます。ハッシュ表を使う場合、ハッシュ関数を検討する際に極力シノニムが発生しないようにすることも重要ですが、余りハッシュ表を大きくすると無駄も多いので、シノニム発生時の対処法もあわせて検討しておく必要があります。データの件数が1万件だからといって、1万件のハッシュ表を作るのでは、メモリをムダに消費してしまいます。シノニム対策としては、以下のようなパターンが主流です。ハッシュ表の隣接する要素を使う。シノニム用の領域を別途用意する。併合のアルゴリズム併合のアルゴリズムは、二つの整列済みのデータの並びを一つの整列されたデータの並びにするアルゴリズムです。二つの配列のそれぞれ先頭の要素を比較して、値の小さい要素を併合先の配列の先頭に移す。残りの配列について、それぞれの配列の最後の要素を移し終わるまで1の処理を繰り返す。再帰のアルゴリズム(リカーシブ)再帰とは、定義自身の一部にその定義が含まれるという性質です。再帰のアルゴリズムは、反復を含むアルゴリズムと似ていますが、それよりも簡潔になります。値として「1」を返す。この関数を使って、1から4までの和を計算する場合、以下のように再帰が進行していきます。4+f(3)=4+3+f(2)=4+3+2+f(1)=4+3+2+1=10再帰のアルゴリズムは、これまでに紹介した整列や探索のアルゴリズム(マージソート、クイックソート、二分探索法)でも活用されているアルゴリズムです。応用情報グラフのアルゴリズムを理解する。(木構造の場合は、結線のことを枝とも呼ぶ)これらのグラフを扱うアルゴリズムをグラフのアルゴリズムといいます。木の巡回法(再掲)木構造からデータを探して読み出すことを「木の巡回」といいます。二分木の巡回法には幅優先探索と深さ優先探索があります。階層が浅いデータを優先して検索する方法です。幅優先探索を行うと、最初に子のデータを読み出します。子のデータが検索したデータでない場合は、1階層目の節や葉のデータを左から右へと順番に読み出していきます。1階層目のデータが検索したデータでない場合は、次は2階層目と進んでいく、という方法です。深さ優先探索は、左部分木を優先して、階層が下のデータを先に読み出す方法です。順番で読み出す方法です。右の図を例にとって説明すると、最初の節である根のデータ1を読み出し、次に左部分木の節のデータ2を読み出します。その次は2階層目の左部分木のデータ3を読み出します。順番で読み出す方法です。右の図を例にとって説明すると。根から始めて2階層目の左部分木で左部分旗がなくなるので、データ1を読み出します。次に、上の階層に戻ってデータ2を読み出します。その次に2階層目の右部分木のデータ3を読み出します。順番で読み出す方法です。右の図を例にとって説明すると、根から始めて2階層目の左部分木で左部分旗がなくなるので、データ1を読み出します。次は2階層目の右部分木のデータ2を読み出します。その次は、上の階層に戻ってデータ3を読み出します。グラフのある出発点の節から終着点の節へ到達するのに、結線ごとに要する時間や距離の合計が最短である結線の並びです。この最短経路をたどることを「最短経路探索」といいます。結線ごとに要する時間や距離を総称して「コスト」といいます。例:ダイクストラのアルゴリズム出発点から各説へのコストの表は、出発点の節だけゼロとし、それ以外の節へのコストは初期値として無限大とする。出発点の節から、結線の一つをたどって、節のデータを調べる。その節へのコストの記録が、今回の経路のコストより大きいなら、今回の経路のほうが短いので、今回の経路のコストを記録し、直前の節の記号をその節に関するデータとして記録する。(その節へのコストが初期値の無限大だったのなら必ずこちらの処理)その節へのコストの記録が、今回の経路のコスト以下なら、今回の結線は最短経路に含まれないので、それ以降の処理対象から除外する印を記録する。以上の処理を、処理していない結線について反復する。すべての処理が終わったら、終着点の節から最短のコストを回答する。直前の節を次々と逆行して、出発点から終着点までの節の順序を経路として回答する。アルゴリズムを理解する。用語例:文字列照合、KMP法(クヌース・モリス・プラット法)、BM法(ボイヤ・ムーア法)文字列処理のアルゴリズム文字列処理のアルゴリズムは、一連の文字の並びを処理するアルゴリズムです。一つの文字列の後へ別の文字列を追加して、一つの文字列にします。文字列の途中に別の文字列を挿入して、一つの文字列にします。文字列の一部の文字を取り除いて、残りを一連の文字列にします。文字列の先頭の文字から、特定の文字列を一文字ずつ照合する。すべての文字が一致したら、全体の処理を終了して対象の文字列の位置を返す。対象の文字列の1文字後ろから1の処理を反復する。対象の文字列の最後を越えたら、探索失敗として終了する。ボイヤ・ムーア法(BM法)ボイヤとムーアによって考案された、高速の文字列照合アルゴリズムです。特定の文字列の後尾から前の方へ照合することと、一致しない場合には、複数の文字をスキップすることが特徴です。特定の文字列を前処理して、「特定の文字が何文字目に出現するかを表す表」「一致した文字のパターンと、その場合にスキップしていい文字数を対応付ける表」の2表を作成する。対象の文字列の先頭部分を特定の文字列の後尾から前方向へ、文字の比較をすすめる。一致したら全体の処理を終了して、対象の文字列の位置を返す。一致しなかったら、比較時に得られた情報と1で作った表を元にして、文字をスキップし、2の処理に戻る。コントロールブレイク処理、編集処理のアルゴリズムを理解する。ファイル処理のアルゴリズムファイル処理とは、入力装置や外部記憶装置から読み取ったファイルを処理することです。処理対象のデータが主記憶装置の中にないため、以下のような手順が基本となります。ファイルを開き、内容を主記憶装置の中に展開します。開いたファイルに対して、1レコードずつ所定の処理を行います。ここでいうファイルは以下の定義となります。同じフィールドを持つレコードの集まりファイルの性質として、データ件数が膨大になることがあるため、ハードディスクなどの外部記憶装置に作業ファイルを作成し、中間結果を一時退避しながら処理をすすめることもある。十分な空き容量が必要となる。ファイルの併合処理ファイルの併合処理は、二つの整列済みのレコードの並びで構成されるファイルを、一つの整列されたレコードのファイルにする処理です。ファイルA、B、Cをそれぞれ開く。ファイルA、Bを1レコードずつ読み込み、値の小さい方のレコードをファイルCに出力し、出力した方のファイルの次のレコードを読み込む。これを両ファイルの終端まで繰り返す。ファイルA、B、Cをそれぞれ閉じる。コントロールブレイク処理コントロールブレイクとは、同じキー値を持つレコード軍の切れ目のことです。コントロールブレイク処理とは、コントロールブレイクに出会ったらそのレコード群の処理を終了し、複数のレコード群の処理を反復することです。レコード群の中のレコードごとの処理の反復とあわせて、二重の反復になります。部署が同じである間、社員毎の給与を計算用変数に加算していく。部署名と計算用変数の値を中間ファイルに出力し、計算用変数0で初期化。2と3をファイルの終端まで繰り返す。ファイル終端まで来たら、部署名と計算用変数の値を中間ファイルに出力。中間ファイルの内容を処理の最終結果として書き出す。ファイルの編集処理ファイルの編集処理は、既存のファイルのデータを修正する処理です。マスターファイルM、トランザクションファイルT、新マスターファイルNを開く。ファイルMとファイルTからから1レコードずつ読み込み、キー値を比較して以下の処理を行う。これをファイル終端まで繰り返す。Tのキー値=Mのキー値なら、ファイルTのレコードをファイルNに出力し、ファイルMとファイルTの次のレコードを読み込む。(データの更新)Tのキー値>Mのキー値なら、ファイルMのレコードをファイルNに出力し、ファイルMの次のレコードを読み込む。Tのキー値<Mのキー値なら、ファイルTのレコードをファイルNに出力し、ファイルTの次のレコードを読み込む。ファイルM、ファイルT、ファイルNを閉じる。応用情報アルゴリズムは、擬似言語、流れ図、決定表(デシジョンテーブル)などを用いて表現することを理解する。アルゴリズムの設計方法を理解する。用語例:再帰、分割統治法アルゴリズム設計アルゴリズムとは、目的にたどり着くための道筋や処理の手順のことです。アルゴリズムを考える、設計する目的は、単に問題を解く方法を見つけるだけではなく、より効率的に、より速く、より簡単に問題を解くアルゴリズムを探す事が重要です。同じ結果を出すための処理であっても、そのアルゴリズムが異なると、処理にかかる時間や、必要となるメモリの容量などが異なってきます。効率の良いアルゴリズムほど、処理時間が短くなり、メモリの消費量が少なく済むものなのです。アルゴリズムの表現プログラムを設計するときには、アルゴリズムを何らかの形式で表現します。人間が用いる自然言語とプログラム言語を混合した言語です。アルゴリズムをできるだけ人間向きに自然言語で表現しつつ、反復や選択のように微妙な部分にプログラム言語を混用したりします。プログラム言語と同様にテキストエディタで描くことが出来、図形を用いた表現に比べて修正が容易なのが特徴です。分野では、以下のような簡易な図記号を混用したものを擬似言語と称しています。使われたものを紹介します。決定表(デシジョンテーブル)決定表(デシジョンテーブル)は、条件とその条件に対する処理の関係を4つの部分からなる表にして表現する技法です。問題を処理するための条件を表します。条件によって取りうる行動を表します。条件表題欄の各条件について、当てはまる場合は[Y]、当てはまらない場合は[N]と記載します。条件判断を必要としない場合は[-]と記載します。行動表題欄の各行動について、当てはまる場合に[X]と記載します。当てはまらない場合は空欄か[-]と記載します。大きなプログラムの場合、「行動」の単位で「サブルーチン」化することがよく行われています。大きな問題を小さな問題に分割して、それぞれの問題ごとに解決に集中する方法です。再帰のアルゴリズム、モジュール分割、オブジェクト指向設計などが分割統治法の具体的な例です。ソートのアルゴリズムの中でも、マージソートやクイックソートは分割統治法に基づいて設計がなされています。プログラミング作法、コーディング基準を習得し、応用する。・プログラム言語の文法の表記法を習得し、応用する。・プログラム言語とプログラミングの役割を理解する。応用情報プログラミング作法とコーディング基準の目的、効果、種類を理解する。プログラミング作法とコーディング基準を守らない場合に起こる弊害を理解する。応用情報プログラムの信頼性、保守性の観点からプログラム構造を理解する。応用情報プログラム言語で使用される代表的なデータ型を理解する。応用情報WebサーバとWebクライアントの仕組みを理解し、Webサーバ、Webクライアントにおけるプログラムの役割と作成方法、Webアプリケーションプログラムを開発する環境を理解する。応用情報プログラム言語の構文を定義するために、BNF等のメタ言語を使用することを理解する。応用情報プログラミング作法とコーディング基準の目的、効果、種類を理解する。プログラミング作法とコーディング基準を守らない場合に起こる弊害を理解する。向上プログラミングプログラミングは、コンピュータを使って実行する作業手順を、前もって作っておく作業です。プログラムとは、コンピュータ用の作業手順書を、コンピュータに分かることが出書き出したもの、といえます。人間が何かの仕事をこなすときは、まず段取りを考えて計画を立て、それに従って実際に仕事を進めます。これと同じように、コンピュータに仕事をさせるための段取りを書いたものがプログラムであり、プログラムを作成する作業がプログラミングです。コンピュータはプログラムに従って運用を行います。プログラミング作法とコーディング基準の目的・効果プログラミング作法は、プログラムを読む人にとって適切であろうと、一般的に指示された流儀のことです。対して、コーディング基準とは、チームや組織が定めたプログラムの書き方の基準です。いずれもプログラムの保守性を改善することが目的であり、読む人の労力や読み間違いを減らす効果があります。同じ処理をするプログラムであっても、書き方の流儀や個人差が発生してしまいます。C言語で「変数aに1を加算する」という処理でも、以下のように異なる書き方が可能です。1専門家の間では、前者のほうが簡潔で、読み間違いが少ないとして支持されている、というのがプログラミング作法の例です。コーディング基準は以下のような事項に関して定められることが多いです。文の書き出し位置のインデンテーション(字下げ)の指針。データ構造や制御構造の階層状態。使用を推奨しない命令。(Goto文の禁止など)インデンテーションインデンテーション(字下げ)とは、プログラムの文の書き出し位置を、何文字分か右の方へ下げることです。これは、一般的なビジネス文書でも当てはまる事柄で、文章を読む時の人間の視線が左から右、上から下と流れることを踏まえたものです。プログラムのインデンテーションは、例えば次のようにします。データ構造のネストを字下げで表す。反復や選択などの制御構造のネストを字下げで表す。ラベルよりそれ以外の部分を字下げする。字下げは半角文字4文字分ずつとする。インデンテーションの例label1:i=0;repeata=b+c;~~このような字下げは、処理には関係ない表現なので、人間にとっての読みやすさを目的として、コーディング基準で規定するのが一般的です。ネストデータ構造や制御構造の階層状態をネスト(入れ子)といいます。ネストが深すぎると人間は把握することが難しくなります。コーディング基準でネストの深さを4までに規制します。変数、モジュール、関数、ラベルなどの名前の付け方の指針です。以下に、命名基準の例を示します。元になっている業務や学術の用語と一致する名前を用いる。配列の索引には、i,j,kを用いる。カウンタにはn,mを用いる。長さを表す変数には、l,mを用いる。ポインタ変数には、p,qを用いる。合計には、sを用いる。仕様が推奨されていない命令や文のことです。goto文を禁止して、代わりに反復や選択の文で代替するほうが、読み手には読みやすくなります。応用情報プログラムの信頼性、保守性の観点からプログラム構造を理解する。一つのプログラムは、いくつかの要素で構成されます。複数の要素で構成されるプログラムの形を、プログラム構造といいます。モジュール一つのプログラムを構成する要素を「モジュール」といいます。モジュールは、メインルーチン、サブルーチン、コンパイル単位などを総称する一般的な用語です。モジュール構成にすることで、次のような効果が生まれます。人間の行っている作業の分解単位にモジュールを対応させることによって、わかりやすくなります。ATMを例に取ると、預入モジュール、引出しモジュール、残高照会モジュールといった対応をさせます。共通部分を「共通モジュール」とすることによって、プログラム全体の規模を減らすことが出来ます。分割統治法といって、モジュール単位に分割することで、モジュールごとの設計や試験、保守に集中することが出来ます。メインルーチンいくつかのモジュールで構成されるプログラムにおいて、最初に起動されるモジュールをメインルーチンといいます。「ルーチン」とは、「決められた仕事」という意味の言葉です。メインルーチンの内容は、全体の処理の流れの概要を表す役割をはたすことが多いです。サブルーチンサブルーチンは、メインルーチンや他のサブルーチンから呼び出されるモジュールです。サブルーチンは2ヶ所以上から利用する共通ルーチンにすることが出来ます。応用情報WebサーバとWebクライアントの仕組みを理解し、Webサーバ、Webクライアントにおけるプログラムの役割と作成方法、Webアプリケーションプログラムを開発する環境を理解する。APIほか)WebプログラミングWebプログラミングは、WWW(ワールドワイドウェブ)を閲覧する一環として利用するプログラムのプログラミング作業です。HTMLなどのマークアップ言語の機能や部品を用いたり、プログラム言語で書かれたモジュールを呼び出したりする形でプログラミングします。初期のWWWは、資料を世界的に共用するという、静的な表現の役割をはたすものでしたが、次第に旅行業やインターネット通販などの動的な処理をすることが出来て、現在に至っています。Webプログラミングには、閲覧者側のクライアントコンピュータ側で動作するプログラムを作ることと、提供者側のWebサーバ側で動作するプログラムを作ることがあります。具体的な例としては、各種の会員制Webサイトや通販サイト、インターネットバンキングなどがあります。スマートフォンのアプリもある種のWebプログラムと言えるでしょう。Webプログラミングにおけるサーバの役割Webプログラミングにおける、サーバの役割は次のようなものがあります。クライアントコンピュータへ送信するコンテンツの量を減らすために、大規模な処理はサーバ側で担当する。プログラム言語で書かれたモジュールをアクセスする部分をサーバ側に置く。サーバ側にあるファイルやデータベースにアクセスする部分をサーバ側に置く。その他、サーバ側のプログラムは、アクセスが集中した場合の負荷や、セキュリティなどを意識して設計・プログラミングします。Webプログラミングにおけるクライアントの役割Webプログラミングにおける、クライアントの役割は次のとおりです。HTMLなどのマークアップ言語や、小さな部品を用いてプログラミングします。閲覧者との対話の部分を担当します。・プログラム言語の制御構造を修得し、応用する。・プログラムの実行に必要な記憶域の考え方、利用法を修得し、応用する。記述方法を修得し、適用する。・C、COBOL、Java、アセンブラ言語のプログラム作成方法を修得し、適用する。・表計算ソフトの活用方法を修得し、適用する。・プログラム言語とプログラミングの役割を理解する。応用情報プログラム言語は、機械語、アセンブラ言語、高水準言語と発展してきたこと、プログラム言語の分類を理解する。代表的な手続き型言語の特徴、記述方法を理解する。代表的なオブジェクト言語指向言語の特徴、記述方法を理解する。代表的なスクリプト言語の特徴、記述方法を理解する。23271)で標準化されている、共通言語基盤の特徴、利用法を理解する。応用情報プログラム言語の基本的な制御構造、手続きと関数、逐次制御と並列制御を理解する。応用情報プログラムの実行に必要な記憶域の考え方、利用法を理解する。中心とした意味規則を理解する。行うプログラムの作成方法を修得し、適用する。ライブラリ関数の利用方法を収録し、適用する。ファイル処理を行うプログラムの作成方法を修得し、適用する。行うプログラムの作成方法を修得し、適用する。ファイル処理を行うプログラムの作成方法を修得し、適用する。行うプログラムの作成方法を修得し、適用する。クラスの宣言方法、クラスをインスタンス化して利用する方法を修得し、適用する。作成方法を修得し、適用する。基本情報コンピュータシステムCOMETIIの仕様を理解する。行うプログラムの作成方法を修得し、適用する。表を使った処理、入出力処理を行うプログラムの作成方法を修得し、適用する。スタック、およびスタックを用いたサブルーチンコールの仕組みと用法を修得し、適用する。表計算ソフトが持つ計算、集計などの機能を修得し、適用する。関数の種類、使い方を修得し、適用する。マクロの作成方法を修得し、適用する。業務処理における表計算ソフトの活用方法を修得し、適用する。応用情報プログラム言語は、機械語、アセンブラ言語、高水準言語と発展してきたこと、プログラム言語の分類を理解する。オブジェクト指向言語、スクリプト言語プログラム言語コンピュータに処理をさせるには、処理の手順を司令として与える必要があります。この指示書をプログラムといい、プログラム言語によって書かれています。以下に、代表的なプログラミング言語をいくつか紹介します。午後の問題で出題されるプログラム言語です。基本情報パソコンやワークステーションのアプリケーションソフト、デジタル家電やIoT機器など、いわゆる「組み込み系」の開発で用い要られています。C++C言語をベースとして、オブジェクト指向の概念を取り入れた言語です。UNIXやLinuxのサーバ内部のプログラムや、Windowsアプリケーションで用いられています。基本情報10進数の扱いを得意とするプログラミング言語で、金融分野などの汎用コンピュータで利用されている、事務処理用のプログラム言語です。基本情報C++をベースとして開発され、インターネット環境などで利用される言語です。「Java仮想マシン」という仕組みを使い、OSや機種といったプラットフォームの違いにかかわらず動作できるという特徴があります。BasicGUI環境でのWindowsアプリケーションソフト開発に用いられる言語です。C#主にWindowsアプリケーションソフト開発に用いられる言語です。Frameworkという、共通言語基盤(CLI)上で動作するプログラム言語です。Fortran主に科学技術系の計算処理で用いられるプログラム言語です。機械語と言語プロセッサコンピュータが直接理解できる命令は、2進数で表現された機械語です。機械語は機種によって異なり、かつ機械語は人の手で記述するのは難しいので、より人間の言葉に近いプログラム言語で記述したもの(ソースコード)を機械語に翻訳してから動作させます。このソースコードを機械語に翻訳する機能を「言語プロセッサ」といいます。翻訳の方法には、機械語と1対1に対応する疑似命令を機械語に変更する「アセンブラ」、ソースコード全文を一括で機械語に翻訳する「コンパイラ」、1行ずつ逐次翻訳しながらプログラムを実行する「インタプリタ」があります。コンパイラコンパイラは、プログラム言語で書かれたソースコードを、一括して機械語のオブジェクトやプログラムに作り変えるソフトウェアです。CやCOBOL等の高水準言語はコンパイラで変換されます。インタプリタソースコードを1行ずつ解析しては機械語に変換し、実行するという動作を繰り返すもので、逐次変換ともいいます。Basicはインタプリタで実行されていました。スクリプト言語コードを記述するだけで、コンパイルの必要なく動作させることが出来る、スクリプトと呼ばれるプログラムがあります。これを記述するプログラム言語を、スクリプト言語と言います。代表的なものには、PerlやPHP、JavaScriptなどがあります。これらはWebページに動きを加えたり、Webサーバ上でデータを計算してWebブラウザに送るなどの機能を作る時に用いられています。以下に、いくつかスクリプト言語の特徴を紹介します。Perl(パール)Perlは、テキスト処理から機能を拡大してきた、スクリプト言語です。実用性を重視していて、C言語などの各種の言語を参考にして、多様な機能を持ちます。Perlを処理するためのソフトウェア、”perl”はフリーソフトウェアとして提供されています。Interface)という機能の形をとることが多いです。Preprocessor)Webページに動的な機能を持たせるためのスクリプト言語および言語処理ソフトウェアの名称です。PHPで書かれたスクリプトはWebサーバ側でHTML形式のマークアップ言語表現に変換されるので、閲覧するクライアントコンピュータ側には、PHPのソフトウェアは必要ありません。Python(パイソン)オブジェクト指向型のスクリプト言語です。Perlとは対象的に、言語そのものの機能は少なめに限定されています。そのかわり、多様な標準ライブラリを提供してカバーしています。見た目のブロック構造と、実際の制御が同じで、視覚に訴えるソースコードが強制されている言語です。Ruby(ルビー)日本人が発案したオブジェクト指向型のスクリプト言語です。テキスト処理や機能の多様性という性質はPerlに近く、オブジェクト指向型という点でPythonと比較されます。・コンピュータで使用されるその他の言語を修得し、応用する。・代表的なマークアップ言語の種類とその基本的な使い方を理解する。応用情報1.HTMLWebページの作成に利用されるHTMLの特徴、基本的な記述方法を理解する。Definition)、SGML2.XMLHTMLの機能に加えて、独自にタグを定義できる機能を備え、主にインターネットを介したデータ交換に利用されているXMLの特徴、基本的な記述方法を理解する。Schema3.XHTMLHTMLをXMLで再定義したマークアップ言語であるXHTMLの特徴、基本的な記述方法を理解する。Modulation4.スタイルシートHTMLやXMLなどマークアップ言語の構造と表示形式を分離するための仕様である、スタイルシートを理解する。応用情報オブジェクト指向設計のための表記法である、UMLやその他の言語を理解する。・コンピュータで使用されるその他の言語を修得し、応用する。Language)はインターネットのWebページの記述に使われる言語です。言語といっても、プログラムを組むものではなく、文章の中に編集用の指定を織り交ぜて記述できる、マークアップ言語の一種です。HTMLでテキスト文書を描くときには、ページの構造や書式、レイアウトに関する指定を、タグという形式で挿入することが出来ます。HTMLで記述したテキストは、HTMLファイルとして保存します。ファイル名の末尾には、”.html”などの拡張子をつけます。HTMLのタグHTML文書の基本構造は、ヘッダ部とボディ部からなります。ヘッダ部には文書のタイトルなどを、ボディ部には文書の内容を記述します。HTMLでは、編集したいテキストの前後に”<>”で囲んだタグを挿入します。開始タグ(<タグ名>)から終了タグ(</タグ名>)までが、そのタグの有効範囲です。文書のヘッダ部を示す。ヘッダ部はタイトルなどを記述する場所で、本文には含まれない。文書のボディ部を示す。ボディ部は、ブラウザ上で実際にWebページとして表示される本文を記述するところ。src="~~">のように、src属性を使って表示する画像ファイルのURLを指定する。他の文書ファイルへのリンクを示す。href属性に参照先ファイルのURLを指定する。Webページ上で、このタグに囲まれた部分をクリックすることで、参照先に移動することが出来る。文章の改行を指定する。タグのネストタグを入れ子にすると、階層的に書式を指定することが出来ます。内側のタグほど指定が優先されます。以下に<font>というタグを使って3段階の入れ子の形で指定した例を示します。ハイパーリンク<a>タグや<img>タグのような、他のHTML文書や画像ファイルを参照して表示するタグを挿入すると、文書の中から関連のある別のファイルを直接開いてみることが出来るようになります。これをハイパーリンクといいます。いったハイパーリンクを含むテキストをハイパーテキストといいます。ブラウザHTML文書を閲覧するためのソフトウェアとブラウザ(Webブラウザ)といいます。HTMLのタグが指定するレイアウトにしたがい、画像などを含む文書として表示します。Explorer、Firefoxなどの製品が代表的です。HTMLの仕様は、WWWコンソーシアム(W3C)で標準化されていますが、タグの中にはブラウザ側が独自に拡張したものもあり、それらのタグをHTML文書内で使うと、表示結果がブラウザの種類によって違ってしまう場合があります。Language)は論理構造を持つ文書を記述するために、ISOで制定されたマークアップ言語です。SGML文書同士の参照関係と階層構造を、文書中に定義する機能があります。このSGMLを元にして、HTMLやXMLが作られました。Language)は、HTMLのような使い勝手の良さだけでなく、SGMLのような拡張性も備えたマークアップ言語です。汎用性が高く、ユーザが独自にタグを定義して使用することが出来るのが特徴です。複雑なデータをインターネット経由で交換することが出来るため、企業間の電子商取引などに欠かせない技術となっています。XHTMLHTMLをXMLの仕様に準拠した形で再定義したマークアップ言語です。HTMLの言語仕様が拡張によってXMLと整合しきれない部分があるのを修正したものです。言語としてはHTMLとほぼ同じですが、改めて書式を幻覚に規定し、各ブラウザによる表示の差などを減らしました。スタイルシートスタイルシートは、スタイル言語で記述された文書の内容以外の様式の定義です。HTMLなどのマークアップ言語や組版系のソフトウェアとともに利用されます。マークアップ言語や組版系のソフトウェアは、文書の内容も様式も指定できますが、スタイルシートを用いて文書の内容・構造と様式・デザインを分離することによって、作業を分業したり、保守性を向上させたり、様式・デザインを再利用したりするのに役立ちます。Sheets)は、スタイルシートを記述するための代表的なスタイル言語です。以前は、文字の色や大きさ、フォントといった見栄えに関する記述も全てHTMLで行っていました。文書構造と見栄えを分離することにより、保守性が向上し、開発も分担しやすくなります。現在では、文書の内容はHTML、見栄えに関してはCSSで定義するのが一般的です。Language)はマークアップ言語XMLに準拠したスタイル言語です。Language)その他の言語としては、UMLがあります。「言語」と名前はついていますが、他の言語とは大きく異なり、UMLはモデリング技法・表記法と考えるべきものです。UMLはオブジェクト指向のソフトウェアを設計・開発するための統一表記法です。オブジェクト指向に基づいてシステムを図解したり、モデル化したりする際の表記法が定められています。UMLで定義されている図解法は、大きく次の3種類にわけられます。行うプログラムの作成方法を修得し、適用する。ライブラリ関数の利用方法を収録し、適用する。ファイル処理を行うプログラムの作成方法を修得し、適用する。基本的なプログラムを作成する。四則演算を使ったプログラムを作成する。3.選択型のプログラム条件式を使って条件分岐するプログラムを作成する。4.反復型のプログラム繰返し文を使ったプログラムを作成する。5.ビット演算ビット単位の演算子を使ったプログラムを作成する。標準入力を使ったプログラムを作成する。配列を使ったプログラムを作成する。文字列を処理するプログラムを作成する。9.ポインタポインタを使ったプログラムを作成する。関数を作成し,関数を使ったプログラムを作成する。11.ライブラリ関数ライブラリ関数を使ったプログラムを作成する。記憶域クラス指定子を使ったプログラムを作成する。構造体を使ったプログラムを作成する。14.ファイル処理ファイル処理を行うプログラムを作成する。行うプログラムの作成方法を修得し、適用する。ファイル処理を行うプログラムの作成方法を修得し、適用する。基本的なプログラムを作成する。四則演算を使ったプログラムを作成する。3.選択型のプログラム条件式を使って条件分岐するプログラムを作成する。4.反復型のプログラム反復型の制御文を使ったプログラムを作成する。文字処理を行うプログラムを作成する。表操作を行うプログラムを作成する。順ファイルの入出力操作を行うプログラムを作成する。相対ファイル,索引ファイルを使ったプログラムを作成する。行うプログラムの作成方法を修得し、適用する。クラスの宣言方法、クラスをインスタンス化して利用する方法を修得し、適用する。作成方法を修得し、適用する。基本的なプログラムを作成する。四則演算を使ったプログラムを作成する。3.選択型のプログラム条件式を使って条件分岐するプログラムを作成する。4.反復型のプログラム反復型の制御文を使ったプログラムを作成する。5.クラスとインスタンスクラスを定義し,インスタンス化して使用するプログラムを作成する。6.差分プログラミング既存のクラスの機能を拡張するプログラム,インタフェースを利用して機能を追加するプログラムを作成する。例外処理を行うプログラムを作成する。並列処理を行うプログラムを作成する。9.コレクションと総称コレクションを使ったプログラムを作成する。10.入れ子クラス入れ子クラスを使ったプログラムを作成する。列挙型を使ったプログラムを作成する。コンピュータシステムCOMETIIの仕様を理解する。行うプログラムの作成方法を修得し、適用する。表を使った処理、入出力処理を行うプログラムの作成方法を修得し、適用する。スタック、およびスタックを用いたサブルーチンコールの仕組みと用法を修得し、適用する。COMETIICOMETIIを構成するレジスタ,命令形式を理解する。GR0~GR7,SP,PR,FR,OF,SF,ZF,注釈2.CASLIIの基本的なプログラムCASLIIの基本的なプログラムを作成する。論理演算命令を使ったプログラムを作成する。分岐命令を使って選択型,反復型のプログラムを作成する。CPA,CPL,JPL,JMI,JNZ,JZE,JOV,JUMP5.シフト演算シフト演算命令を使ったプログラムを作成する。表(配列)を使ったプログラムを作成する。使って入出力処理を行うプログラムを作成する。IN,OUT8.スタックスタック操作を行うプログラムを作成する。ソフトが持つ計算、集計などの機能を修得し、適用する。関数の種類、使い方を修得し、適用する。マクロの作成方法を修得し、適用する。業務処理における表計算ソフトの活用方法を修得し、適用する。ワークシート基本的なワークシートを作成する。複数のワークシート間での参照,集計を行う。定数,セル,演算子,関数などを組み合わせて式を作成する。関数と数値,関数とセル,関数と関数などを組み合わせて式を作成する。4.マクロ変数,セル変数,配列,演算子,関数を使ってマクロを作成する。会計処理,成績処理などの業務処理に表計算ソフトを適用する。