C++Builder/Linux サンプルプログラム
本ページの下にあるウェブサイトではC++BuilderあるいはC++/Linuxにおけるプログラミングをとりあげる。C++Builderを使用してコンソールアプリケーションとして標準C++準拠で書かれているプログラムをLinuxでの標準C++プログラムに書き直すことは簡単である。2,3か所のC++Builder特有の部分を標準C++用に修正すればよい。その作業についてはウェブサイト<標準C++用への変更作業>で説明している。
C++プログラミング/Linux、Fedora15の日本語版、Fedora15のソフトウェア更新のトラブル、
長周期乱数生成/Linux、簡単なMCMCプログラム例(C++/Linux)
時刻取得サンプル・プログラム/Linux、ネイピア(Napier)数の計算、ピタゴラス数、
簡単なプログラム(平方根の計算)、簡単なプログラム(2項分布)、簡単なプログラム(パスカルの三角形)、
平均値と期待値(C++/Linuxシミュレーションプログラム)、正規分布の確率計算(C++/Linux)、
正規分布の確率、カイ2乗分布の確率、2項分布の信頼区間、分散・不偏分散・標準偏差(C++/Linux)、
2変量統計量の計算(1行に複数のデータがある場合のテキストファイルデータ入力)、
バイナリファイル出力とテキストファイル出力のサイズの比較/Linux(Ubuntu10)
80ビット精度浮動小数点データ型(long double)、キャリーのチェック(carry into/out of the sign bit)、有効桁数による和の精度のチェック、
long double / Linux (Fedora 16)、long double 型の指数関数expl、long double による2項分布の区間推定、
C++によるプログラミングを始めたとき、ファイル拡張子が「.h」であるヘッダー・ファイル(*.h)とファイル拡張子が「.cpp」であるソース・ファイル(*.cpp)の区別が判り難いと思う。ヘッダー・ファイルは#includeによってソース・ファイルに挿入されるが、その位置がソース・ファイルの先頭(頭の部分)であるのでヘッダー・ファイルと呼ばれると説明されている。しかし、機能的にヘッダー・ファイルとソース・ファイルは異なるものである。プログラムは、複数のファイルに分割されているとき、ソース・ファイル単位でコンパイルされ、コンパイルされたソース・ファイルがリンクされて実行可能なファイル(*.exe)が作成される。コンパイルとリンクは、ビルドと呼ばれている。ソース・ファイルのコンパイルによってメモリ上に確保された(定義された)オブジェクトあるいは関数は、同じ名前のものが複数のソース・ファイルのコンパイルによって作成されると、リンク時にエラーとなる。
ヘッダー・ファイルは、ソース・ファイルに挿入されてコンパイルされる。同じヘッダー・ファイルA.hが2つ以上のソース・ファイルに挿入される場合、メモリ上に作成されるオブジェクトあるいは関数がヘッダー・ファイルA.hにおいて定義されていると、その定義された名前のものは挿入されたソース・ファイルにおいてメモリ上に確保されることになり、同じ名前のものが各ソース・ファイルに対応して複数存在することになる。このため、リンク時にエラーとなる。このエラーを避けるためには、ヘッダー・ファイルではメモリ上に確保されるような名前の定義は行わないようにする必要がある。ヘッダー・ファイルにおいては、定義ではない宣言のみとしておくとよい。定義は、ソース・ファイルで行う。