Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    3

    [C++] Programma sequenza di triangoli

    "Scrivere un programma C++ che legge i dati relativi ad una sequenza di 50triangoli (rappresentati ognuno da tre numeri interi: i lati) e verifica se nella sequenza esistono almeno 7 triangoli equilateri."
    Farlo normalmente non è un problema, però per farlo devo usare obbligatoriamente questa fuzione:
    "bool equilatero(int l1, int l2, int l3)
    restituisce il valore booleano true se i tre valori passati come parametri alla funzione sono uguali, false altrimenti." e non riesco ad inserirla appropriatamente.

    Ho provato cosi:
    codice:
    bool equilatero (int L1, int L2, int L3)
    {
        int k=0;
        if (L1==L2 && L2=L3)
        {
           cout << "il triangolo e' equilatero" << endl;
           k=k+1; 
        }
    }
    Domande:
    -Come faccio a stampare nel main il numero di triangoli equilateri usando questa funzione oppure dire almeno se sono 7 o no? (piu utile al programma)
    -Come faccio invece a restituire i valori booleani True o False se è equilatero e poi contare questi triangoli col contatore e a portare il valore k nel main?

    Grazie mille
    Ultima modifica di tofetta; 03-02-2014 a 11:46

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    3

    altro programma

    Questo è il programma senza la funzione in bool

    codice:
    #include <iostream>
    #include <stdlib.h>
    
    
    using namespace std;
    
    
    void leggi_triangolo (int &a,int &b,int &c)
    {
        cout << "Inserisci i valori dei lati del triangolo" << endl;
        cin >> a;
        cin >> b;
        cin >> c;
    }
    
    
    
    
    int main()
    {
     int a,b,c,i=0,k=0;
    
    
    for(i=0; i<50;i++)
        {
        leggi_triangolo(a,b,c);
    
    
                if (a==b && b==c)
                {
                    cout << "il triangolo è equilatero" << endl;
                    ++k;
                }
        }
    
    
        if (k>= 7)
        {
           cout << "Nella serie ci sono almeno 7 triangoli equilateri" << endl;
        }
        else
        {
            cout << "Nella serie non ci sono almeno 7 triangoli equilateri" << endl;
        }
    
    
     system("pause");
        return 0;

  3. #3
    Non mischiare le "responsabilità" delle varie funzioni... "equilatero" deve semplicemente valutare se i tre lati sono uguali, per cui sarà una cosa del tipo:
    codice:
    bool equilatero (int L1, int L2, int L3)
    {
        return L1==L2 && L2=L3;
    }
    Poi nel main stampi e incrementi k in base a quello che ti restituisce la funzione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    3
    Se inserisco la funzione che mi hai scritto e nel main, nel ciclo per i 50 triangoli inserisco
    "equilatero(a,b,c)" mi da 1 error e 1 warning:

    error: lvalue required as left operand of assignment
    warning: control reaches end of non-void function [-Wreturn-type]

    come faccio poi a vedere nel main quando è true e quando è false per poi incrementare la variabile per il contatore?

    grazie
    Ultima modifica di tofetta; 03-02-2014 a 18:14

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.