Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Programma che individua il tipo di Triangolo

    Ciao a tutti.
    a scuola sto studiando la funzione and, or e not inserite nel if e in pratica questo programma dati 3 lati di un triangolo il programma deve individuare ti che tipo di triangolo si tratti :
    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {int a,b,c;
     cout<<"Dammi il primo lato"<<endl;
     cin>>a;
     cout<<"Dammi il secondo lato"<<endl;
     cin>>b;
     cout<<"Dammi il terzo lato"<<endl;
     cin>>c;
    {
     if (a=b and b=c) //la condizione sarà vera quando sono entrambe vere 
     cout<<"Il triangolo e' equilatero"<<endl;
     else
     cout<<"Il triangolo e' scaleno"<<endl;
    }
    {
     if (a=c or a=b or c=b) //la condizione sarà vera quando almeno una è vera
     cout<<"il triangolo e' isoscele"endl<<;
    }                    
     
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    Ora non sò se ho scritto bene l' if ma il compilatore mi da errore nell' primo if e sicuramente sarà anche nel secondo.
    Potete aiutarmi?
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    In C l'operatore and è &&.
    In alternativa, se ti piace usare and, devi includere questo header file.
    http://www.cplusplus.com/reference/clibrary/ciso646/

    (se previsto dal compilatore).
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Re: Programma che individua il tipo di Triangolo

    Originariamente inviato da AssAss1n
    Ora non sò se ho scritto bene l' if ma il compilatore mi da errore nell' primo if e sicuramente sarà anche nel secondo.
    Potete aiutarmi?
    Grazie in anticipo.
    Come espressamente richiesto dal Regolamento interno, il linguaggio va obbligatoriamente indicato nel titolo.

    Inoltre, se non dici quale errore ottieni (anche questo è scritto nel regolamento), difficilmente ti si potrà aiutare, per quanto "banale" possa eventualmente essere il problema.

    Chi legge una discussione vorrebbe sapere subito qual è l'errore per il quale chiedi aiuto e non vorrebbe essere costretto inutilmente a chiedertelo.


    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

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    PS: i confronti si fanno usando l'operatore "=="... un solo simbolo di uguale serve ad eseguire un'assegnazione

    codice:
    if (a=b and b=c)   // <--- errore, sono due assegnazioni, non due confronti (poi "and" non esiste)

    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

  5. #5
    ah scusate.
    Allora l' ho corretto:
    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {int a,b,c;
     cout<<"Dammi il primo lato"<<endl;
     cin>>a;
     cout<<"Dammi il secondo lato"<<endl;
     cin>>b;
     cout<<"Dammi il terzo lato"<<endl;
     cin>>c;
    {
     if (a=b && b=c) //la condizione sarà vera quando sono entrambe vere 
     cout<<"Il triangolo e' equilatero"<<endl;
     else
     cout<<"Il triangolo e' scaleno"<<endl;
    }
    {
     if (a=c || a=b || c=b) //la condizione sarà vera quando almeno una è vera
     cout<<"il triangolo e' isoscele"<<endl;
    }                    
     
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    ma non me lo compila lo stesso e gli errori sono questi:
    codice:
    In function `int main(int, char**)': 
    non-lvalue in assignment
    Non è che forse va aggiunta un altra libreria che magari non ho messo?

  6. #6

    Re: Re: Programma che individua il tipo di Triangolo

    PS: i confronti si fanno usando l'operatore "=="... un solo simbolo di uguale serve ad eseguire un'assegnazione

    codice:
    if (a=b and b=c) // <--- errore, sono due assegnazioni, non due confronti (poi "and" non esiste)



    Ciao.
    ah si ecco hai ragione mi ero dimenticato che = non è == è un altra cosa si adesso me lo compila ma diciamo non funziona bene devo riuscire a capire cosa c'è che non va.

  7. #7
    l' ho testato funziona solo se do i lati diversi ovvero quando è scaleno ma mi sembra strano che non funge per l' equilatero e l' isoscele...

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Re: Re: Re: Programma che individua il tipo di Triangolo

    codice:
    {
     if (a=b && b=c) //la condizione sarà vera quando sono entrambe vere 
     cout<<"Il triangolo e' equilatero"<<endl;
     else
     cout<<"Il triangolo e' scaleno"<<endl;
    }
    {
     if (a=c || a=b || c=b) //la condizione sarà vera quando almeno una è vera
     cout<<"il triangolo e' isoscele"<<endl;
    }
    Io, sinceramente, non ho capito cosa dovrebbe fare, secondo te, questa parte:

    Apri un blocco (la graffa) senza alcun motivo...

    All'interno del blocco effettui il test per vedere se è equilatero.

    Se non è equilatero scrivi che è scaleno (senza provare a verificare se è isoscele).

    Nel secondo blocco (inutile) cerchi di vedere se è isoscele.

    Ma, in ogni caso, senza vedere le correzioni che hai apportato, è difficile dire altre cose.


    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

  9. #9
    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {int a,b,c;
     cout<<"Dammi il primo lato"<<endl;
     cin>>a;
     cout<<"Dammi il secondo lato"<<endl;
     cin>>b;
     cout<<"Dammi il terzo lato"<<endl;
     cin>>c;
    {
     if (a==b && c==b)
     cout<<"Il triangolo e' equilatero"<<endl;
     else
     cout<<"Il triangolo e' scaleno"<<endl;
    }
    {
     if (a==c || a==b || c==b)
     cout<<"il triangolo e' isoscele"<<endl;
    }                    
     
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    Allora questo me lo compila però l' ho provato a testare diciamo che se inserisco i lati diversi mi da che è scaleno e fin qui tutto bene, però diciamo che se inserisco i lati o tutti uguali o solo 2 uguali il programma mi dice in contemporanea che è sia equilatero che isoscele.
    Quindi il problema penso stia nel secondo if ma non sò come correggerlo...

  10. #10
    Scusa ma nel primo if secondo me se quella condizione non è verificata è logico che deve essere scaleno perche il primo lato non è uguale al secondo e il secondo non è uguale al terzo allora logicamente ho messo scaleno.

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.