문제) 엑셀을 이용하여 이차방정식()을 풀어라
출제의도) If문을 이해한다.
해법)
1) 첫행(셀A1부터 셀E1까지)에 방정식에 필요한 계수들을 기록한다.
2) 둘째 행을 계수의 입력과 근에 대한 출력으로 설정한다.
3) 마지막 셀(셀F2)에 프로시저를 실행시킬 ‘단추’를 둔다.
4) VBA로 이차방정식을 푸는 프로시저를 다음과 같이 작성한다.
특징: 실근뿐만 아니라 허근도 구한다. 불능과 부정도 판정한다. 설령 이차항의 계수가 0일지라도, 즉 이차방정식이 아닐지라도 계산한다.
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 48 49 50 51 52 53 54 55 56 |
Sub SolveQuadraticEquation() Dim a As Single Dim b As Single Dim c As Single 'Dim x1 As Single '실근만 있을때는 유효하나, 허근이 있으면 좀 곤란하게 되지요. 'Dim x2 As Single Dim d As Single '판별식 discriminant Dim u As Single Dim v As Single Dim output1 As String '허근의 표시 문자인 i를 출력하기 위해서, Dim output2 As String '그리고 부정과 불능을 출력하기 위해서 문자열로 처리함. '1) 셀에서 값을 읽어온다. Read the varibles from the excel cells a = Range("A2") b = Range("B2") c = Range("C2") ' '2) find the roots of equation If a <> 0 Then ' --> quadratic equation d = b ^ 2 - 4 * a * c u = -b / (2 * a) If d > 0 Then '서로 다른 두 실근(實根)을 갖는다. v = Sqr(d) / (2 * a) output1 = u + v output2 = u - v ElseIf d < 0 Then '허근(虛根)을 갖는다. v = Sqr(-d) / (2 * a) output1 = u & "+" & v & "i" output2 = u & "-" & v & "i" Else 'd=0 '중근(重根)을 갖는다. output1 = u output2 = output1 End If Else 'a = 0 If b <> 0 Then '--> linear equation output1 = -c / b output2 = "None" Else 'b= 0 If c <> 0 Then output1 = "不能" output2 = "不能" Else 'c = 0 output1 = "不定" 'indeterminate output2 = "不定" End If End If End If ' '3)출력 Output Range("D2") = output1 Range("E2") = output2 ' End Sub |