C言語で簡単なプログラミングをしましょう!
今回は「二次関数の解」です。
↓Cはコンパイル(機械語に翻訳)が必要なので、以下でコンパイラの「MinGW」をインストールしてください。
C言語およびC++のコンパイラMinGWのインストールとテスト
二次関数の解を求める理由
理由は簡単です。
「物が落ちてくる秒数を予想できる」
「ある距離(高さ)まで飛ばすのにいくら力が必要かわかる」
「200mの高さから物体を落とすと何秒後に落ちる」がわかります!
暗算でできたらすごい!
コード
ファイル名は「2ji.c」にします。
コピー&ペーストではなく、自分で書くとGood!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | /*--------------------------------------*/ // 2次方程式の解 /*--------------------------------------*/ #include <stdio.h> #include <math.h> int main() { double a, b, c, d, x, x1, x2; // 係数読み込み printf ( "二次関数の係数a,b,cは?" ); scanf ( "%lf %lf %lf" , &a, &b, &c); // 1次方程式の場合 if ( fabs (a) <= 1.0e-10) { if ( fabs (b) <= 1.0e-10) { printf ( " 解を求めることができません" ); } else { x = -c/b; printf ( " x=%f\n" , x); } } // 2次方程式の場合 else { d = b*b-4.0*a*c; // 2実数 if (d >= 0.0) { d = sqrt (d); x1 = 0.5*(-b-d)/a; x2 = 0.5*(-b+d)/a; printf ( " x=%f %f\n" , x1, x2); } // 虚数 else { d = sqrt (-d); x1 = -0.5*b/a; x2 = 0.5*d/a; printf ( " x=%f ± i%f" , x1, x2); } } return 0; } |
結果、動き
「200mの高さから物体を落とすと何秒後に落ちる」答え
約6.4秒後だそうです。
エレベーターが自由落下した時に使えるかもしれない無駄知識!
予想できるエラー
In function main ”main”関数の中で、
12: error: stray ‘\129’ in program 12行目に”stray”(全角文字)があるよ!’\129’とかいう
12: error: syntax error before “G” “syntax”(構文)にエラーがあるよ!”G”の前に
文字コードエラーです。
「ShiftJis」に文字コードを変えてね!
文字コードって何?という方は→文字コードの基本と応用