岡本安晴(著)
「大学生のための心理学VC++プログラミング入門」
Visual Studio 2015を使用する場合の説明のウェブサイト
Visual Studio 2015用のサンプルプログラムのファイルも用意しました。
心理学学生以外の読者にも有用であるように用意した入門書であるが、
具体的なサンプルプログラムを、多くの読者が楽しめるように統計・心理学実験関係から選んだ。
しかし、本書を利用するのに心理学の予備知識は要らない。
第1章から第10章までにおいて標準C++準拠の解説を行った。
グラフィック描画(第14章)は、簡単なもので楽しめるものをとりあげた。
Windows独特のプログラミング(第15章)が簡単なゲームプログラミング感覚で学べるように
予備知識がなくても楽しめるものを心理学実験から選んだ。
第12章「フォームプログラミング」の第12.1節「新規作成」のところは、
Visual C++2019の場合は「空のCLRプロジェクト」を選ぶ手順になるが、これについては
<Visual Studio 2019 C++/.NETフォームプログラミング>を参照されたい。
VC++/CLRコンソールアプリケーションにおけるテキストファイル入出力
サンプルプログラム・ソースコードのpdfプリント出力のウェブサイト
Visual C++/CLRによる描画およびマルチスレッドについて
Visual C++2012におけるWindowsフォームアプリケーションの作成
「はしがき」より
やさしいプログラムをC++で書くことも可能である。C++でやさしいプログラムを書くことも可能であるが、C++は高機能でもある。Fraser(2009)は、Visual C++が.NET対応の言語の中で最も優れたものであるとしている。本書は、プログラミングをVisual C++によって始めようとする学生を対象として用意したものである。C++には豊富な機能が用意されており、Visual C++はさらに種々の拡張が行われている。しかし、データ分析やシミュレーションなど大学でのプログラミングではそれらの機能の一部で十分対応できる。プログラミングに習熟するにつれてC++あるいはVisual C++の豊富な機能を使いこなすことのメリットが出てくるが、最初は実用上の基本的な機能をまず学習して、いろいろなプログラミングの経験を積むことがよいと思う。このような観点から、本書ではC++あるいはVisual C++の機能を網羅的に説明するのではなく、著者の経験に基づいて扱う機能を選んである。本書で扱われていない事柄については、巻末に挙げてある文献などを参照されたい。プログラミングが初めての場合は、まず本書レベルの説明でプログラミングを始め、いろいろなプログラムを書いて慣れていくにつれて必要に応じて詳細な参考書あるいは解説を見ると解りやすいと思う。
本書の構成は、第1部と第2部に分かれており、第T部が標準C++を対象とした内容である。ただし、コンソールでの入出力(標準入出力)では、.NET用の標準入出力のためのクラス型Consoleも用いているので、サンプルプログラムを標準C++のものに変更するときは、この標準入出力の箇所を標準C++あるいはCのものに変更する必要がある。この標準入出力の違いを無視すれば、標準C++の入門解説として本書第T部を読むこともできる。巻末補足「A.2 はじめに(Linuxでのプログラミング)」においてLinux上でのC++プログラミングについて簡単に説明した。本書第T部の解説をLinuxにおいて学習する場合に参考になると思う。
第2部は、ビジュアルなプログラミングの基礎となる.NET対応のC++、すなわちVisual C++/CLRの説明である。.NETプログラミングが初めての読者が、とりあえずビジュアルなプログラミングを試してみたいという場合は、まず「12 フォーム・プログラミング」の章から読んでみるのもよいと思う。
プログラミングの学習においては、プログラム例はいろいろと参考になる。本書では、プログラム例はできるだけ1つの完結したプログラムとして例示することに努め、説明に必要な一部のコードのみを提示することは避けるようにした。プログラム例として挙げられているリストを、読者が1つ1つ実際にエディタで入力してその動作を確認することができるように配慮した。本書のプログラム例は主に心理学におけるものが用いられているが、他の分野の場合でもデータ分析あるいはシミュレーションのプログラミングの参考になると思う。また、本書の心理学サンプルプログラムは、心理学以外の領域の読者にも楽しんでもらえると考えている。・・・
目次
0.はじめに
本書で初めてC++プログラミングを始める場合は、
まず、第1章から第6章までを読み、
その後、第12章、第13章へ進むという方法で
Visual C++による簡単なプログラミングに慣れることが勧められる。
その後、必要に応じて他の章を読んでいけばよい。
WindowsでのC++プログラミングは、Visual C++/CLRを利用すると容易になる。第11章から始まる
第U部においてVisual C++/CLRプログラミングの解説を行っている。Windowsフォームアプリケーションにおける
グラフィック描画やイベント駆動プログラミングなどをサンプルプログラムを用いて具体的に説明している。
第T部 標準C++準拠プログラミング
1.簡単なプログラム例: 1.1 識別子 1.2 変数 1.3 文字列 1.4 数値演算
2.プログラムの流れの制御: 2.1 論理型 2.2 if文 2.3 条件演算子「? :」 2.4 switch文 2.5 do文 2.6 while文 2.7 for文 2.8 continue文とbreak文
3.配列: 3.1 簡単な配列 3.2 整列
4.平均値と分散――応用プログラム例1――
5.型: 5.1 整数型 5.2 文字型 5.3 列挙体 5.4 ポインタ 5.5 ポインタと配列
6.関数: 6.1 関数定義 6.2 参照渡し 6.3 配列を引数とする場合 6.4 関数を引数とする場合 6.5 オーバロード 6.6 再帰 6.7 整列:クイックソート
7.クラス型: 7.1 クラス型の基本 7.2 継承 7.3 仮想関数とポリモーフィズム 7.4 コンストラクタとデストラクタ 7.5 例外
8.積分と乱数――応用プログラム例2――: 8.1 積分 8.2 乱数
9.テンプレート: 9.1 関数テンプレート 9.2 クラステンプレート
10.名前空間: 10.1 プログラムの分割 10.2 ヘッダーファイルとソースファイル 10.3 名前空間 10.4 スコープ 10.5 記憶域期間 10.6 静的メンバ 10.7 リンケージ
第U部 Visual C++/CLRプログラミング
11.参照型: 11.1 参照クラス型 11.2 プロパティ 11.3 String型 11.4 Exception 11.5 値クラス型と列挙クラス型
12.フォーム・プログラミング: 12.1 新規作成 12.2 既存プログラムを開く
13.テキストファイル入出力: 13.1 1変量データの統計量 13.2 2変量データの統計量
14.描画: 14.1 描画の基礎 14.2 ダイアモンド・パターン 14.3 樹形図
15.心理学実験――応用プラグラム例3――: 15.1 反応時間 15.2 錯視 15.3 ランダムドットの運動知覚
16 スレッド: 16.1 反応の監視と対応する処理――スレッドの利用1―― 16.2 処理の分割――スレッドの利用2――
17 フォームの再利用: 17.1 フォームのコピー方法 17.2 子フォームの再利用
A 補足: A.1 数値表現 A.2 Linuxでのプログラミング
ファイルは圧縮ファイル(*.zip)としてまとめた。
ファイル名をクリックしてダウンロードしたものをマウスの右ボタンでクリックして表示されるメニュから「解凍」あるいは「展開」などを選ぶと解凍される。
Visual Studio 2015における変更点についての説明は、別にウェブサイトを用意した。
サンプルプログラムをダウンロードしてVisual Studioで開いても、ソースコードファイルが表示されないことがある。
ソースコードファイルの表示方法についての説明のウェブサイトを用意した。
Visual Studio 2015の更新(2016.07.22)後、プロジェクトが開けなくなるというトラブルが発生することがあるが、
この対処法の説明のウェブサイトを用意した。
第1章から第6章までのサンプルプログラムをまとめた圧縮ファイル Chap1_6.ZIP、Chap1_6_vs2015.zip(Visual Studio 2015用)
第7章から第10までのサンプルプログラムをまとめた圧縮ファイル Chap7_10.ZIP、Chap7_10_vs2015.zip(Visual Studio 2015用)
第11章から第17章までのサンプルプログラムをまとめた圧縮ファイル Chap11_17.ZIP、Chap11_17_vs2015.zip(Visual Studio 2015用)
付録におけるサンプルプログラムをまとめた圧縮ファイル ChapA.ZIP、ChapA_vs2015.zip(Visual Studio 2015用)
これらのサンプルプログラムはVisual C++2008対応でありVisual C++2010で開くこともできるが、
Visual C++2005対応版は第1章から第9章までのサンプルプログラムを圧縮ファイルForVCpp2005.zipとして用意した。
上記サンプルプログラムでは、1行に複数の文を書くことはなるべく避けている。
これは、プログラムの可読性を高めるためということの他、デバッグ情報を判りやすくするためという意味もある。
1行当たりのプログラムコードの内容が少ない方がデバッグは容易になる。
本書中のプログラムリストは、ページ内の空白面積を少なくするため、1行に複数の文を書くなどの形に改めたものを掲載した。
これは、ページ数を抑えて、本書の価格が高くならないようにという理由もある。
本書に直接関わる内容以外のサンプルプログラムについては
心理学実験やデータ分析などのVisual C++プログラミング関係のウェブサイトのトップページ
統計分析のVisual C++プログラミング入門のウェブサイト
も用意しているので参照されたい。
プリンタをプロッタのように使ってプリンタで描画する例は、ウェブサイト
に用意した。