2312
コメント:
|
2648
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 14: | 行 14: |
== プログラムと入出力 == | == 簡単な例と入出力 == |
行 32: | 行 32: |
== プログラムの実装方法 == | == 別の例 == 重力が働いている状態で、運動方程式を解いて物体の運動を求める。微分方程式を数値的に解くには、まず方程式を時間について離散化してΔt毎の座標逐次求めていく。簡単のため空間は2次元として、出力は各時刻におけるx、y座標を記録していくことにする。 |
プログラミングの基本
計算機上で行う計算
最初に、プログラムは実行中にユーザーとのやり取りを行わない簡単なプログラムを扱う。この場合、プログラムの実行には下の図のように、何らかの入力データを元に計算をして結果を出力することになる。
文法上は、入力データ及び出力データは無くても問題ない。 このような簡単なプログラムをコマンドラインで実行して、入力データ、出力データは共に端末上で入力、出力(表示)させるものとする。
計算の過程では、様々なデータを変数として保持して、変数同士の演算や関数を用いて計算した値を別の変数に代入するというステップを繰り返していく。
簡単な例と入出力
簡単なプログラム(1+2を計算)を用いて、入出力データを扱う方法を示す。
入力データ |
計算 |
出力データ |
プログラム名 |
コメント |
なし |
1+2 |
3 |
Add_1plus2.exe |
1+2の計算に特化 |
1, 2 |
a+b; a=1, b=2 |
3 |
Add_AplusB.exe |
任意の2つの数字の足し算 |
+, 1, 2 |
a 演算子 b; 演算子='+', a=1, b=2 |
3 |
Calculate_AandB.exe |
任意の2つの数字の四則演算 |
実行の仕方は、
- ./Add_1plus2.exe
- ./Add_AplusB.exe 1 2
- ./Calculate_AandB.exe + 1 2
2番目、3番目のプログラムでは実行時に与える数字(コマンドライン引数)を変えることで異なる数値の演算が可能となり、より汎用性のあるプログラムと言える。与えられた引数を読み込んだり、入力データのチェックを行ったりする必要がある分、プログラムの中身はより複雑になる。
このコード例から、プログラム内にコマンドライン引数を読み込む方法(std::cinを使用)や画面上に出力させる方法(std::coutを使用)もわかる。std::cin (std::out)では、<<(>>)演算子を用いてデータを順番に送ることで入力、出力を行う。
別の例
重力が働いている状態で、運動方程式を解いて物体の運動を求める。微分方程式を数値的に解くには、まず方程式を時間について離散化してΔt毎の座標逐次求めていく。簡単のため空間は2次元として、出力は各時刻におけるx、y座標を記録していくことにする。