Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Delta negativo - Esercizio 5

Tommaso.Lopedote (1470 points)
5 11 28
in Programmare in Python by (1.5k points)
closed by

Buona sera, riguardo l'esercizio assegnato dal Prof. Spognardi

  1. Scrivere uno script python che prende in input tre float a, b, c, e calcola e stampa le due radici x dell'equazione: CodeCogsEqn1.gif

Premetto che non ho mai avuto esperienza di programmazione fino all'inizio di questo semestre, di conseguenza ho provato a risolvere l'esercizio in modo artigenale, usando l'aritmetica. Quindi mi chiedevo se ci fosse un modo per impartire una condizione a Python riguardando il Delta della formula risolutiva (poiche' i valori non sono pre-inseriti ma lo script attendera' l'inserimento degli stessi da parte dell'utente) dell'equazione di secondo grado, dato che per delta minore di zero non ci sono zeri che risolvono l'equazione, ho pensato che fosse necessario impartire una condizione simile al dire:

Se Delta= valore minore di zero 

mostra messaggio "per ogni x appartenente ad R".

Poiche' la parabola si trova al di sopra o al di sotto dell'asse delle ordinate la risoluzione della equazione non restituisce alcuna intersezione.

742 views
closed with the note: risolto

2 Answers

Alessio Natalucci (3660 points)
7 10 23
by (3.7k points)
edited by

Per questo caso la cosa migliore è utilizzare la formula dell'if, elif, else (che ancora dobbiamo vedere a lezione), in Python è strutturata in questo modo (non son sicuro sia scambio di codice, in tal caso mi scuso in anticipo):
 

if expression1:
   statement(s)
elif expression2:
   statement(s)
elif expression3:
   statement(s)
else:
   statement(s)

[L'identazione (il lasciare lo spazio) è fondamentale in python]

Nel caso delle equazioni di secondo grado ci sono tre possibili situazioni, ovvero il delta maggiore, minore o uguale a zero. Utilizzando questa formula puoi stampare tre diversi output in base ai parametri inseriti in partenza.

Se ti vuoi portare avanti e iniziare a dare un occhiata qui puoi trovare altre informazioni:

Link

Tommaso.Lopedote (1470 points)
5 11 28
by (1.5k points)
Grazie, ho risolto come volevo.
SimoneBd96 (3030 points)
6 12 33
by (3.0k points)
Per quanto riguarda questa soluzione se non vuoi complicarti troppo la vita (non so se può essere una soluzione elegante), io ho scritto la formula del delta, il caso delta <0 lo gestisce python che restituisce un messaggio di errore, cioè:

Traceback (most recent call last):

ValueError: math domain error
G
Giuseppe01 (1500 points)
0 0 10
by (1.5k points)

Non credo che lasciare che il programma generi un errore sia una buona idea perché in realtà, anche se l'interpreter mostra quel messaggio, non hai un dato di qualche tipo da restituire all'utente. Ciò che ottieni è un programma che va in errore e un utente che si ritrova con un messaggio "incomprensibile". Casi di errore prevedili andrebbero evitati facendo gli opportuni controlli, come suggerito nella precedente risposta, così da generare un output che abbia senso (ad esempio il messaggio L'equazione non ha soluzioni nei Reali).

Loriv3 (7970 points)
13 21 84
by (8.0k points)
Basta calcolare il delta solo come b^2 - 4ac, calcolerai la radice quadrata poi solo nel caso di delta>0 così non darà alcun errore