見出し画像

高校数学10分プログラミング(数学Ⅰ編 1.2次関数)12日目「2次方程式の実数解を求める」

マガジンリスト > 数学Ⅰ編 1.2次関数 > 12日目 課題

おはようございます。

本日は、高校数学10分プログラミング(数学I編 1.2次関数)の12日目です。

本日の課題は、2次方程式の実数解を求めるプログラムを作成することです。

解の公式

2次方程式$${ax^2+bx+c=0}$$の解は、$${D=b^2-4ac \geq 0}$$ならば、

$$
x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}
$$

で求めることができる。


課題

判別式を利用して、2次方程式

$$
a x^2 + bx + c = 0 \ (a \neq 0)
$$

の実数解の個数を求めたあと、その実数解をコンソールに出力するプログラムを作成してください。その上で、以下の2次方程式の実数解を求めてみてください。

(1) $${x^2-2x = 0 \ ( \ \Rightarrow \ a=1, b=-2, c=0 \ )}$$ 
(2) $${x^2-2x+1 = 0 \ ( \ \Rightarrow \ a=1, b=-2, c=1 \ )}$$
(3) $${x^2-2x+2 = 0 \ ( \ \Rightarrow \ a=1, b=-2, c=2 \ )}$$


ヒント

前回の課題『高校数学10分プログラミング(数学Ⅰ編 1.2次関数)11日目「2次方程式の実数解の個数を求める」』で実数解の個数を求めるプログラムは作成しています(ソースコード1)。

// 2次方程式の解の個数を判別式で分類する
void setup(){

  // 2次方程式ax^2+bx+cの係数
  float a = 1.0;
  float b = -2.0;
  float c = 0.0;
  
  // 判別式
  float D = b*b-4.0*a*c;
  
  // 2次方程式の解の個数を分類
  if( D > 0 ){
    println("異なる2つの実数解をもつ");
  } else if( D == 0 ){
    println("ただ1つの実数解(重解)をもつ");
  } else {
    println("実数解を持たない");
  }   
}

ソースコード1 2次方程式の実数解の個数を求めるプログラム(再掲)

今回は、このソースコード1に、解の公式を利用して実数解を求めてそれらの値をコンソールに出力するようにコードを追記していってください。


それでは、よろしくお願いします。

MK's papa

この記事が気に入ったらサポートをしてみませんか?