Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Errore con IF

  1. #1

    Errore con IF

    Ho un metodo isQuadrato ke verifica se quattro punti formano un quadrato:

    codice:
    float isQuadrato(Punto A1, Punto B1, Punto C1, Punto D1)
    {
    	if((A1.x==D1.x)&&(B1.x=C1.x)&&(A1.y==B1.y)&&(D1.y==C1.y))
    		return(1);
    	else
    		return(0);
    }
    Ma mi dice ke l'if non si può eseguire tra float e boolean..

    le coordinate x, y dei punti sono float!

    help!
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Che non si possa effettuare un test fra float e boolean è vero: che senso ha confrontare mele con pere?

    Non credo che il compilatore ti abbia detto che non puoi effettuare il test fra valori float perchè NON E' VERO. L'errore sarà sicuramente un altro. Postalo.

    Inoltre, ho notato che nel codice che hai postato, all'interno dell'istruzione if hai messo un'assegnazione (=) al posto di un confronto (==).

    Questo codice, per esempio, funziona perfettamente:
    codice:
    float a = 0.5f;
    float b = 0.5f;
    
    if (a==b) System.out.println("Sono uguali");
    else System.out.println("Sono diversi");
    E restituisce correttamente la stringa "Sono uguali".

    Una cosa: perchè hai dato come valore di restituzione del metodo isQuatrato() un float al posto di un boolean? Semanticamente un metodo simile restituirebbe true o false, semplificando il codice implementato al suo interno.

    Può darsi, oltretutto, che il compilatore ti dica "Possble loss of precision" in corrispondenza del return (1) e return (0) perchè non hai messo la "f" di float.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    codice:
    boolean isQuadrato(Punto A1, Punto B1, Punto C1, Punto D1)
    {
    	if((A1.x==D1.x)&&(B1.x=C1.x)&&(A1.y==B1.y)&&(D1.y==C1.y))
    		return(true);
    	else
    		return(false);
    }
    allora come dovrei fare?..

    l'errore ke mi dava nn lo ricordo..ora ho cambiato il codice in qst modo ma nn va!
    codice:
    boolean isQuadrato(Punto A1, Punto B1, Punto C1, Punto D1)
    {
    	if(A1.x==D1.x)
    		if(B1.x==C1.x)
    			if(A1.y==B1.y)
    				if(D1.y==C1.y)
    					return(true);
    	else
    		return(false);
    }
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

  4. #4
    aspè forse nn sono stato molto kiaro...

    A1.x, B1.x, C1.y ecc.. sn tutti valori float.

    l'errore è su "&&"!
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

  5. #5
    L'errore come giustamente diceva LeleFT sta nel fatto che manca un = in uno dei confronti che effettui e quindi ti da problemi visto che non è in grado di effettuare l'operatore AND tra un boolean e un float, pertanto correggi

    codice:
    boolean isQuadrato(Punto A1, Punto B1, Punto C1, Punto D1)
    {
    	if((A1.x==D1.x)&&(B1.x=C1.x)&&(A1.y==B1.y)&&(D1.y==C1.y))
    		return(true);
    	else
    		return(false);
    }
    con

    codice:
    boolean isQuadrato(Punto A1, Punto B1, Punto C1, Punto D1)
    {
    	if((A1.x==D1.x)&&(B1.x == C1.x)&&(A1.y==B1.y)&&(D1.y==C1.y))
    		return(true);
    	else
    		return(false);
    }

    dovrebbe andare

    Bye

    Max
    La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano


  6. #6
    grazie!risolto...
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

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.