+ Rispondi
Pagina 1 di 10 1 2 3 ... UltimaUltima
Risultati da 1 a 10 su 99

Discussione: Consulenza in C++

  1. #1

    Iscritto dal
    22/09/2011
    Località
    Napoli, Italia
    Messaggi
    12,146

    Consulenza in C++

    Buon pomeriggio.

    Vado al sodo come sempre: mi sto allenando a programmare in C++ e sono arrivato ai tipi di dato strutturato. In questo caso mi sto servendo del vettore array monodimensionale per svolgere diversi esercizi, ma non riesco a risolverne uno: questo esercizio chiede: "Somma 10 numeri interi e comunica la somma dopo averli letti o quando viene inserito lo 0".

    Ebbene, la stringa di codice che ho creato (sebbene provvisoria) è questa:

    Spoiler: Stringa di codice

    #include <iostream>#include <stdlib.h>
    using namespace std;




    //Dichiaro qual è il numero massimo degli elementi di cui il vettore
    //deve essere composto.


    int N_MAX = 10;
    typedef int vettore_numero;




    int main () {

    //Somma 10 numeri interi e comunica la somma dopo averli letti o quando viene
    // inserito lo 0.

    //Obiettivo: usare il ciclo for.
    //Nota: è utile usufruire dei tipi di dato strutturati.


    //Assegno un nome al vettore
    vettore_numero numero [N_MAX];

    int i;
    int pulsante;



    //Inserisco un ciclo "for" per assicurarmi che l'utente inserisca
    //tutti i valori (che sono 10).

    for (i=0;i<N_MAX;i++){

    cout<<"Inserire il valore numero " << i + 1 << " ";
    cin>>numero[i];
    cout<<"\n";

    }

    //Una volta finito il ciclo, chiedi conferma e successivamente
    //stampa la somma.

    cout<<"Premere il tasto 0 per continuare. ";
    cin>>pulsante;

    //Se il pulsante premunto è 0, stampa la somma di tutti i valori
    //presenti in ogni indice di cui il vettore è composto.

    cout<<"La somma dei valori e': ";

    //Da definire






    system ("pause");



    }


    La domanda è: cosa devo mettere per far uscire la somma di tutti i valori contenuti in ciascun indice?

    Grazie in anticipo per tutto, come sempre.
    "Una volta che avrai
    spiccato il volo, deciderai
    sguardo verso il ciel, saprai
    lì a casa il cuore sentirai".

  2. #2
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    per la somma banalmente:
    codice:
    for (i=0;i<N_MAX;i++){
    
    cout<<"Inserire il valore numero " << i + 1 << " ";
    cin>>numero[i];
    somma += numero[i];
    cout<<"\n";
    
    }
    e dichiari somma come int e lo inizializzi a 0 da qualche parte sopra


    piuttosto penso che N_MAX per usarlo a quel modo debba essere const e che tu abbia mal interpretato il fatto dello 0, ma vabbè
    My name is Legion, for we are many.

  3. #3

    Iscritto dal
    22/09/2011
    Località
    Napoli, Italia
    Messaggi
    12,146
    Grazie Nic!

    Il fatto è che il prof mi pare abbia solo accennato a "const" senza spiegare esattamente di cosa si trattasse.
    Per il fatto dello 0 so che un vettore di X elementi associa ad ogni elemento un valore con indice che va da 0 a X-1,o sbaglio?
    "Una volta che avrai
    spiccato il volo, deciderai
    sguardo verso il ciel, saprai
    lì a casa il cuore sentirai".

  4. #4
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    dicevo questo fatto dello 0

    Quote Originariamente inviato da Frency Visualizza il messaggio
    "Somma 10 numeri interi e comunica la somma dopo averli letti o quando viene inserito lo 0".
    My name is Legion, for we are many.

  5. #5

    Iscritto dal
    22/09/2011
    Località
    Napoli, Italia
    Messaggi
    12,146
    Ah! Beh, io l'ho interpretato come "inserisci 10 numeri interi, prima di fare la somma chiedi conferma. Se l'utente preme "0" effettua l'operazione". Anche se un'altra interpretazione potrebbe essere "fai la somma di 10 numeri interi, a meno che non venga digitato lo 0 fra questi, in tal caso fermati e somma i numeri inseriti dall'inizio fino a quando è stato digitato lo 0". Non mi sovvengono altre interpretazioni..
    "Una volta che avrai
    spiccato il volo, deciderai
    sguardo verso il ciel, saprai
    lì a casa il cuore sentirai".

  6. #6
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    voto per la seconda
    My name is Legion, for we are many.

  7. #7

    Iscritto dal
    22/09/2011
    Località
    Napoli, Italia
    Messaggi
    12,146
    Okay, ho provato, ma a quanto pare qualunque valore metto mi da come risultato "55". Questo è il codice modificato:

    Spoiler: Codice

    #include <iostream>
    #include <stdlib.h>
    using namespace std;




    //Dichiaro qual è il numero massimo degli elementi di cui il vettore
    //deve essere composto.


    const int N_MAX = 10;
    typedef int vettore_numero;




    int main () {

    //Somma 10 numeri interi e comunica la somma dopo averli letti o quando viene
    // inserito lo 0.

    //Obiettivo: usare il ciclo for.
    //Nota: è utile usufruire dei tipi di dato strutturati.


    //Assegno un nome al vettore
    vettore_numero numero [N_MAX];

    int i;
    int pulsante;
    int somma;

    somma=0;



    //Inserisco un ciclo "for" per assicurarmi che l'utente inserisca
    //tutti i valori (che sono 10).

    for (i=0;i<N_MAX;i++){

    cout<<"Inserire il valore numero " << i + 1 << " ";
    cin>>numero[i];
    cout<<"\n";

    }

    //Una volta finito il ciclo, chiedi conferma e successivamente
    //stampa la somma.

    cout<<"Premere il tasto 0 per continuare. ";
    cin>>pulsante;

    //Se il pulsante premunto è 0, stampa la somma di tutti i valori
    //presenti in ogni indice di cui il vettore è composto.


    somma =somma + numero[i];

    if (pulsante==0)
    cout<<"La somma dei valori e': "<<somma;



    system ("pause");



    }


    Cerco di capire e vi aggiorno.
    "Una volta che avrai
    spiccato il volo, deciderai
    sguardo verso il ciel, saprai
    lì a casa il cuore sentirai".

  8. #8

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,872
    codice:
    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    
    //Dichiaro qual è il numero massimo degli elementi di cui il vettore
    //deve essere composto.
    
    const int N_MAX = 10;
    typedef int vettore_numero;//perchè fai questa cosa? 
    
    
    int main () {
    
    
        //Somma 10 numeri interi e comunica la somma dopo averli letti o quando viene
        // inserito lo 0.
    
    
        //Obiettivo: usare il ciclo for.
        //Nota: è utile usufruire dei tipi di dato strutturati.
    
    
    
    
        //Assegno un nome al vettore
        int numero[N_MAX];
    
        int i;
        int pulsante;
        int somma;
    
        somma=0;
    
        //Inserisco un ciclo "for" per assicurarmi che l'utente inserisca
        //tutti i valori (che sono 10).
    
        for (i=0;i<N_MAX;i++)
        {
            cout<<"Inserire il valore numero " << i + 1 << " ";
            cin>>numero[i];
            somma+=numero[i];
            if(numero[i] == 0)
                break;
            cout<<"\n";
        }
    
        printf("\nLa somma è : %d" , somma);
    
    }

    Frency, come mai usi il typedef? Non ti serve o per lo meno, forse non hai capito a cosa serve.

  9. #9

    Iscritto dal
    22/09/2011
    Località
    Napoli, Italia
    Messaggi
    12,146
    In effetti sì, è accessorio, avrei potuto anche non metterlo, volevo solo far pratica anche con quello. Se non erro, "typedef" mi consente di appellare un identificatore con un nome a mia scelta, così ad esempio, invece di "int" posso mettere "intero". Però in effetti il prof non ha specificato se devo farlo sempre dopo, oppure no..
    "Una volta che avrai
    spiccato il volo, deciderai
    sguardo verso il ciel, saprai
    lì a casa il cuore sentirai".

  10. #10

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,872
    Quote Originariamente inviato da Frency Visualizza il messaggio
    In effetti sì, è accessorio, avrei potuto anche non metterlo, volevo solo far pratica anche con quello. Se non erro, "typedef" mi consente di appellare un identificatore con un nome a mia scelta, così ad esempio, invece di "int" posso mettere "intero". Però in effetti il prof non ha specificato se devo farlo sempre dopo, oppure no..
    Ridefinire i tipi è comodo ma pericoloso.
    Solitamente si usa quando programmi su diverse piattaforme.
    Per esempio: (non più attuale ma, quello che magari comprendi al meglio)
    int pippo compilato su una piattaforma a 16 bit occupa 2 byte. Ora ne occupa 4.

    quindi per chiarezza io posso fare
    typedef int WORD
    su una macchina a 16 bit
    typedef short WORD
    su una macchina a 32 bit
    e nel mio sorgente usare WORD dove io voglia usare un intero con segno a 2 byte.


    poi per comodità ormai tutti i compilatori considerano int a 32bit. Ma stando all'ANSI C int rappresenta l'intero naturale del sistema, quindi la sua dimensione dipende dal microprocessore.





 
+ Rispondi
Pagina 1 di 10 1 2 3 ... UltimaUltima

Autorizzazioni

  • Non puoi iniziare nuove discussioni
  • Non puoi rispondere alle discussioni
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
Powered by vBulletin™ Version 4.1.5
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved
SEO by vBSEO ©2011, Crawlability, Inc.
Fuso orario: UTC +1, sono le 18:12.