HTML.it è il sito italiano del web publishing

[C] Equazione di secondo grado



scegli un altro forum
  Pagine (3): [ <   1   2   3   > ]  Indietro   Ricarica   Avanti Invia una risposta

Autore
Discussione     
oregon
Utente di HTML.it



Registrato il: Jul 2005

Provenienza: Roma

Messaggi: 30881


ICQ :

MSN :

Skype :


La penso diversamente.

Se si scrive

"Viene un codice più leggibile e scritto in meno righe."

lo si sta confrontando con il precedente, ma quello è un altro codice con altre caratteristiche.

Tornando comunque al problema, quello che consiglio a Sos_Code è di utilizzare per *tutte* le variabili numeriche coinvolte (quindi anche per a, b, c) delle variabili di tipo double.


__________________
La guida di VB6 ... usala!
Se cerchi una API ...
No MP tecnici (non rispondo nemmeno!), usa il forum.

Segnala ad un moderatore | IP: Collegato | Permalink

oregon è offline Old Post 13-05-2012 13:44
Clicca qui per vedere il profilo dell'utente oregon Clicca qui per inviare all'utente oregon un messaggio privato Visita l'homepage dell'utente oregon Visualizza ulteriori messaggi scritti dall'utente oregon Aggiungi l'utente oregon alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Scara95
Utente di HTML.it



Registrato il: Jul 2009

Provenienza: Verona (provincia)

Messaggi: 1156


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da oregon
La penso diversamente.

Se si scrive

"Viene un codice più leggibile e scritto in meno righe."

lo si sta confrontando con il precedente, ma quello è un altro codice con altre caratteristiche.

Tornando comunque al problema, quello che consiglio a Sos_Code è di utilizzare per *tutte* le variabili numeriche coinvolte (quindi anche per a, b, c) delle variabili di tipo double.


È ovvio che lo si stia confrontando col precedente, comunque anch'io fin da subito gli avevo consigliato delle double...

Non vedo dove tu voglia andare a parare...
Who gli stava scrivendo un codice di esempio per spiegargli come organizzare il lavoro, non gli stava scrivendo il suo codice...


__________________
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Segnala ad un moderatore | IP: Collegato | Permalink

Scara95 è offline Old Post 13-05-2012 13:59
Clicca qui per vedere il profilo dell'utente Scara95 Clicca qui per inviare all'utente Scara95 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Scara95 Aggiungi l'utente Scara95 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Who am I
Utente bannato



Registrato il: Apr 2012

Provenienza:

Messaggi: 518


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da Scara95
Non vedo dove tu voglia andare a parare...


Neanche io l' ho capito

Citazione:

Io su c/b aggiungerei un controllo per vedere se anche b e 0, altrimenti rischi un errore, anche se improbabile....


Esatto, quella era l' unica cosa che mancava.
Controllare anche a e c lo lascio all' utente, se lo vuole fare.
Premesso che è bene se riscrive lui la sua versione del programma.

Segnala ad un moderatore | IP: Collegato | Permalink

Who am I è offline Old Post 13-05-2012 14:25
Clicca qui per vedere il profilo dell'utente Who am I Clicca qui per inviare all'utente Who am I un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Who am I Aggiungi l'utente Who am I alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
oregon
Utente di HTML.it



Registrato il: Jul 2005

Provenienza: Roma

Messaggi: 30881


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da Scara95
Non vedo dove tu voglia andare a parare...


Da nessuna parte ...

Ho solo detto che è meglio utilizzare delle double per a, b e c come miglioria dell'esempio di codice fornito e mi meravigliavo che non fosse già stato fatto ... la spiegazione del perché non erano state utilizzate delle variabili double per a, b e c è stata che "erano delle specifiche" (che non conosciamo) e non ero d'accordo.

Tutto qui.

Citazione:

Who gli stava scrivendo un codice di esempio per spiegargli come organizzare il lavoro, non gli stava scrivendo il suo codice...


Lo so cosa stava scrivendo e lo sa anche lui. Perché insisti a fare l'interprete autentico di quello che fa lui? Non penso ne abbia bisogno ...


__________________
La guida di VB6 ... usala!
Se cerchi una API ...
No MP tecnici (non rispondo nemmeno!), usa il forum.

Segnala ad un moderatore | IP: Collegato | Permalink

oregon è offline Old Post 13-05-2012 15:19
Clicca qui per vedere il profilo dell'utente oregon Clicca qui per inviare all'utente oregon un messaggio privato Visita l'homepage dell'utente oregon Visualizza ulteriori messaggi scritti dall'utente oregon Aggiungi l'utente oregon alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Scara95
Utente di HTML.it



Registrato il: Jul 2009

Provenienza: Verona (provincia)

