Visual C++ サンプルプログラム
Visual Studio 2022におけるC++/.NETフォームプログラミング
Visual C++プログラミングの解説書: 岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房
Visual Studio 2019におけるC++/.NETフォームプログラミング
Visual Studio 2015 におけるC++プログラミング
C++によるテキストファイルの入出力、簡単なテキストファイル入出力例
簡単なVisual C++ フォーム アプリケーション プログラミング
Windowsフォームアプリケーションの作成/Visual C++ 2012/CLR
Visual C++ (Visual Studio) による標準C++準拠プログラミング
Visual C++/CLRにおける描画およびマルチスレッドについて
Threadプログラミング/C++11/Visual C++2013RC、64ビットプログラムの作成、
いろいろサンプルプログラム−1、いろいろサンプルプログラム−2、統計分析・データ分析関係、心理学実験/デモ・プログラム、ヘッダーファイル・ソースファイル
Windows 8/8.1におけるEXEファイルのクリック・ダウンロード・実行
2つのフォームの交互提示/Visual C++2012、大きい文字表示の時計(Visual C++/CLR 2012フォームアプリケーション)、
Win32 コンソール・アプリケーション/Visual C++ 2010
簡単なファイル入出力、関数オブジェクト、Pythonの簡単な併用
Visual C++/CLRプログラミング入門:簡単な統計分析プログラム
<岡本安晴「データ分析のための統計学入門」、2009、おうふう>用サンプルプログラム
簡単なOpenGLプログラム例、DirectX試用記、OpenCV試用記
マンデルブロー集合の描画(ピクセル単位の描画)、樹形図(再帰的描画)、
プリンタでの描画:プリンタをプロッタとして使う、プロジェクタのブラック・アウト、
サウンドファイル(*.wav)の再生、サウンドファイル・メディアファイルの再生、アラーム時計、計時の精度・分解能、
画像ファイルの表示と透明度付きコピー、関数の立体図の回転、関数の等高線図の描画、破線の描画、
乱数(周期≒2**191≒3*10**57)、2乗和の計算誤差
ヒストグラムの描画、散布図と単回帰直線、確率分布関数の描画、
相関係数のシミュレーション、散布図の相関係数、負の分散になる場合、
分散の計算と有効桁数(標準C++準拠のコンソールプログラムの作成)、サンプリングのシミュレーション、
比の差の分散分析、カテゴリー評定の一致度(カッパ統計量Κ)、
平均値の差のt検定(条件間でデータが独立な場合)、平均値の差のt検定(条件間でデータに対応がある場合)、
相関係数=0の検定、カイ2乗検定(適合度の検定)、カイ2乗検定(分割表の検定)、
被験者間2要因分散分析、被験者間1要因・被験者内1要因分散分析、被験者内2要因分散分析、
正規分布の計算、カイ2乗分布の計算、t分布の計算、エフ分布の計算、2項分布、2項分布(区間推定)、
平均値の差の検定と信頼区間(データに対応がある場合)、相関係数の信頼区間、
最尤法とベイズ的方法(2項分布の区間推定)、簡単なMCMCプログラム例、
簡単な回帰分析、重回帰分析、ロジスティック回帰分析、ポアッソン指数型回帰モデルによる度数・頻度の分析、回帰モデルの比較
主成分分析(正射影によるデータ次元の圧縮)、カテゴリカルデータの主成分分析、
因子分析(データ変量に対する最小2乗法)、因子分析(主因子法)、判別分析、
信頼性係数(オメガω)、信頼性係数オメガ(ベイズ的分析)、カテゴリ項目の信頼性係数、
信頼性係数(クロンバックのアルファ係数)、T得点(偏差値)のベイズ推定、
双対尺度法(分割表(Contingency Table)に含まれる情報の可視化)、数量化法(カテゴリカルデータの分析)、
マッハ・バンド、ドットパターンの運動、錯視(Muller-Lyer illusion)、コントラストと差動結合、図―地反転図形、
並列分散処理ニューラルネットワーク(Parallel Distributed Processing: PDP)、
反応時間(単純反応時間と選択反応時間)、ポップアウト(pop out)と反応時間、メンタルローテーション(Mental Rotation: 心的回転)と反応時間、
簡単な上下法と主観的等価点(PSE)および弁別閾(JND)の推定、適応的上下法(弁別閾と主観的等価点の測定)、
検出の閾値、信号検出理論(SDT)、マグネチュード推定法(感覚の強さの測定)、
C++によるプログラミングを始めたとき、ファイル拡張子が「.h」であるヘッダー・ファイル(*.h)とファイル拡張子が「.cpp」であるソース・ファイル(*.cpp)の区別が判り難いと思う。ヘッダー・ファイルは#includeによってソース・ファイルに挿入されるが、その位置がソース・ファイルの先頭(頭の部分)であるのでヘッダー・ファイルと呼ばれると説明されている。しかし、機能的にヘッダー・ファイルとソース・ファイルは異なるものである。プログラムは、複数のファイルに分割されているとき、ソース・ファイル単位でコンパイルされ、コンパイルされたソース・ファイルがリンクされて実行可能なファイル(*.exe)が作成される。コンパイルとリンクは、ビルドと呼ばれている。ソース・ファイルのコンパイルによってメモリ上に確保された(定義された)オブジェクトあるいは関数は、同じ名前のものが複数のソース・ファイルのコンパイルによって作成されると、リンク時にエラーとなる。
ヘッダー・ファイルは、ソース・ファイルに挿入されてコンパイルされる。同じヘッダー・ファイルA.hが2つ以上のソース・ファイルに挿入される場合、メモリ上に作成されるオブジェクトあるいは関数がヘッダー・ファイルA.hにおいて定義されていると、その定義された名前のものは挿入されたソース・ファイルにおいてメモリ上に確保されることになり、同じ名前のものが各ソース・ファイルに対応して複数存在することになる。このため、リンク時にエラーとなる。このエラーを避けるためには、ヘッダー・ファイルではメモリ上に確保されるような名前の定義は行わないようにする必要がある。ヘッダー・ファイルにおいては、定義ではない宣言のみとしておくとよい。定義は、ソース・ファイルで行う。
Visual C++/CLRのフォーム・アプリケーションの場合、フォームはヘッダー・ファイル(例えば、Form1.h)において参照クラスとして宣言されている。イベントを処理するメンバ関数は、張り付けたボタンのダブルクリックなどにより自動的にフォームの参照クラスの宣言内でひな型が宣言される。ヘッダー・ファイル(例えば、Form1.h)において、フォームを表わす参照クラス型(例えば、Form1)の宣言の前の位置に、他の参照クラス型などの宣言を置くと、フォームのデザイナが働かなくなる、例えばタブ「Form1[デザイン]」をクリックしてもフォームが表示されなくなるので注意が必要である。このような宣言が必要なときは、別のヘッダー・ファイルを用意して、そこで必要な参照クラス型などの宣言を行った上で、#includeで挿入するとうまくいく。
岡本安晴 作