プログラミング基礎

値型と参照型のメモ

色々忘れていたので復習。 Java サイトから参照。メモリの使い方は他言語でも大体同じだと思うので。違うかも。 ex ) int i = 4 int j = i; i = 5; // j の数値は、4 となる。 仮に参照型の場合、 j は 5 となる。int は値型。 コピーとメモリ領域 コピーに…

ガベージコレクションとは

勝手に解放してくれる、としか覚えてなかった。 プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能。 ヒープを利用する際、用済みになったデータ領域の解放を忘れて、メモリ上に「ごみ」 ( いつまでたっても解放されない…

C++_参照の扱い方 ( アンパサンド )

ごちゃになってきたので再度調べ。 ポインタ アドレスを記憶する変数。アドレスを直接扱う。 参照型 C++ で使われる。ポインタ型よりも制約が強く安全に使える。裏ではポインタの受け渡し。 ・参照型の使い方 // 普通のdouble 型 double a; // x は a を参照…

C++_アンパサンドの意味

& ( アンパサンド ) には 2 つの意味がある! &変数 → アドレス演算子型名& → 参照型を示す宣言子 ポインタでの & ( アドレス演算子 ) メモリアドレスを得る演算子。ポインタとセット。参照型で利用するものとは全く別。 int hoge = 10; int* fuga = &hoge …

浮動小数点数とは

小数点のことでしょとしか認識なかった。 コンピュータ世界における小数の扱い方のひとつ。仮数部と指数部のみを記憶しておくやり方。 123.45 という数字は指数表記にすると、1.2345 * 10 ^ 2 。1.2345 が仮数。10 が基数。2 の部分が指数。 1/100 を掛ける…

アルゴリズム設計の基本要素 多分岐選択箱

選択構造 の続き。 条件が多い時にすっきり書く方法。 以下のようなアルゴリズムの時、選択構造の中に条件の異なる選択構造がいくつも入った形になる。 条件 A が 真の場合、hoge とする。その他の場合、条件 B が真の場合は fuga とする。その他の場合、条…

アルゴリズム設計の基本要素 選択構造

・順次・選択・反復 選択構造とは、選択肢が含まれているプログラム構造のこと。 条件分岐と呼ばれることも多い。構造化プログラミングという観点からだと選択構造。 1) A の場合、hoga とする。2) A 以外の場合、fuga とする。 というようにかける。※ A は …

アルゴリズム設計の基本要素 順次構造

・順次 ・選択 ・反復 順次構造とは、命令 ( 処理 ) を順番に実行していくだけの単純なプログラム構造のこと。 1 ) hoga を実行する。 2 ) 次に fuga を実行する。3 ) 次に piyp を実行する。 というようにかける。順番が逆になると正しい結果が得られず、間…

なぜ初期化するのか

初期化しろ、と聞くが何故初期化するか分からないので調べた。 ざっとみると、 思わぬところでエラーとなるのを防ぐため。システム全体を把握していないなら、潜在的なバグを無くす為に必要。 言語全般において、最初の値を明示的に設定する習慣が厳然として…

プリミティブ型 ( 原始型 )

データを格納するための、最も基本的な型。 Wiki には「そのデータ型の定義の中に部分として他の型を含まない型」 プリミティブ型に対して、クラスや配列のインスタンスを指し示すための変数の型を参照型という。 以下、Java サイトから引用。言語によって違…

初期化とは

変数の宣言と代入を同時にすること。 int num; //宣言 num = 100; //代入 int data = 10; //初期化 初期化を行わずに変数を宣言すると、変数には「初期値」が格納されたままとなっている。 変数の宣言と同時に適切な値を格納することで、「最初から有効な値…

値型と参照型 ( 構造体 と クラス )

値型 変数には直接値が格納。 ex )変数 A の値を変数 B へ代入した時、値がコピーされて渡される。変数 A が持っている値、変数 b が持っている値、と実体は 2 つある。 参照型 変数には「実体がどのにあるのかという情報」が格納。実体は別の場所 ( ヒープ …

アドレスとは

データの格納位置を示すための住所のようなもの。番地ともいう。 詳しく 変数や配列などの値は、メインメモリ上に記憶されている。メモリには、場所を表す「アドレス」という連続した通し番号が付いており、変数名とアドレスの組み合わせは、OS により管理さ…

スタック と ヒープ

メモリ:データやプログラムを一時的に記憶する。 メモリ領域の管理手法は大きく分けて、スタック領域、ヒープ領域 がある。 スタック ( stack ) 積み上げる、堆積物という意味。データ領域を積み上げていくような形で管理する方式。最後に確保した領域を最…

Bit と 2進数

0 または 1 で表される情報量を 1 ビットという。 1 ビットでは、2 種類の情報を表せる。( 2 の 1乗 ) 電球で表すと、 0 → OFF 1 → ON 2 ビットでは、4 種類の情報を表せる。( 2 の 2乗 ) 00 → OFF and OFF 01 → OFF and ON 10 → ON and OFF 11 → ON and ON …

アルゴリズム設計の基本要素 00

アルゴリズムとは 目的を達成するための手順のこと。 コンピュータ分野では、一定の回数で必ず終了し、かつ毎回同じ結果になることが保証されている手順のことを特に「アルゴリズム」と呼ぶ。 アルゴリズム設計において、まずは以下の基本要素を理解すること…

プログラムはどこにあるのか

プログラム ( PCへの命令手順書 )はメモリの中にある。 プログラムの実行時 メモリには下記が記録される。 1) プログラム 2) 命令によって操作されるデータ CPUはメモリを参照しプログラムを読み込むが、 このメモリを参照する場所は変数の値 ( データ ) を…

昔は変数が使えなかった

機械語や ( 初期の ) アセンブリ言語の場合、変数を使えなかった代わりに、 メモリの「アドレス」を使用して参照・代入命令を行っていた。 アセンブリ言語のプログラムは数字だらけになってしまうため、 コーディングはもちろん、デバッグや仕様変更がとても…

変数を使用する意味

プログラミング言語では変数を使用するのが基本。なぜならば、 1) プログラムが柔軟になる →計算部分を変えずに色々なデータを扱える 2) プログラムが分かりやすくなる →データの意味が分かる。 ----------【例】---------- A) 変数を( なるべく )用いない時…

ハード_CPUの機能 その2

メモリの読み書き・計算の他に以下のことができる。 ・判断:2 つの数値を比較して真・偽を返す。 ・ジャンプ命令:命令を読み飛ばす。 判断 2 つの数値の大小関係を比較することができる。 例えば、 「身長が 170 より高い」という命題において 170 より高…

ハード_CPUの機能 その1

大まかに下記の3つ。 1.参照:メモリから数値を読み込む 2.演算:計算 3.代入:メモリへ計算結果を書き込む 「利益に、売上と費用の差を代入する」というプログラムで詳しく説明。 1. 参照 売上や費用の数値はメモリに記憶してある。 プログラムを実行し…

ハードについて知る必要性

CPU と メモリ について記事を書くが、何故これらを知る必要があるのかを。 プログラムは手順書。大前提として、 手順書に書かれてあることはコンピュータができること。 つまり、コンピュータは何ができるのかを知らなければ手順書は書けない。故にプログラ…

プログラムとは

土台を固めようと思い始めた今日この頃。 コンピュータに対する手順書 「プログラム」をググると以下が検索される。 物事を行う手順のもくろみ。 もくろみ:企て、計画を立てること・またはその内容、計画 自動車、テレビなどは人間がハンドルを操作したり、…