Help programmino Geometria

di il
7 risposte

Help programmino Geometria

Ciao a tutti.
Sono ancora agli inizi del c++ e vorrei creare un programma in console dove scrivendo "area" mi chiedeva il numero del raggio e se scrivevo "circonferenza" mi richiedeva il raggio.
ps. Nei calcoli non so richiamare il risultato e l'if non funziona. Please help!
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char cerchio[8];
    char area[5];
    char circonferenza[14];
    area[0] = 'a';
    area[1] = 'r';   
    area[2] = 'e';   
    area[3] = 'a';   
    area[4] = '\0';   
    circonferenza[0] = 'c';
    circonferenza[1] = 'i';
    circonferenza[2] = 'r';
    circonferenza[3] = 'c';
    circonferenza[4] = 'o';
    circonferenza[5] = 'n';
    circonferenza[6] = 'f';
    circonferenza[7] = 'e';
    circonferenza[8] = 'r';
    circonferenza[9] = 'e';
    circonferenza[10] = 'n';
    circonferenza[11] = 'z';
    circonferenza[12] = 'a';
    circonferenza[13] = '\0';

    cout << "scrivi area o circonferenza: ";
    cin >> figure;
    if(cerchio == area)
    {
             float lato, raggio, Area, Raggio2, pigreco = 3.14;
            cout << "Inserisci il raggio del cerchio in cm per calcolare l'area: ";
            cin >> raggio;
            Raggio2= raggio*raggio;
            Area=Raggio2*pigreco;
            cout << "L'area del cerchio e' : %.2f cm2 \n",Area;
    }
    if(cerchio == circonferenza)
    {
             float lato, raggio, Area, Raggio2, pigreco = 3.14;
            cout << "Inserisci il raggio del cerchio in cm per calcolare l'area: ";
            cin >> raggio;
            Raggio2= raggio*raggio;
            Area=Raggio2*pigreco;
            cout << "L'area del cerchio e' : cm2 \n",Area;
    }
    else
    {
            float lato, raggio, Circonferenza, Diametro, pigreco = 3.14;
            cout << "Inserisci il raggio del cerchio in cm per calcolare la circonferenza: ";
            cin >> raggio;
            Diametro= raggio+raggio;
            Circonferenza=Diametro*pigreco;
            cout << La circonferenza del cerchio e' : cm \n",Circonferenza;
    }
    system("PAUSE");
    return 0;
}

