BASICプログラミング JIS Full BASIC 

◎ 二次方程式の解

 二次方程式、y=ax + bx + c (a≠0)の解を求める。

判別式 D = b2 - 4ac  D = 0 重解
 D > 0 解あり
 D < 0 解なし
方程式 ax2 + bx + c = 0 (a≠0)
 の解の公式
x = (-b + SQR(b ^ 2 - 4 * a * c)) / (2 * a)
 = (-b + SQR(D))/(2 * a)
x = (-b - SQR(b ^ 2 - 4 * a * c)) / (2 * a)
 = (-b - SQR(D))/(2 * a)

 
 
 
 
 SQR(n)は、平方根 √n のこと。

 まず、判別式で解を判別する。D>0(解あり)の場合、解の公式を使って、x1=XXとx2=XX の2つの解を求める。D=0(重解)の場合、解は x1=x2=XX であるから解の公式のどちらかを使って求める。D<0(解なし)の場合は「解なし」とメッセージを表示する。

 


問題44 次のプログラムは、二次方程式、y=ax + bx + c (a≠0)のa,b,cを入力して解を繰り返し求めるものである。ただし、a=0のときにプログラムを終了する。空欄を埋めて完成させなさい。  [MON44.BAS]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PRINT "二次方程式ax^2+bx+c(a≠0)の解"
DO
   INPUT PROMPT "a(0で終了)=":a
   IF   @  THEN
      EXIT DO
   END IF
   INPUT PROMPT "b=":b
   INPUT PROMPT "c=":c
   LET d=  A 
   IF  B   THEN
      PRINT "解なし"
   ELSEIF  C  THEN
      LET x1=-b/(2*a)
      PRINT "X1=X2=";x1
   ELSE
      LET x1=(-b+SQR(d))/(2*a)
      LET x2=(-b-SQR(d))/(2*a)
      PRINT "X1=";x1,"X2=";x2
   END IF
LOOP
END
解答欄(英数字は半角で入力すること。余分な空白は入れないこと)
  @   A   B   C
   解答を入力し、[解答チェック]ボタンをクリックする。正解は   、不正解は   で表示される。

 

[実行結果] 色部分が入力データである。

二次方程式ax^2+bx+c(a≠0)の解
a(0で終了)=1
b=1
c=1
解なし
a(0で終了)=1
b=-1
c=-2
X1= 2 X2=-1
a(0で終了)=1
b=-2
c=1
X1=X2= 1
a(0で終了)=0

 

 BASICプログラミング JIS Full BASIC 

 

 

inserted by FC2 system