TheJudge
Utente Attivo
- Messaggi
- 335
- Reazioni
- 84
- Punteggio
- 42
mmmh
c'è da lavorare parecchio sul risolvere problemi e possibilmente farlo con efficienza, ragionare sui tipi ecc. ecc.;
per esempio, in questo caso particolare
- per calcolare un quadrato non si chiama una funzione, si fa una semplice moltiplicazione
- i coefficienti delle eq. normalmente sono numeri "con virgola" (double)
- una conseguenza è che i test di uguaglianza sui double sono pericolosi e portano ad errori (in questo caso il test delta==0)
- per il calcolo della radice r c'è una divisione tra interi, il compilatore potrebbe eseguirla come e troncare il risultato, in barba al fatto che r è un float, producendo un risultato errato
- con delta<0 l'equazione non è impossibile
- quando un calcolo si ripete uguale nel codice, si memorizza il risultato in una variabile e si usa quella, non si chiama inutilmente più volte una funzione per ripetere il calcolo (è il caso della chiamato di pow per calcolare una radice quadrata)
Anche da un esercizio in teoria semplicissimo si imaprano concetti utili in generale
Non sono del tutto d'accordo, ovviamente è una mia opinione personale.
Risponderò in ordine:
- Per calcolare un quadrato va benissimo chiamare una funzione, il codice risulta più compatto e ordinato. ovviamente il risultato finale non cambia
- Sono d'accordo con te
- Qui non ho capito a cosa ti riferisci. Il calcolatore può calcolare fino alla sua massima precisione oltre non può andare, precisione che verifichi con il comando DBL_DIG se ricordo bene. Se vuoi più precisione esistono del LONG DOUBLE. Nel 99.9% dei casi i double bastano e avanzano.
- Anche qui non sono d'accordo. Si risolve semplicemente seguendo il tuo punto 2, ovvero dichiarando i coefficienti double
- Vero, ma lui non può ancora saperlo. Non lo avrà ancora studiato. Inutile confondergli le idee
- d'accordo con te. Il ritorno delle due soluzioni, così scritto, è uno scempio. :D :D
Tutto sommato il programma fa quello che deve fare. E' solo scritto male. Si può ancora migliorare, magari mettendo a punto un sistema che riconosca le frazioni. Renderlo un pò più user-friendly e magari facendo un controllo sui dati in arrivo. Adesso non ricordo se C controlla in automatico le variabili in ingresso ma per assurdo, se io inserissi come coefficiente una lettera, Cosa succede?