30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
|
from math import sqrt
|
||
|
|
||
|
def getValues():
|
||
|
while True:
|
||
|
values = input('Gi inn en andregradsliknings a, b og c separert med mellomrom:\n\t')
|
||
|
try:
|
||
|
splitValues = values.split(' ')
|
||
|
assert len(splitValues) == 3
|
||
|
return {
|
||
|
'a': int(splitValues[0]),
|
||
|
'b': int(splitValues[1]),
|
||
|
'c': int(splitValues[2])
|
||
|
}
|
||
|
except ValueError:
|
||
|
print('Sørg for at alle tallene er heltall.\n')
|
||
|
except AssertionError:
|
||
|
print('Det skal bare være 3 tall.\n')
|
||
|
|
||
|
values = getValues()
|
||
|
d = values['b']**2 - 4 * values['a'] * values['c']
|
||
|
|
||
|
expression = f'{values["a"]}x^2 + {values["b"]}x + {values["c"]}'
|
||
|
if d > 0:
|
||
|
roots = [ (-values['b'] + sqrt(d)) / (2 * values['a']), (-values['b'] - sqrt(d)) / (2 * values['a'])]
|
||
|
print(f'Andregradsligningen {expression} har de to reelle løsningene {roots[0]} og {roots[1]}')
|
||
|
elif d == 0:
|
||
|
root = (-values['b'] + sqrt(d)) / (2 * values['a'])
|
||
|
print(f'Andregradsligningen {expression} har en reell dobbelrot {root}')
|
||
|
else:
|
||
|
print(f'Andregradsligningen {expression} har to imaginære løsninger')
|