Problema con un programma

di il
9 risposte

Problema con un programma

TESTO PROGRAMMA: Scrivere un programma che dato in input base altezza di un triangolo 
rettangolo passi tali valori ad una funzione attraverso la quale si possano 
stabilire ipotenusa, area e perimetro del triangolo, utilizzando 
il passaggio di parametri per referenza.

Buonasera,

dovrei svolgere questo esercizio con il passaggio di parametri per riferimento, sono arrivata fino a qui. 

Non mi conta le vocali delle parole. Potete aiutarmi a trovare l'errore???

 Grazie mille in anticipo.

#include <iostream>

using namespace std;

int vocali (char& n){
    switch (n) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            cout<<"Sono vocali!!";
        break;
        default:
            cout<<"Non ci sono vocali";
        break;
    }
    return n;
}
int carattere (int& lunghezza, int& lunghezza1){
    int vocali=0;
    for(int k=0;k<lunghezza;k++){
        char carattere;
        cin>>carattere;
        if(vocali=!carattere)
        vocali++;
    }
    return vocali;
}
int main()
{
    int a, b;
    char c;
    cout<<"Inserisci di quanti caratteri è composta la prima parola: ";
    cin>>a;
    cout<<"Inserisci di quanti caratteri è composta la seconda parola: ";
    cin>>b;
    cout<<"Inserisci una lettera della parola: ";
    cin>>c;
    //carattere(a, b, c);
    int vocali=carattere(a, b);
    int vocali2=carattere(a, b);
    cout<<"Le vocali nella prima parola sono: "<<vocali<<"\n";
    cout<<"Le vocali nella seconda parola sono: "<<vocali2;
    return 0;
}

9 Risposte

  • Re: Problema con un programma

    E che c'entra il triangolo con le vocali????

    Ma rileggete il thread quando lo postate?

    E magari anche il titolo?

  • Re: Problema con un programma

    16/01/2023 - oregon ha scritto:


    E che c'entra il triangolo con le vocali????

    Ma rileggete il thread quando lo postate?

    E magari anche il titolo?

    Hai ragione scusami, il testo corretto è: Creare una funzione che dice se un carattere è una vocale. Creare un programma che fa inserire la lunghezza di due parole (le due parole possono avere lunghezze diverse) e poi fa inserire le due parole un carattere alla volta, alla fine il programma stampa per ogni parola quante vocali contiene. 

    Perdonami ancora… ma ci sono modi e modi per dire le cose… 

  • Re: Problema con un programma

    La mia perplessità è lecita. Non c'è nessuna offesa nel chiedere di fare attenzione e rileggere quanto si scrive.

    La funzione carattere dovrebbe accettare un solo parametr, ovvero la lunghezza della parola da esaminare (infatti lunghezza1 non ti serve) e passerai la prima lunghezza per la prima chiamata e la seconda per la seconda volta.

    Poi la funzione vocali chiamala diversamente dalla variabile vocali. Chiamala isvocale restituisci true o false se è o non è una vocale. Correggi la if

  • Re: Problema con un programma

    16/01/2023 - oregon ha scritto:

    La mia perplessità è lecita. Non c'è nessuna offesa nel chiedere di fare attenzione e rileggere quanto si scrive.

    La funzione carattere dovrebbe accettare un solo parametr, ovvero la lunghezza della parola da esaminare (infatti lunghezza1 non ti serve) e passerai la prima lunghezza per la prima chiamata e la seconda per la seconda volta.

    Poi la funzione vocali chiamala diversamente dalla variabile vocali. Chiamala isvocale restituisci true o false se è o non è una vocale. Correggi la if

    Ho effettuato delle correzioni, puoi aiutarmi con la if, non so come ccorreggerla!?!?

    #include <iostream>
    
    using namespace std;
    
    int isvocali (char& n){
        switch (n) {
            case 'a':
            case 'e':
            case 'i':
            case 'o':
            case 'u':
                cout<<"Sono vocali!!";
            break;
            default:
                cout<<"Non ci sono vocali";
            break;
        }
        return n;
    }
    int carattere (int& lunghezza){
        int vocale=0;
        for(int k=0;k<lunghezza;k++){
            char carattere;
            cin>>carattere;
            if(vocale=!carattere))
            vocale++;
        }
        return vocale;
    }
    int main()
    {
        int a, b;
        char c;
        cout<<"Inserisci di quanti caratteri è composta la prima parola: ";
        cin>>a;
        cout<<"Inserisci di quanti caratteri è composta la seconda parola: ";
        cin>>b;
        cout<<"Inserisci una lettera della parola: ";
        cin>>c;
        //carattere(a, b, c);
        int vocale=carattere(a);
        int vocale2=carattere(a);
        cout<<"Le vocali nella prima parola sono: "<<vocale<<"\n";
        cout<<"Le vocali nella seconda parola sono: "<<vocale2;
        return 0;
    }
    
  • Re: Problema con un programma

    La funzione deve essere booleana economicamente deve visualizzare nulla, ma restituire true false

     bool isvocal (char& n)

    quindi nessuna cout ma una return false e una return true messe ai posti giusti.

    Poi per la if

    If(isvocale(carattere)) vocale++;   
  • Re: Problema con un programma

    16/01/2023 - oregon ha scritto:


    La funzione deve essere booleana economicamente deve visualizzare nulla, ma restituire true false

     bool isvocal (char& n)

    quindi nessuna cout ma una return false e una return true messe ai posti giusti.

    Poi per la if

    If(isvocale(carattere)) vocale++;   

    Grazie mille !!!

  • Re: Problema con un programma

    Che intendi?

  • Re: Problema con un programma

    16/01/2023 - oregon ha scritto:


    Che intendi?

    ti ho ringraziato :))

  • Re: Problema con un programma

    Ah di nulla.. prima avevi messo i ???? e non capivo…  

Devi accedere o registrarti per scrivere nel forum
9 risposte