マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第2章 変数って何?
第11話 第10話課題の解答例
第10話課題
-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・
double型の社員を雇い、
1.23456789 + 9.87654321 + 2.57913579 + 8.64208642
を計算して社長に報告させてください。
今回も用意する double型は1つだけという条件にします。
実行結果

-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・
を実現するコード例(コードはコピペできるように常に全体を記載しています)
#include<iostream>//インクルードファイルiostreamの読み込み
#include<conio.h>//while(!_kbhit());を使うためのお呪い
using namespace std;//coutを使うときに必要なお呪い
void 挨拶社員();//ぼくは挨拶を行う係です。
void 整数を扱う社員();//ぼくは整数型変数を定義してその変数に整数値を代入する係です。
int 合計計算社員();//ぼくの任務は「1 + 2 + ・・・ + 10」の合計を計算して社長に報告することです。
int 積計算社員();//ぼくの任務は「1 × 2 × ・・・ × 10」の積を計算して社長に報告することです。
void 実数を扱う社員();//ぼくは実数型変数を定義してその変数に実数を代入し、代入された値をコンソール画面に表示する係です。
float 単精度型実数の合計を計算する社員();//ぼくは3つの実数を足して社長に報告する係です。
double 倍精度型実数の合計を計算する社員();//ぼくは4つの倍精度型実数を足して社長に報告する係です。
int main() {//私は社長だ。 挨拶社員();//ぼくは挨拶を行う係です。 整数を扱う社員();//ぼくは整数型変数を定義してその変数に整数値を代入する係です。
cout << "1 + 2 + ・・・ + 10 = " << 合計計算社員() <<
endl;
//合計計算社員() の報告を基とに 1 + 2 + ・・・ + 10 の計算結果をコンソール画面に表示
cout << "1 × 2 × ・・・ × 10 = " << 積計算社員() <<
endl;
//積計算社員() の報告を基とに 1 × 2 × ・・・ × 10 の計算結果をコンソール画面に表示
cout << 積計算社員() << endl; //積計算社員() の結果をもう一度表示
実数を扱う社員(); //実数型変数に値を入れて表示する社員
cout << 単精度型実数の合計を計算する社員() << endl;
//単精度型実数の合計を計算する社員() は実数の合計を計算して社長に報告することを任務とする社員です。
cout << 倍精度型実数の合計を計算する社員() << endl;
//倍精度型実数の合計を計算する社員() は実数の合計を計算して社長に報告することを任務とする社員です。
//倍精度型実数の合計を計算する社員()が返した値は22.33233331であるが、
//coutは標準では6桁のみが表示されるので22.3323となる。
while (!_kbhit());//待機させるための命令
return(0);//int main()終わるためのお呪い
}
void 挨拶社員() {//ぼくは挨拶をする係です。
cout << "こんにちは" << endl;//コンソール画面に表示
}
void 整数を扱う社員() {//ぼくは整数を扱う社員です。
int 整数a;//整数aを整数型の変数であると定義します。
int 整数b;//整数bを整数型の変数であると定義します。
整数a = 10;//整数aという箱に10を入れます。
整数b = 20;//整数bという箱に20を入れます。
cout << 整数a << " + " << 整数b << "
= " << 整数a + 整数b << endl;//コンソール画面に整数aの内容を表示
}
int 合計計算社員() {//ぼくの任務は「1 + 2 + ・・・ + 10」の合計を計算して社長に報告することです。
int 合計; 合計 = 0;//和の合計は0から出発
合計 = 合計 + 1;//0に1を加える
合計 = 合計 + 2;//1に2を加える
合計 = 合計 + 3;//3に3を加える
合計 = 合計 + 4;//6に4を加える
合計 = 合計 + 5;//10に5を加える
合計 = 合計 + 6;//15に6を加える
合計 = 合計 + 7;//21に7を加える
合計 = 合計 + 8;//28に8を加える
合計 = 合計 + 9;//36に9を加える
合計 = 合計 + 10;//45に10を加える
return(合計);//合計値を社長に報告
}
int 積計算社員() {//ぼくの任務は「1 × 2 × ・・・ × 10」の積を計算して社長に報告することです。
//暗算の苦手な方は電卓を手元に置いて計算させながら以下をお読みください。
int 積;
積 = 1;//積の計算は1から出発
積 = 積 * 2;//1に2をかける → 2
積 = 積 * 3;//2に3をかける → 6
積 = 積 * 4;//6に4をかける → 24
積 = 積 * 5;//24に5をかける → 120
積 = 積 * 6;//120に6をかける → 720
積 = 積 * 7;//720に7をかける → 5040
積 = 積 * 8;//5040に8をかける → 40320
積 = 積 * 9;//40320に9をかける → 362880
積 = 積 * 10;//362880に10をかける → 3628800
return(積);//積の値を社長に報告
}
void 実数を扱う社員() {//ぼくは実数型変数を定義してその変数に実数を代入し、代入された値をコンソール画面に表示する係です。
float 実数型変数;//実数型変数の定義
実数型変数 = 3.14159;//実数型変数に3.14159を代入=実数型変数という箱に3.14159を入れる
cout << 実数型変数 << endl;//実数型変数という箱に入っている3.14159をコンソール画面に表示
}
float 単精度型実数の合計を計算する社員(){//ぼくは3つの実数を足して社長に報告する係です。
float 単精度型実数の合計変数;
単精度型実数の合計変数 = 0;//足し算は0から出発
単精度型実数の合計変数 = 単精度型実数の合計変数 + 1.2345;//0に1.2345を加える
単精度型実数の合計変数 = 単精度型実数の合計変数 + 9.8765;//1.2345に9.8765を加える
単精度型実数の合計変数 = 単精度型実数の合計変数 + 3.6789;//1.2345と9.8765の合計値に3.6789を加える
return(単精度型実数の合計変数);//社長に3つの単精度型実数の合計を報告
}
double 倍精度型実数の合計を計算する社員() {//ぼくは4つの倍精度型実数を足して社長に報告する係です。
//暗算が苦手な方は、電卓を手にして以下のコードを読んでください。
double 倍精度型変数;//倍精度型変数を定義しています。
倍精度型変数 = 0;//足し算は0から始まります。
倍精度型変数 = 倍精度型変数 + 1.23456789;
//0に1.23456789を加えます。 → 1.23456789
倍精度型変数 = 倍精度型変数 + 9.87654321 ;
//1.23456789に9.87654321を加えます。 → 11.1111111
倍精度型変数 = 倍精度型変数 + 2.57913579;
//合計値11.1111111に2.57913579を加えます。 → 13.69024689
倍精度型変数 = 倍精度型変数 + 8.64208642;
//合計値13.69024689に8.64208642を加えます。 → 22.33233331
return(倍精度型変数);//社長に4つの倍精度型実数の合計を報告
}
double は float よりも細かい数字まで扱える“高精度の実数型”です。
次話では文字型変数を扱います。
if文を学んでいないので、性格診断のようなことはできませんが、
表示だけそれに近いものにします。
今回も次話の課題を出しておきます。
第12話課題
-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・
実行結果

というように表示結果を変えてください。
そのために
cout << "1.23456789 + 9.87654321 + 2.57913579 + 8.64208642
= " << 倍精度型実数の合計を計算する社員() << endl;
を
cout << "1.23456789 + 9.87654321 + 2.57913579 + 8.64208642
= " << fixed << setprecision(10) << 倍精度型実数の合計を計算する社員() << endl;
と変更して、
さらに、setprecision(10) を使うために
#include<iostream>//インクルードファイルiostreamの読み込み
#include<conio.h>//while(!_kbhit());を使うためのお呪い
#include<string> //文字列変数を使えるようにするために組み込む
#include <iomanip> //setprecisionを使えるように組み込む
赤の2行を付け加えておく必要があります。
fixed << setprecision(10)によって10桁まで表示されるようになります。
include<string> //文字列変数を使えるようにするために組み込む
は次話で文字型変数を使うために入れておいてください。
-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・-・
第2章第10話へ 第2章第12話へ
本講義トップへ