基本的なデータの形とは?
基本的なデータの形とは?
2022年8月16日
基本的なデータの形とは?
プログラムを書く場合、どのようにデータをプログラム内で扱うかは一つの大きなポイントになります。もちろん、プログラムの目的によってこのデータの形は色々ですが、ある程度基本的なパターンがあります。この記事では、基本的なデータの形について紹介します。
基本データは数値
最近のコンピュータで利用されている CPU の場合、CPU が扱うデータは基本的に全て「数値」になっています。CPU の中では、基本的に全てのデータは二進数で表されていて、二進数のデータを処理しています。 しかし、プログラミング言語の中では、この二進数のデータを処理して、いくつかの違うタイプのデータとして扱えるようにしています。
このデータのタイプはプログラミング言語によって微妙に違いますが、基本的な物は以下のようになっています。
- 整数
- 実数(小数点を含む数値)
- 文字
というのが基本的なデータになる場合が多くなっています。
文字の場合は、私達が普段利用する文字一つ一つに異なる数値を割り当てて、特定の文字として扱えるようにしています。したがって、見かけは文字のようでも、実際のデータの中身は数値という事になっています。
最近のコンピュータで利用されている CPU の場合、CPU が扱うデータは基本的に全て「数値」になっています。CPU の中では、基本的に全てのデータは二進数で表されていて、二進数のデータを処理しています。 しかし、プログラミング言語の中では、この二進数のデータを処理して、いくつかの違うタイプのデータとして扱えるようにしています。
このデータのタイプはプログラミング言語によって微妙に違いますが、基本的な物は以下のようになっています。
- 整数
- 実数(小数点を含む数値)
- 文字
というのが基本的なデータになる場合が多くなっています。
文字の場合は、私達が普段利用する文字一つ一つに異なる数値を割り当てて、特定の文字として扱えるようにしています。したがって、見かけは文字のようでも、実際のデータの中身は数値という事になっています。
変数と定数
実際に、こうしたデータをプログラムで扱う場合、「変数」や「定数」という形で、名前をつけてメモリ上に場所を割り当てます。この名前はプログラミング言語が便宜上割り当てているもので、実際には、メモリの特定の場所を数字で表して特定できるようにしていてアドレス(メモリ上の番地、住所)と呼ばれる数値で表せるようになっています。
通常は、一つの数値に一つの名前を付けて割り当てますが、同じようなデータをまとめて扱いたい場合も多いので、複数の同じ形をした数値を複数まとめて割り当てられるようにしているプログラミング言語が殆どです。このような、データの型を配列(Array)などと呼んでいます。この場合、複数のデータを入れる箱に名前を付けて、その箱の中の場所を数字で表すようになっています。例えば、複数の名前を入れられる配列を「names」という名前で作成した場合には、「name[1]」のように個々のデータを指定できるようになっています。
実際に、こうしたデータをプログラムで扱う場合、「変数」や「定数」という形で、名前をつけてメモリ上に場所を割り当てます。この名前はプログラミング言語が便宜上割り当てているもので、実際には、メモリの特定の場所を数字で表して特定できるようにしていてアドレス(メモリ上の番地、住所)と呼ばれる数値で表せるようになっています。
通常は、一つの数値に一つの名前を付けて割り当てますが、同じようなデータをまとめて扱いたい場合も多いので、複数の同じ形をした数値を複数まとめて割り当てられるようにしているプログラミング言語が殆どです。このような、データの型を配列(Array)などと呼んでいます。この場合、複数のデータを入れる箱に名前を付けて、その箱の中の場所を数字で表すようになっています。例えば、複数の名前を入れられる配列を「names」という名前で作成した場合には、「name[1]」のように個々のデータを指定できるようになっています。
カスタムのデータの集まりも作れる
上で紹介した、基本的なデータのタイプ(整数や実数、文字)などを通常の変数や定数、配列などの形を駆使すると、基本的なデータはプログラムの中で扱う事ができます。
しかし、プログラムを書く上では必要なデータをグループにして扱う方が便利な場合が多く、プログラムのコードも書き易くなリます。
そこで、殆どのプログラミング言語では、データをまとめてカスタムの形で扱えるようにしています。 例えば C 言語などでは、構造体と呼ばれる形や、オブジェクト指向型のプログラムでは、クラスなどの形でデータをまとめたり、そのデータの処理方法をメソッド(method)としてクラスの中に定義できるようになっています。Web 系のプログラミングでよく利用される JSON(JavaScript Object Notation)なども、これに近い目的で利用されます。(Python で言う Dictionary も殆ど同じです)
また、最近の多くのプログラミング言語では、配列の他にリスト(linked list)を標準でサポートしているプログラミング言語もあります。C 言語など古いプログラミング言語の場合、リスト(linked list)を使いたい場合は、構造体などで必要なデータのグループを作成して自分で実装する必要がありましたが、Python や Javascript などでは標準で実装されています。リスト(linked list)を利用すると、データを並び替えるような処理をする場合には便利なデータ構造になります。
このように、必要なデータをひとまとめのグループにすると、関数などにデータを渡す際に、データのグループごと渡すことも可能になるので、個別のデータでやり取りするより、プログラムも見やすくコードの変更も比較的やりやすくなります。
上で紹介した、基本的なデータのタイプ(整数や実数、文字)などを通常の変数や定数、配列などの形を駆使すると、基本的なデータはプログラムの中で扱う事ができます。
しかし、プログラムを書く上では必要なデータをグループにして扱う方が便利な場合が多く、プログラムのコードも書き易くなリます。
そこで、殆どのプログラミング言語では、データをまとめてカスタムの形で扱えるようにしています。 例えば C 言語などでは、構造体と呼ばれる形や、オブジェクト指向型のプログラムでは、クラスなどの形でデータをまとめたり、そのデータの処理方法をメソッド(method)としてクラスの中に定義できるようになっています。Web 系のプログラミングでよく利用される JSON(JavaScript Object Notation)なども、これに近い目的で利用されます。(Python で言う Dictionary も殆ど同じです)
また、最近の多くのプログラミング言語では、配列の他にリスト(linked list)を標準でサポートしているプログラミング言語もあります。C 言語など古いプログラミング言語の場合、リスト(linked list)を使いたい場合は、構造体などで必要なデータのグループを作成して自分で実装する必要がありましたが、Python や Javascript などでは標準で実装されています。リスト(linked list)を利用すると、データを並び替えるような処理をする場合には便利なデータ構造になります。
このように、必要なデータをひとまとめのグループにすると、関数などにデータを渡す際に、データのグループごと渡すことも可能になるので、個別のデータでやり取りするより、プログラムも見やすくコードの変更も比較的やりやすくなります。
カスタムのデータのグループを使いこなす
一通りの基本的なデータを変数や定数として扱えるようになったら、次のステップは必要に応じてデータをグループにまとめて、扱うプログラムの書き方を覚えるとプログラムの実装の幅が広がります。
オブジェクト指向(Object Oriented Programming)のプログラムも基本はこうした思想に基づいて考えられています。多くのオブジェクト指向のプログラムの場合には、データをまとめるだけではなくて、まとめたデータの処理方法までを一つのグループに入れて、データの処理と、データの定義をひとまとめにして、プログラムの部品化をやりやすくしています。
従来のプログラミング(オブジェクト指向でないプログラミング)では、データのグループと処理は別々に扱う方法になっていました。したがって、共通の処理を関数として部品化すると言うやり方で、データは別に管理すると言う考え方でした。一方で、オブジェクト指向では、データと処理を含めた機能自体を一纏めにできるようになっているので、機能の部品化を進めやすくなっています。
一通りの基本的なデータを変数や定数として扱えるようになったら、次のステップは必要に応じてデータをグループにまとめて、扱うプログラムの書き方を覚えるとプログラムの実装の幅が広がります。
オブジェクト指向(Object Oriented Programming)のプログラムも基本はこうした思想に基づいて考えられています。多くのオブジェクト指向のプログラムの場合には、データをまとめるだけではなくて、まとめたデータの処理方法までを一つのグループに入れて、データの処理と、データの定義をひとまとめにして、プログラムの部品化をやりやすくしています。
従来のプログラミング(オブジェクト指向でないプログラミング)では、データのグループと処理は別々に扱う方法になっていました。したがって、共通の処理を関数として部品化すると言うやり方で、データは別に管理すると言う考え方でした。一方で、オブジェクト指向では、データと処理を含めた機能自体を一纏めにできるようになっているので、機能の部品化を進めやすくなっています。
まとめ
プログラムでデータを扱うための「パターン」はプログラミング言語によらず、似たような方法で行うことができます。まずは、一つのプログラミング言語でデータをどのような形でプログラム中で扱うかに焦点を当ててプログラミングの学習をすると、プログラミングの基本の習得がやりやすくなります。データや処理をグループ化することで、プログラムのコードの見通しもよくなるので、将来的に、管理しやすいプログラムにすることも可能になります。
プログラミングを学習する上でデータの形やパターンを理解することはとても大切です。
プログラムでデータを扱うための「パターン」はプログラミング言語によらず、似たような方法で行うことができます。まずは、一つのプログラミング言語でデータをどのような形でプログラム中で扱うかに焦点を当ててプログラミングの学習をすると、プログラミングの基本の習得がやりやすくなります。データや処理をグループ化することで、プログラムのコードの見通しもよくなるので、将来的に、管理しやすいプログラムにすることも可能になります。
プログラミングを学習する上でデータの形やパターンを理解することはとても大切です。
コメント
コメントを投稿