Cine a scris programe în FORTRAN ştie cât de dificil era să dai soluţie acestei probleme încât să trateze şi situaţia în care discriminantul era negativ. Limbajul PYTHON are o bibliotecă foarte puternică de funcţii matematice care lucrează cu numere complexe, nuumită cmath
, care trebuie importată, iar numerele reale sunt privite ca un caz particular, în care partea compelxă este zero şi deci extragerea rădăcinii pătrate dintr-un număr real nu mai trebuie tratată separat. Programul este:
|
#
# Solutionarea ecuatiei de gradul al II-lea
# a*x**2 + b*x + c = 0
#
import cmath
raspuns = 'y' # y pentru YES
while raspuns == 'y' or raspuns == 'Y':
a = float(input(' coeficientul a este:'))
b = float(input(' coeficientul b este:'))
c = float(input(' coeficientul c este:'))
gama = 2*a
eta = -b/gama
delta = cmath.sqrt(b*b - 4*a*c)/gama
x_1 = eta - delta
x_2 = eta + delta
print('Solutia X1 este:', x_1)
print('Solutia X2 este:', x_2)
raspuns = input(' Daca vreti sa continuati, tastati y or Y: ')
print(' Multumesc ca ati lucrat cu acest program!')
|
|
Soluţiile oferite sunt:
coeficientul a este:1
coeficientul b este:-5
coeficientul c este:6
Solutia X1 este: (2+0j)
Solutia X2 este: (3+0j)
Daca vreti sa continuati, tastati y or Y: y
coeficientul a este:1
coeficientul b este:2
coeficientul c este:6
Solutia X1 este: (-1-2.23606797749979j)
Solutia X2 este: (-1+2.23606797749979j)
Daca vreti sa continuati, tastati y or Y: y
coeficientul a este:1
coeficientul b este:-5
coeficientul c este:6
Solutia X1 este: (2+0j)
Solutia X2 este: (3+0j)
Am optat pentru un program în care utilizatorul are posibilitatea să soluţioneze oricât de multe ecuaţii de gradul al doilea, dacă tastează y sau Y, ştiut fiind faptul că mulţi profesori au plăcerea de a-şi tortura elevii, dându-le să rezolve peste 30 de ecuaţii de gradul al doilea până data viitoare, de parcă asta îi face pe elevi şi mai frumoşi şi mai deştepţi. Nici măcar viteza de calcul nu le creşte şi nici puterea de concentrare.
(afişat azi 18 aprilie 2022 ora 17,40)
|