while True:

問題1

実数係数 𝑎, 𝑏, 𝑐 を読み込んで二次方程式 𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0 (𝑎 ≠ 0) を解くプログラムを作れ.なお,解が複素数の場合にも対応せよ.

難易度 ★☆☆☆☆

基本的な算術問題です。算術演算子はこちらを参考にしてください。 解の公式によって解を求めますが、ルート内が負になるとき(複素数解)の時には場合分けが必要なのでここでIFを用います。 IF演算子はこちらをご参照ください。
program question1
	implicit none
	real :: a, b, c, D, x1, x2
	print *, "Input a, b, c: "
	read *, a, b, c

	D = b ** 2 - 4 * a * c
	if ( D > 0 ) then
		print *, "X1 = ", (- b + D ** 0.5) / (2 * a)
		print *, "X2 = ", (- b - D ** 0.5) / (2 * a)
	elseif ( D == 0 ) then
		print *, "X = ", - b / (2 * a)
	else
		print *, "X1 = ", - b  / (2 * a), "+", (- D) ** 0.5 / (2 * a), "i"
		print *, "X2 = ", - b  / (2 * a), "-", (- D) ** 0.5 / (2 * a), "i"
	end if
end program question1
ページのトップへ戻る