Ciao Spero di poterti essere utile.
In realtà avevo scritto la risposta molto prima ma per problemi di connessione non ho potuto inviartela fino ad ora. Tra l'altro l'errore che hai corretto l'ho trovato anch'io, solo che cambia un segno, dacci un'occhiata magari...
Prima di risponderti ti do qualche consiglio piuttosto elementare:
- Per prima cosa quando scrivi codice (anche se è semplice come in questo caso) è buona abitudine curare l'indentazione (cioè come è formattato il testo) (nonché usare il tag per il codice quando sei sul forum);
- Dai dei nomi più intuitivi alle variabili prima di consumare tutte le lettere dell'alfabeto (o della tabella ASCII) Anche se è chiaro che in questo programma non è strettamente necessario, ti conviene utilizzare più di una volta alcune variabili per i calcoli intermedi (stando attento/a a non fare confusione), o di dare comunque dei nomi più esplicativi (pensaci: di solito si danno nomi come "b", "c", ecc. anche perché sono più brevi e comodi, ma se devi usare solo una volta una variabile tanto vale darle un nome più lungo ma comprensibile!);
Un consiglio importante invece è questo:
prima di calcolare una radice quadrata dovresti effettuare un controllo (se il numero è negativo oppure no), invece non lo fai. Ripeti questo errore tre volte nel programma, e l'ultima è quella che ti darà più problemi immagino: prima di calcolare sqrt(H*H-4*G*I) devi sapere se il delta è negativo o no, perché per esempio non puoi chiedere di calcolare sqrt(-1)! Credo anche che non ti ricordi quale sia il "delta" di un'equazione di secondo grado, che in questo caso è H*H-4*G*I... Tu prima chiedi al programma di fare la radice e poi controlli se è negativa Il codice giusto sarebbe qualcosa come
delta = H*H - 4*G*I;
if (delta<0)
{
...
}
else if (delta>0)
{
rqdelta=sqrt(delta);
...
}
else if (delta==0)
{
rqdelta=sqrt(delta);
...
}
Così alcuni problemi dovrebbero essere risolti. Poi mi sembra (ma qui potrei sbagliare) che ci siano due errori nelle formule per H e I (come le hai ricavate?); il codice corretto dovrebbe essere questo:
H=2*E*F+a*D*E+b*D*D;
I=F*F-a*D*F+C*D;
e anche
x1=(-E*y1-F)/D;
x2=(-E*y2-F)/D;
Dimmi come va il programma dopo aver corretto queste cose