7 Risposte

  • Re: Help programmino Geometria

    Innanzitutto per accedere all'array devi usare un indice che scorra tutto l'array e poi puoi fare il test tramite l'if...
    prova a fare così e facci sapere
  • Re: Help programmino Geometria

    tafazzi87 ha scritto:


    innanzitutto per accedere all'array devi usare un indice che scorra tutto l'array e poi puoi fare il test tramite l'if...
    prova a fare così e facci sapere
    Ci proverò, tnx you.
  • Re: Help programmino Geometria

    Sono abbastanza confuso. Allora gli array sono impostati bene ma qui non funziona
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    
    
    
    int main(int argc, char *argv[])
    {
        //chars
        char cerchio[0];
        char area[5] = {'a','r','e','a','\0'};
        char circonferenza[14] = {'c','i','r','c','o','n','f','e','r','e','n','z','a','\0'};
    
        //inizializzazioni
        char i1;
        for(i1=0; i1 < 5; i1++)
        {
            cout << area[i1];
        }
        cout << "\n";
        char i2;
        for(i2=0; i2 < 14; i2++)
        {
            cout << circonferenza[i2];
        }
        cout << "\n";
        cout << "scrivi area o circonferenza: ";
        cin >> cerchio;
        if(cerchio == area)
        {
                 float lato, raggio, Area, Raggio2, pigreco = 3.14;
                cout << "Inserisci il raggio del cerchio in cm per calcolare l'area: ";
                cin >> raggio;
                Raggio2= raggio*raggio;
                Area=Raggio2*pigreco;
                cout << "L'area del cerchio e' : cm2 \n";
        }
        if(cerchio == circonferenza)
        {
                float lato, raggio, Circonferenza, Diametro, pigreco = 3.14;
                cout << "Inserisci il raggio del cerchio in cm per calcolare la circonferenza: ";
                cin >> raggio;
                Diametro= raggio+raggio;
                Circonferenza=Diametro*pigreco;
                cout << "La circonferenza del cerchio e': ";
                cout << Circonferenza;
                cout << "cm" << endl;
        }
        else
        {
            cout << "FAIL!" << endl;
        }
        system("PAUSE");
        return 0;
    
    }
    Saluti, AceR
  • Re: Help programmino Geometria

    Iniziamo da capo. Primo: stai studiando il C oppure il C++?
    Secondo: gli array non si confrontano con ==. Se array di POD si usa memcmp, se array di caratteri ovvero stringhe si usa strcmp. Questo per quanto riguarda il C. in c++ c'è la bellissima classe std::string che ti fa fare tutto quello che vuoi, del tipo:
    
    const std::string area("area");
    const std::string circonferenza = "circonferenza";
    
    da notare le due stringhe li ho messe come const perche nel programma non vai mai a cambiarli. Ti ho messo due modi di inizializzare le stringhe equivalenti.Scegli tu quella che preferisci. Con le std::string puoi fare il confronto come stai facendo tu ma solo con la classe std::string, per un array di caratteri usa strcmp che lo trovi nel header <cstring>
    http://www.cplusplus.com/reference/clibrary/cstring/strcmp/
  • Re: Help programmino Geometria

    skynet ha scritto:


    iniziamo da capo. Primo: stai studiando il C oppure il C++?
    Secondo: gli array non si confrontano con ==. Se array di POD si usa memcmp, se array di caratteri ovvero stringhe si usa strcmp. Questo per quanto riguarda il C. in c++ c'è la bellissima classe std::string che ti fa fare tutto quello che vuoi, del tipo:
    
    const std::string area("area");
    const std::string circonferenza = "circonferenza";
    
    da notare le due stringhe li ho messe come const perche nel programma non vai mai a cambiarli. Ti ho messo due modi di inizializzare le stringhe equivalenti.Scegli tu quella che preferisci. Con le std::string puoi fare il confronto come stai facendo tu ma solo con la classe std::string, per un array di caratteri usa strcmp che lo trovi nel header <cstring>
    http://www.cplusplus.com/reference/clibrary/cstring/strcmp/
    Grazie mille ho risolto con i tuoi consigli.

    Sto studiando il c++ ma non ho capito bene come posso creare un else.
        
        else if(cerchio < circonferenza)
        {
            cout << "fail" << endl;
        }
        else if(cerchio > area)
        {
            cout << "fail" << endl;
        }
    Questo codice funziona solo se quello che scrivo è minore di 4 o maggiore di 13 caratteri ma se quello che scrivo va dal 5 al 12 caratteri mi stampa il pause
  • Re: Help programmino Geometria

    Ciao mhhh usiamo le traduzioni prima xD if tradotto in italiano vuol dire SE else vuol dire ALTRIMENTI xD per usare l'else if (e quindi l'altrimenti se) prima ci devi mettere un if

    esempio:
    if(x==y)
    ....
    
    else if (x1==y1)
    .....
    
    poi tutti gli else if che vuoi

    e infine l'else nel caso in cui nessuna condizione si verifichi spero di essermi fatto capire.
  • Re: Help programmino Geometria

    1mm0rt4le ha scritto:


    ciao mhhh usiamo le traduzioni prima xD if tradotto in italiano vuol dire SE else vuol dire ALTRIMENTI xD per usare l'else if (e quindi l'altrimenti se) prima ci devi mettere un if

    esempio:
    if(x==y)
    ....
    
    else if (x1==y1)
    .....
    
    poi tutti gli else if che vuoi

    e infine l'else nel caso in cui nessuna condizione si verifichi spero di essermi fatto capire.

    Grazie, ho risolto
Devi accedere o registrarti per scrivere nel forum
7 risposte