第3講 for文の学習
第4話 円周率πを計算しよう
前話問題解答
@ はじめの値5,終わりの値104(105,106も可),3
A はじめの値101,終わりの値57(58,59,60も可),−4
前話課題解答例
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
int a,b,c,i,w=0;
//TextBoxからはじめの値、終わりの値、変化の幅を取得する
a=int::Parse(textBox1->Text);
b=int::Parse(textBox2->Text);
c=int::Parse(textBox3->Text);
//和を計算する
for(i=a;i<b+1;i=i+c){
w=w+i;
}
//和を表示する
textBox4->Text=w.ToString();
//初期化をする
w=0;
//2乗の和を計算する
for(i=a;i<b+1;i=i+c){
w=w+i*i;
}
//2乗の和を表示する
textBox5->Text=w.ToString();
//初期化をする
w=0;
//3乗の和を計算する
for(i=a;i<b+1;i=i+c){
w=w+i*i*i;
}
//3乗の和を表示する
textBox6->Text=w.ToString();
}
};
}
w=0;を忘れると正しい結果が出ません。
理由は、前の和を計算したときに、wは0でなくなっているからです。
さて、for文を使って、円周率を計算してみましょう。
円の面積の公式はでした。
したがって、r=1のとき、円の面積はちょうどπですから、
半径1の円の面積を計算すればよいのです。
半径1の面積を計算するためには、
1/4円
の面積を計算して、4倍すればよいのです。
では、1/4円の面積はどのように計算したらよいでしょうか。
小さい長方形に分けて足していけば、円の面積に近い値が出ます。
長方形の横幅を小さくしていけば、誤差は小さくなっていきます。
横幅をTextBoxから取得できるようにしてやって、
横幅とともに計算値がπに近づいていく様子を観察できるようにしてみましょう。
横幅をdとすると、1個目の長方形の縦は1ですから、その面積は
d×1=d
です。
では2個目の長方形の面積はどうでしょうか。
縦がわからないとわかりません。
1/4円の方程式は、でした。
ですから、2個目の長方形の縦は、です。従って、その面積は
3個目は縦がで、面積は
4個目は縦がで、面積は
以下同様にして、
n個目は縦がで、面積は
したがって、1/4円の面積は
すなわちを計算すればよいのです。
C言語でルートxを計算させるときは、
sqrt(x)とします。そして、sqrt()を使うときには、コードの冒頭で
#include<math.h>
と記述しておく必要があります。
この冒頭を出すには、
一番上までスクロールします。一番上までスクロールして、
#pragma onceの次の行に#include<math.h>と記述してください。
math.hはインクルードファイルの1つです。
インクルードとは読み込むという意味です。
ルートを計算するsqrt()を使うときには、インクルードファイルmath.hを
読み込んでおく必要があるのです。その読み込み命令が、
#include<math.h>
なのです。math.hには、ルート以外いろいろな関数が用意されています。
これをfor文で実現するにはどのようにコーティングしたらよいでしょうか。
Form1とコードを考えてください。
第3話へ 第5話へ
vc++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る