Segui la tecnica top-down e la suddivisione in sottoproblemi input / elaborazione / output
1
print("ax + b = 0")
a = float(input("a = ")) # INPUT
b = float(input("b = ")) # INPUT
x = -b/a # ELABORAZIONE
print(x) # OUTPUT
2
Se a <> 0 …
...
if(a != 0):
x = -b/a
risp = "x = "+str(x)
if(a == 0):
risp = "???"
...
3
Con tre selezioni singole è molto semplice (ma poco leggibile e poco efficiente)
...
if(a != 0):
x = -b/a
risp = "x = "+str(x)
if(a == 0) and (b != 0):
risp = "Impossibile"
if(a == 0) and (b == 0):
risp = "Indeterminata"
...
4
Con le selezioni annidate è più aderente al linguaggio naturale e alla discussione matematica
a = float(input("a = "))
b = float(input("b = "))
if(a != 0):
x = -b/a
risp = "x = "+str(x)
else:
if(b != 0):
risp = "Impossibile"
else:
risp = "Indeterminata"
print(risp)
5
Con la selezione multipla è più ordinato
...
if(a != 0):
x = -b/a
risp = "x = "+str(x)
elif(b != 0): # a == 0, b != 0
risp = "Impossibile"
else: # a == 0, b == 0
risp = "Indeterminata"
...
fractions
Se i coefficienti dell’equazione sono frazioni anche la soluzione sarà una frazione!
import fractions
a = fractions.Fraction(3, 5)
b = fractions.Fraction(4, 9)
if(a != 0):
x = -b/a
risp = "x = " + str(x)
else:
if(b == 0):
risp = "Indeterminata"
else:
risp = "Impossibile"
print(risp)
Output: x = -20/27