上へ

Visual C++ サンプルプログラム

 


Visual Studio 2022おけるC++/.NETフォームプログラミング

プロジェクトを開いたときのデザイナーエラー

Visual C++プログラミングの解説書: 岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房

Visual Studio 2019におけるC++/.NETフォームプログラミング

Visual Studio 2015 におけるC++プログラミング

C++サンプルプログラム

C++によるテキストファイルの入出力簡単なテキストファイル入出力例

やさしいC++による統計/データ分析入門

簡単なVisual C++ フォーム アプリケーション プログラミング

Windowsフォームアプリケーションの作成/Visual C++ 2012/CLR

Visual C++ (Visual Studio) による標準C++準拠プログラミング

Visual C++/CLRにおける描画およびマルチスレッドについて

Threadプログラミング/C++11/Visual C++2013RC64ビットプログラムの作成

いろいろサンプルプログラム−1いろいろサンプルプログラム−2統計分析・データ分析関係心理学実験/デモ・プログラムヘッダーファイル・ソースファイル


いろいろなサンプルプログラム−1

Windows 8/8.1におけるEXEファイルのクリック・ダウンロード・実行

2つのフォームの交互提示/Visual C++2012大きい文字表示の時計(Visual C++/CLR 2012フォームアプリケーション)、

グラフィック描画生と死の2次元パターンの変化

Win32 コンソール・アプリケーション/Visual C++ 2010

簡単なファイル入出力関数オブジェクトPythonの簡単な併用

Visual C++/CLRプログラミング入門:簡単な統計分析プログラム

<岡本安晴「データ分析のための統計学入門」、2009、おうふう>用サンプルプログラム

簡単なOpenGLプログラム例DirectX試用記OpenCV試用記


いろいろなサンプルプログラム−2

マンデルブロー集合の描画(ピクセル単位の描画)樹形図(再帰的描画)

プリンタでの描画:プリンタをプロッタとして使うプロジェクタのブラック・アウト

サウンドファイル(*.wav)の再生サウンドファイル・メディアファイルの再生アラーム時計計時の精度・分解能

画像ファイルの表示と透明度付きコピー関数の立体図の回転関数の等高線図の描画破線の描画

バイナリ・ファイル出力とテキスト・ファイル出力の比

乱数(周期≒2**1913*10**572乗和の計算誤差


統計分析・データ分析関係

ヒストグラムの描画散布図と単回帰直線確率分布関数の描画

相関係数のシミュレーション散布図の相関係数負の分散になる場合

分散の計算と有効桁数(標準C++準拠のコンソールプログラムの作成)サンプリングのシミュレーション

比の差の分散分析カテゴリー評定の一致度(カッパ統計量Κ)

平均値の差のt検定(条件間でデータが独立な場合)平均値の差のt検定(条件間でデータに対応がある場合)

相関係数=0の検定カイ2乗検定(適合度の検定)カイ2乗検定(分割表の検定)

被験者間1要因分散分析被験者内1要因分散分析

被験者間2要因分散分析被験者間1要因・被験者内1要因分散分析被験者内2要因分散分析

正規分布の計算カイ2乗分布の計算t分布の計算エフ分布の計算2項分布2項分布(区間推定)

U分布のバートレットカイ2乗近似

平均値の差の検定と信頼区間(データに対応がある場合)相関係数の信頼区間

最尤法とベイズ的方法(2項分布の区間推定)簡単なMCMCプログラム例

簡単なMCMCプログラミング簡単なギブズサンプリングの例

簡単な回帰分析重回帰分析ロジスティック回帰分析ポアッソン指数型回帰モデルによる度数・頻度の分析回帰モデルの比較

主成分分析(正射影によるデータ次元の圧縮)カテゴリカルデータの主成分分析

因子分析(データ変量に対する最小2乗法)因子分析(主因子法)判別分析

信頼性係数(オメガω信頼性係数オメガ(ベイズ的分析)カテゴリ項目の信頼性係数

ポリコリック相関係数一般化可能性理論

信頼性係数(クロンバックのアルファ係数)T得点(偏差値)のベイズ推定

双対尺度法(分割表(Contingency Table)に含まれる情報の可視化)数量化法(カテゴリカルデータの分析)

クラスター分析


心理学実験/デモ・プログラム

マッハ・バンドドットパターンの運動錯視(Muller-Lyer illusionコントラストと差動結合図―地反転図形

見える/見えない?(Invisible Gorilla

並列分散処理ニューラルネットワーク(Parallel Distributed Processing: PDP

反応時間(単純反応時間と選択反応時間)ポップアウト(pop out)と反応時間メンタルローテーション(Mental Rotation: 心的回転)と反応時間

簡単な上下法と主観的等価点(PSE)および弁別閾(JND)の推定適応的上下法(弁別閾と主観的等価点の測定)

検出の閾値信号検出理論(SDTマグネチュード推定法(感覚の強さの測定)

錯視など

 


ヘッダーファイル・ソースファイル

 C++によるプログラミングを始めたとき、ファイル拡張子が「.h」であるヘッダー・ファイル(*.h)とファイル拡張子が「.cpp」であるソース・ファイル(*.cpp)の区別が判り難いと思う。ヘッダー・ファイルは#includeによってソース・ファイルに挿入されるが、その位置がソース・ファイルの先頭(頭の部分)であるのでヘッダー・ファイルと呼ばれると説明されている。しかし、機能的にヘッダー・ファイルとソース・ファイルは異なるものである。プログラムは、複数のファイルに分割されているとき、ソース・ファイル単位でコンパイルされ、コンパイルされたソース・ファイルがリンクされて実行可能なファイル(*.exe)が作成される。コンパイルとリンクは、ビルドと呼ばれている。ソース・ファイルのコンパイルによってメモリ上に確保された(定義された)オブジェクトあるいは関数は、同じ名前のものが複数のソース・ファイルのコンパイルによって作成されると、リンク時にエラーとなる。

 ヘッダー・ファイルは、ソース・ファイルに挿入されてコンパイルされる。同じヘッダー・ファイルA.h2つ以上のソース・ファイルに挿入される場合、メモリ上に作成されるオブジェクトあるいは関数がヘッダー・ファイルA.hにおいて定義されていると、その定義された名前のものは挿入されたソース・ファイルにおいてメモリ上に確保されることになり、同じ名前のものが各ソース・ファイルに対応して複数存在することになる。このため、リンク時にエラーとなる。このエラーを避けるためには、ヘッダー・ファイルではメモリ上に確保されるような名前の定義は行わないようにする必要がある。ヘッダー・ファイルにおいては、定義ではない宣言のみとしておくとよい。定義は、ソース・ファイルで行う。

 Visual C++/CLRのフォーム・アプリケーションの場合、フォームはヘッダー・ファイル(例えば、Form1.h)において参照クラスとして宣言されている。イベントを処理するメンバ関数は、張り付けたボタンのダブルクリックなどにより自動的にフォームの参照クラスの宣言内でひな型が宣言される。ヘッダー・ファイル(例えば、Form1.h)において、フォームを表わす参照クラス型(例えば、Form1)の宣言の前の位置に、他の参照クラス型などの宣言を置くと、フォームのデザイナが働かなくなる、例えばタブ「Form1[デザイン]」をクリックしてもフォームが表示されなくなるので注意が必要である。このような宣言が必要なときは、別のヘッダー・ファイルを用意して、そこで必要な参照クラス型などの宣言を行った上で、#includeで挿入するとうまくいく。


 

岡本安晴

上へ