Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c#]classi e numeri complessi

    Ciao a tutti Ho appena fatto una libreria per i numeri complessi, ma mm da un problema nell'ultimo metodo, quello che dovrebbe dirmi in che quadrante si trova il numero...ma non capisco perché mi da come errore "'NumeriComplessi.NumeriComplessi.Quadrante(Numeri .Complessi.NumeriComplessi)':non tutti i percorsi di codice restituiscono un valore", ma non capisco proprio perché!?Il codice è il seguente e grazie in anticipo!

    public static int Quadrante(NumeriComplessi A)
    {
    if (A.reale == 0 && A.immaginario == 0)
    return 0;
    if (A.reale > 0 && A.immaginario > 0)
    return 1;
    if (A.reale < 0 && A.immaginario > 0)
    return 2;
    if (A.reale < 0 && A.immaginario < 0)
    return 3;
    if (A.reale > 0 && A.immaginario < 0)
    return 4;
    }

  2. #2
    Perché è vero se A.reale è zero ma A.immaginario non lo è (o più in generale, quando il numero non è nell'origine del piano di Gauss, ma è su uno degli assi cartesiani) non viene preso nessuno dei return.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    è una cosa incredibile, non capisco davvero è tutto il giorno che ci provo, cosa dovrei scrivere quindi?

  4. #4
    Detto in altre parole: tu hai un metodo che deve restituire un intero; tuttavia, il tuo codice in alcuni casi non raggiunge mai un return, nello specifico nei casi detti sopra (ad esempio, se A.immaginario=0 e A.reale=1), dato che in questi casi nessun if è soddisfatto. Per questo motivo, il compilatore ti dà quell'errore - in questi casi, infatti, si raggiunge la fine di una funzione senza che ci sia alcun return, e questo ovviamente non è concesso dal linguaggio.

    Per rimediare, devi aggiungere i casi mancanti (nello specifico, devi decidere cosa ha senso restituire come quadrante per numeri che effettivamente stanno a cavallo di più quadranti).
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.