Messaggi: 1156


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da oregon
Ho solo detto che è meglio utilizzare delle double per a, b e c come miglioria dell'esempio di codice fornito e mi meravigliavo che non fosse già stato fatto ... la spiegazione del perché non erano state utilizzate delle variabili double per a, b e c è stata che "erano delle specifiche" (che non conosciamo) e non ero d'accordo.

Tutto qui.

Già detto all'inizio che come miglioria si potevano utilizzare i double, prima cosa che ho detto io, ancora prima del codice di Who.

Citazione:

Lo so cosa stava scrivendo e lo sa anche lui. Perché insisti a fare l'interprete autentico di quello che fa lui? Non penso ne abbia bisogno ...


Non hai detto questo nei post precedenti:
Citazione:
Beh ... tutte le altre "specifiche" (relative al controllo di a, b e c e all'individuazione del tipo di equazione o di una identità) non le hai rispettate


e non faccio l'interprete, esprimo il mio punto di vista, ti sto dicendo che le cose che hai detto sono semplicemente già state dette. Inoltre ho messo in evidenza che per forza il codice va comparato con quello precedente (sono 2 modi diversi di risolvere lo stesso problema) e che, come d'altra parte dice anche il regolamento, non si fornisce codice completo ma idee e punti di partenza...

In conclusione non penso proprio che Who abbia bisogno di essere difeso, ma, più semplicemente, non vedo il motivo delle tue affermazioni...


__________________
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Segnala ad un moderatore | IP: Collegato | Permalink

Scara95 è offline Old Post 13-05-2012 16:50
Clicca qui per vedere il profilo dell'utente Scara95 Clicca qui per inviare all'utente Scara95 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Scara95 Aggiungi l'utente Scara95 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Sos_Code
Utente di HTML.it



Registrato il: May 2012

Provenienza:

Messaggi: 19


ICQ :

MSN :

Skype :


Grazie a tutti per le risposte.
Ho lasciato il mio codice come all'inizio, solo ho cambiato il discrimante.
Avevo commesso un errore "matematico" per distrazione e senza rendermene conto.
Il programma adesso parte e funziona benissimo.
Grazie ancora a tutti, il vostro aiuto è fondamentale per me. A presto!

Segnala ad un moderatore | IP: Collegato | Permalink

Sos_Code è offline Old Post 13-05-2012 17:54
Clicca qui per vedere il profilo dell'utente Sos_Code Clicca qui per inviare all'utente Sos_Code un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Sos_Code Aggiungi l'utente Sos_Code alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
oregon
Utente di HTML.it



Registrato il: Jul 2005

Provenienza: Roma

Messaggi: 30881


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da Scara95
Non hai detto questo nei post precedenti:


Lascia perdere ... non ha importanza. Non c'è peggior sordo ...

Citazione:
e non faccio l'interprete


E' troppo evidente per non essere vero, ma non capisco il perché ...

Citazione:
In conclusione non penso proprio che Who abbia bisogno di essere difeso


Infatti ... non ne ha.

Citazione:
Originariamente inviato da Sos_Code
Grazie a tutti per le risposte.
Ho lasciato il mio codice come all'inizio, solo ho cambiato il discrimante.


Prego.

Citazione:
Il programma adesso parte e funziona benissimo.


Meglio così. A presto.


__________________
La guida di VB6 ... usala!
Se cerchi una API ...
No MP tecnici (non rispondo nemmeno!), usa il forum.

Segnala ad un moderatore | IP: Collegato | Permalink

oregon è offline Old Post 13-05-2012 18:47
Clicca qui per vedere il profilo dell'utente oregon Clicca qui per inviare all'utente oregon un messaggio privato Visita l'homepage dell'utente oregon Visualizza ulteriori messaggi scritti dall'utente oregon Aggiungi l'utente oregon alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Scara95
Utente di HTML.it



Registrato il: Jul 2009

Provenienza: Verona (provincia)

Messaggi: 1156


ICQ :

MSN :

Skype :


Non è ognuno libero di esprimere le proprie idee e giudicare criticamente il pensiero altrui!?
Principio base della filosofia, della scienza e della costituzione.
Perciò, amettiamo che io lo stia "interpretando", non vedo il perchè io non possa, come dici tu, "interpretare" Who.

Apparte questo mi sono limitato a "criticare" (nel senso filosofico del termine) i tuoi post per il fatto che ripetevano una cosa già detta in precedenza e che polemizzavano su un fatto marginale di un'implementazione che voleva essere tutt'altro che completa, ma dimostrativa della struttura del programma...

Se tu avessi detto fin da subito:
Le variabili double sarebbero più adatte al compito.
O qualcosa di simile, invece di:
Perchè solo int!?
Avrei preso il tuo post in modo diverso.

In ogni caso sono contento che tu @Sos sia riuscito
Ciao


__________________
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Segnala ad un moderatore | IP: Collegato | Permalink

Scara95 è offline Old Post 13-05-2012 19:08
Clicca qui per vedere il profilo dell'utente Scara95 Clicca qui per inviare all'utente Scara95 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Scara95 Aggiungi l'utente Scara95 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
oregon
Utente di HTML.it



Registrato il: Jul 2005

Provenienza: Roma

Messaggi: 30881


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da Scara95
Principio base della filosofia, della scienza e della costituzione.


Ma non scomodare la costituzione, la filosofia e la scienza .... siamo stati OT fino ad ora, non passiamo al ridicolo.

Solo perché non ti è piaciuto come ho scritto "solo interi ..." ... ma per favore, piantiamola qui.


__________________
La guida di VB6 ... usala!
Se cerchi una API ...
No MP tecnici (non rispondo nemmeno!), usa il forum.

Segnala ad un moderatore | IP: Collegato | Permalink

oregon è offline Old Post 13-05-2012 19:26
Clicca qui per vedere il profilo dell'utente oregon Clicca qui per inviare all'utente oregon un messaggio privato Visita l'homepage dell'utente oregon Visualizza ulteriori messaggi scritti dall'utente oregon Aggiungi l'utente oregon alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Scara95
Utente di HTML.it



Registrato il: Jul 2009

Provenienza: Verona (provincia)

Messaggi: 1156


ICQ :

MSN :

Skype :


Ho scomodato filosofia, scenza e costituzione perchè non vuoi capire ciò che intendo io, in ogni caso chiudo qui.


__________________
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Segnala ad un moderatore | IP: Collegato | Permalink

Scara95 è offline Old Post 13-05-2012 20:02
Clicca qui per vedere il profilo dell'utente Scara95 Clicca qui per inviare all'utente Scara95 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Scara95 Aggiungi l'utente Scara95 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Who am I
Utente bannato



Registrato il: Apr 2012

Provenienza:

Messaggi: 518


ICQ :

MSN :

Skype :


Già, chiudiamo qui perché non mi piace discutere sul nulla, ne su dettagli inutili.
Già che ci sto ri-posto il codice (stavolta corretto, verificando di non effettuare una divisione per zero nel corpo del primo if), così chi legge lo vede:

codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define LMAX 100
#define EPSILON 1.0e-5

int equal (double a, double b)
{
    return b >= a-EPSILON && b<= a+EPSILON;
}

int main()
{
    int a, b, c;
    float x1, x2,delta;
    char buffer[LMAX];
    
    printf("Inserire il valore di a:\n");
    fgets(buffer,100,stdin);
    a=atoi(buffer);
    printf("Inserire il valore di b:\n");
    fgets(buffer,100,stdin);
    b=atoi(buffer);
    printf("Inserire il valore di c:\n");
    fgets(buffer,100,stdin);
    c=atoi(buffer);
    
    if(a==0)
    {
        if(!equal(b,0.0))
            printf("Risultato: %f\n", -(double)c/b);
        else
        {
            if(c==0)
                printf("Ci sono infinite soluzioni");
            else
                printf("Non ci sono soluzioni");
        }
    }
    else
    {
        delta=pow(b,2.0) - 4 * a * c;
        if(equal(delta,0.0))
        {
            printf("Risultato: %f\n", -(double)b/ (2*a));
        }
        else if(delta < 0.0)
        {
            printf("Non ci sono risultati\n");
        }
        else
        {
            x1= (-b + sqrt(delta)) / (2*a);
            x2= (-b - sqrt(delta)) / (2*a);
            printf("Risultati:\n1) %f\n1) %f\n",x1,x2);
        }
    }
    
    return 0;
}

Ultima modifica ad opera dell'utente Who am I il 13-05-2012 alle 22:06

Segnala ad un moderatore | IP: Collegato | Permalink

Who am I è offline Old Post 13-05-2012 21:59
Clicca qui per vedere il profilo dell'utente Who am I Clicca qui per inviare all'utente Who am I un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Who am I Aggiungi l'utente Who am I alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
oregon
Utente di HTML.it



Registrato il: Jul 2005

Provenienza: Roma

Messaggi: 30881


ICQ :

MSN :

Skype :


Citazione:
ri-posto il codice (stavolta corretto


Anche se non è chiaro perché

codice:
if(!equal(b,0.0))


se b la lasci intera ...

In ogni caso, la mia versione per Sos_Code con i "dettagli inutili" è questa

codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define LMAX 100
#define EPSILON 1.0e-5

int equal (double a, double b)
{
    return b >= a-EPSILON && b<= a+EPSILON;
}

double getval(char *msg)
{
    char buffer[LMAX];

    printf("Inserire il valore di %s: ", msg);
    fgets(buffer, LMAX, stdin);
    printf("\n");

    return(atof(buffer));
}

int main()
{
    double a, b, c, delta, x1, x2;
    
    a = getval("a");
    b = getval("b");
    c = getval("c");

    if(equal(a, 0.0))
    {
        if(!equal(b, 0.0))
            printf("Risultato: %f\n", -c/b);
        else
        {
            if(equal(c, 0.0))
                printf("Ci sono infinite soluzioni");
            else
                printf("Non ci sono soluzioni");
        }
    }
    else
    {
        delta=pow(b, 2.0) - 4 * a * c;
        if(equal(delta, 0.0))
        {
            printf("Risultato: %f\n", -(double)b/ (2*a));
        }
        else if(delta < 0.0)
        {
            printf("Non ci sono risultati\n");
        }
        else
        {
            x1= (-b + sqrt(delta)) / (2*a);
            x2= (-b - sqrt(delta)) / (2*a);
            
  	    printf("Risultati:\n1) %f\n2) %f\n",x1,x2);
        }
    }
    
    return 0;
}


__________________
La guida di VB6 ... usala!
Se cerchi una API ...
No MP tecnici (non rispondo nemmeno!), usa il forum.

Segnala ad un moderatore | IP: Collegato | Permalink

oregon è offline Old Post 13-05-2012 23:07
Clicca qui per vedere il profilo dell'utente oregon Clicca qui per inviare all'utente oregon un messaggio privato Visita l'homepage dell'utente oregon Visualizza ulteriori messaggi scritti dall'utente oregon Aggiungi l'utente oregon alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Scara95
Utente di HTML.it



Registrato il: Jul 2009

Provenienza: Verona (provincia)

Messaggi: 1156


ICQ :

MSN :

Skype :


Non ho letto nessuno dei due codici, comunque vedi che ti ostini a non capire:
Nessuno ha detto che fossero inutili, io personalmente ho solo detto che era una cosa già detta e che quel primo codice era solo dimostrativo (ad esempio mancavano anche controlli sulla divisione per 0)...
In ogni caso lui ha risolto mantenendo il suo codice, quindi è inutile farsi problemi.


__________________
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Segnala ad un moderatore | IP: Collegato | Permalink

Scara95 è offline Old Post 14-05-2012 05:37
Clicca qui per vedere il profilo dell'utente Scara95 Clicca qui per inviare all'utente Scara95 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Scara95 Aggiungi l'utente Scara95 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Scara95
Utente di HTML.it



Registrato il: Jul 2009

Provenienza: Verona (provincia)

Messaggi: 1156


ICQ :

MSN :

Skype :


E se proprio bisogna essere precisi fino al limite dell'impossibile nessuno si è mai preoccupato di controllare che le stringhe siano numeriche prima della conversione.


__________________
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Segnala ad un moderatore | IP: Collegato | Permalink

Scara95 è offline Old Post 14-05-2012 05:44
Clicca qui per vedere il profilo dell'utente Scara95 Clicca qui per inviare all'utente Scara95 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Scara95 Aggiungi l'utente Scara95 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
oregon
Utente di HTML.it



Registrato il: Jul 2005

Provenienza: Roma

Messaggi: 30881


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da Scara95
Non ho letto nessuno dei due codici, comunque vedi che ti ostini a non capire: Nessuno ha detto che fossero inutili,


Quello che non capisce qui sei tu. E non leggi neanche ... mi riferivo proprio al post che non hai letto e in particolare

"non mi piace discutere sul nulla, ne su dettagli inutili."

Citazione:
quindi è inutile farsi problemi.


Nessun problema, non capisco perché, risolto il quesito e ottenuto tanti esempi, tu continui a replicare in maniera non richiesta.

Citazione:
controllare che le stringhe siano numeriche


In quel caso restituiscono 0. Non c'è problema.


__________________
La guida di VB6 ... usala!
Se cerchi una API ...
No MP tecnici (non rispondo nemmeno!), usa il forum.

Segnala ad un moderatore | IP: Collegato | Permalink

oregon è offline Old Post 14-05-2012 06:36
Clicca qui per vedere il profilo dell'utente oregon Clicca qui per inviare all'utente oregon un messaggio privato Visita l'homepage dell'utente oregon Visualizza ulteriori messaggi scritti dall'utente oregon Aggiungi l'utente oregon alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Tutte le ore sono con fuso orario CET. Ora sono le 19:20.     

  Pagine (3): [ <   1   2   3   > ]  Ultima discussione   Prossima discussione Invia una risposta
Versione per la stampa | Invia il thread via email | Ricevi aggiornamenti sul thread | Scarica il thread
 

Cerchi un argomento specifico e hai fretta? Usa il motore di ricerca