Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: [C++] Problema if()

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    26

    [C++] Problema if()

    Sto finendo un programma che mi disegna una funzione qualsiasi messa in input, l'unico problema che in alcuni casi la funzione non esiste e la libreria che sto usando, chiamata mathexpr.h, restituisce un numero pari a 1.79769e+308 be allora io ho semplicemente fatto

    cout << f(funzione) <<"\n";
    if(f(funzione)==1.79769e+308)
    cout << "Ahio!\n";
    f(funzione) mi restituisce il punto y della mia funzione e quando nn dovrebbe esistere segnala quel mega-numero già scritto sopra, fin qui tutto apposto, il mio problema reale e che quel'if() o non me lo legge, cioè nei punti dove la funzione non esiste non scrive ahio (parola stupida, le invento quando sono in panico) e quindi cosa devo fare? c'è una specie di catch per i numeri troppo grandi o per dirvi se io gli sommo sempre il mega-numero, esce 1.#INF, questo c'è un modo per catcharlo, così da inserire quei punti che nn vanno bene in un array e nn disegnarli nella mia grafico?

    Bene aspetto vostre risposte

  2. #2
    Sinceramente non ho mai usato la notazione scientifica in c... :master:
    1.79769e+308 cmq ci sta solo in un double (a 8 byte), per gli altri è un infinity ....
    Non vorrei fosse questo il tuo errore

    PS: Più che catch credo overflow
    Experience is what you get when you don’t get what you want

  3. #3
    Forse quel valore corrisponde alla macro HUGE_VAL definita in math.h
    Non hai la documentazione della libreria che stai usando?
    “Guardo in alto mentre cammino, così le lacrime non scenderanno...”
    Kyu Sakamoto

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    26
    Sinceramente non ho mai usato la notazione scientifica in c...
    1.79769e+308 cmq ci sta solo in un double (a 8 byte), per gli altri è un infinity ....
    Non vorrei fosse questo il tuo errore

    PS: Più che catch credo overflow
    No nn è que'errore perchè sta in una double ^^ grazie cmq

    Originariamente inviato da Xaratroom
    Sinceramente non ho mai usato la notazione scientifica in c... :master:
    1.79769e+308 cmq ci sta solo in un double (a 8 byte), per gli altri è un infinity ....
    Non vorrei fosse questo il tuo errore

    PS: Più che catch credo overflow
    specifiche nn c'è ne sono, o meglio sono scritte in danese ^^, qualcuno di voi sa il danese?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Non puoi visualizzare il valore che viene restituito ...?

    Se e' 1.#INF, allora confrontalo con HUGE_VAL

  6. #6
    Bhe si ...
    Chi non sa il danese al mondo di oggi ...
    Experience is what you get when you don’t get what you want

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    26
    Originariamente inviato da oregon
    Non puoi visualizzare il valore che viene restituito ...?

    Se e' 1.#INF, allora confrontalo con HUGE_VAL
    cioè devo fare

    (f(funzione)==HUGE_VAL)

    ?

  8. #8
    Originariamente inviato da VoxSim
    cioè devo fare

    (f(funzione)==HUGE_VAL)

    ?
    Credo di sì
    Dalla documentazione (anche se in danese :master: ) non riesci a capire il valore ritornato dalla funzione?
    Se fosse HUGE_VAL ci dovrebbe essere scritto
    “Guardo in alto mentre cammino, così le lacrime non scenderanno...”
    Kyu Sakamoto

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Yes ...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    26
    void campo(double *x, ROperation funzione)
    {
    for(double t=-5;t<=5;t++)
    {
    *x = t;
    double y = f(funzione);
    cout << *x << " " << y << " ";
    if(y==1.79769e+308)
    cout << "Ahio!\n";
    else
    cout << "\n";
    }
    }
    questa è la mia funzioncina

    vedete qualcosa di sbagliato?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.