摂津市千里丘 吹田市エリア 実績抜群の完全個別指導専門塾 個別指導シグマ千里丘校へお任せ下さい!

menu

摂津市千里丘 吹田市エリア 実績抜群の完全個別指導専門塾 個別指導シグマ千里丘校へお任せ下さい!

みなさん、こんにちは。

本日は、「アルゴリズム・プログラミング」について書いていきます。

 

7月中旬から始めた用語説明も今回で最後になります。

 

それでは、始めていきましょう。

 

アルゴリズムとは、問題を解決するための方法や手順を一般化したものです。

一般化という言葉は、高校生であれば聞いたことがあるかと思いますが、「広く通用するものとすること。」という意味であり、今回であれば問題解決の流れ(一連の動作)を決めたものということです。

 

プログラム(ソース、ソースコード)」とは、コンピュータに命令を指示する言語を用いて表したものであり、これを作成することプログラミングといいます。

このときに用いる言語をプログラミング言語といい、人工的に構成された言語体系をもっています。

このプログラミング言語は、多種多様であり、それぞれの用途はもちろん、一部では好みによっても用いるものが変わります。

 

プログラミングを行う際に有効なものの1つがフローチャートです。

フローチャートは、アルゴリズムを視覚的にわかりやすく表現した図の1つで、フローチャートを見ることによって、プログラムを考える際に必要な階層などを取り決めることができます。プログラミングの事前準備のようなものですね。

 

アルゴリズムをしっかりと考え、フローチャートに間違えなく反映させ、プログラミングを行うことで、システム上の不具合は、減らすことができます。

しかし、今後のことを考えると、発展性をもたせることが必要なので、各データには意味をもたせ、プログラム上で保持できるようなものにすることも必要です。

一方で、すべてのデータを保持するとなると膨大なデータ量となるので、プログラムの動作速度にも影響を及ぼします。

これだけでも「いたちごっこ」状態ですね…

 

さて、本題に戻りましょう。

 

 

プログラミングの工程で何らかのミスがあった場合コンピュータからメッセージが返される場合があります。これがエラーメッセージです。

 

バグという問題の原因によって、問題が発生したことを示すものですが、無限ループなどが発生した場合にはエラーメッセージは表示されません。

プログラムを使用するためには、デバッグというバグを取り除く作業を行う必要があります。

 

エラーメッセージの例を挙げましょう。

「構文エラー(syntax error)」機械語に翻訳できない、文が成立していないときのエラーです。

「実行時エラー(runtime error)」途中で動作が停止するエラーです。

「論理エラー(logic error)」正しい結果が得られないときのエラーです。

 

 

さて、プログラミングを行う際に、毎回すべてのコードを考えないといけないのでしょうか。

 

  

今では、プログラミング言語の仕様にあらかじめ用意された処理があります。これを組み込み関数といいます。

よく例として挙げられるのがレシピです。料理のレシピや作業手順書などがこれに似ています。1からすべてを考えるのではなく、既存のものを応用させていくというような形です。

 

一方でユーザが作成する関数ユーザ定義関数といいます。

 

これらの関数などをファイルとしてまとめたものモジュールといいます。

  

配列(リスト)」とは、データの数が多い場合に異なる名前の変数を複数使用せずに、複数の値を1つの名前(配列名)によって管理する仕組みのことです。

一次元配列」や「二次元配列」というように要素をいくつの添字で指定するかで配列の次元が変わります。

 

ここでいう、要素とは配列中の各変数のことで、添字(インデックス)とは要素の番号のことです。

 

 

変数にも種類があり、関数の外側で宣言し、プログラム全体が有効になるグローバル変数関数の内側のみ有効となるローカル変数があります。

 

この配列の中から目的の値を見つけなければいけません。

このことを探索といいます。

そして、この探索にも種類があります。

線形探索とは、端から順に目的の値である探索値を探すアルゴリズム

二分探索とは、データが昇順または降順によって整列されている配列に対して、探索範囲を半分に狭めることを繰り返して探索値を絞り込むアルゴリズムです。

 

膨大な量のデータであればあるほど、きちんと整列させた状態で二分探索を行うことでより早く処理を行うことができますね。

 

 

交換法とは、データを昇順または降順に整列させるアルゴリズムのうち、データの大小を比較し、交換を行う方法です。

 

値渡しとは、値をコピーする渡し方で

参照渡しとは、値を共有する渡し方です。

 

 

処理の流れに沿ってプログラミングを作成する方法手続き型プログラミングといい、

関連するデータとそれに対する操作を1つのオブジェクトととらえて、プログラムを作成する方法オブジェクト指向プログラミングといいます。

 

各種用語の説明です。

・プロパティ:オブジェクトの属性・その値

・メソッド:関数

・クラス:いわゆる設計図のようなもの

・オブジェクト:設計図をもとに作られたもの(インスタンスともいう)

・クラスの定義:クラスを作ること

・フィールド:クラス内で宣言されている変数

・コンストラクタ:オブジェクトの生成時に自動的に呼び出されるメソッド

・ゲッタメソッド:フィールドの値を取得できるメソッド

・セッタメソッド:フィールドに値を設定するためのメソッド

・デコレータ:関数に処理の追加や変更を行う機能

・インスタンス化:クラスをもとにしてオブジェクトを作ること(単にオブジェクトの作成ともいう)

 

 

 

データ構造や処理の流れなどのソフトウェアに関連する様々な設計や機能を図示するための表記法を定めたもの統一モデリング言語UML)」といい、オブジェクト指向の分野で多く用いられます。

構成要素として、クラス図やオブジェクト図などシステムの構造を示す構造図や状態遷移図やアクティビティ図などの動作や変化を示す振る舞い図などがあります。

 

上記の状態遷移図とは状態遷移を図形式にしたもので、表形式にした状態遷移表というものもあります。

そもそも状態遷移とは、ある状態から別の状態に変化することです。

 

 

 

NoSQLとは、データベースの1種でビッグデータの対応を可能としています。

そもそも「SQL」とは、「Structured Quety Language」の略であり、データベースの制御を行うプログラミング言語です。SQLはISOによって規格化されているため、1つを習得すれば、大半のものに対応できるようになります。数年おきに規格が改定されるので、その都度確認は必要ですが…

 

このNoSQLはその名のとおり、SQLを使用しないデータベースで今までのリレーショナル型の課題解決ができるとされています。

リレーショナル型データベースは、端的にいえば「表」です。

 

一方でNoSQLの一種であるキーバリュー型では、キー(項目名)、バリュー(値)の組を書き込み、キーを指定することで、そのキーに紐づいたバリューを読みだすことができるものです。

 

 

本日はここまでです。

情報Ⅰの用語の説明を書いてきましたが、情報Ⅰの範囲外になるので書いていなかったもの、豆知識のような部分はかなり省きましたので、今後はそれらについて書いていこうかとも思っています。

 

何かこのブログ記事で触れてほしい内容があれば、教室までご連絡ください。

  • このエントリーをはてなブックマークに追加

関連記事

資料請求・無料体験授業・教室見学・お問い合わせ
個別指導シグマ 千里丘校 フェイスブック
個別指導シグマ 千里丘校 ツイッター
個別指導シグマ 千里丘校 YouTube チャンネル
個別指導シグマ 千里丘校 Google+