Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2015
    Messaggi
    32
    Quote Originariamente inviata da paolino_delta_t Visualizza il messaggio
    dovrebbe risultare chiaro quando usare le une e quando le altre
    Non proprio ... forse se ho capito bene mi conviene usare le funzioni quando devo concentrarmi sull'input e le procedure quando devo concentrarmi sull'output?

    Quote Originariamente inviata da paolino_delta_t Visualizza il messaggio
    Nell'esempio che hai fatto non c'è nessun bisogno di creare delle subroutine, ma volendo potresti creare una procedura che legge tutti i numeri e li mette in un'array globale. Un'altra procedura successivamente legge l'array ed effettua le somme. Magari questa potrebbe essere una funzione e ritornare la somma.
    Ehm... purtroppo non ho fatto array nè matrici come ho detto nel messaggio iniziale


    "Sono nuovo nel mondo della programmazione e sto studiando a scuola il linguaggio di programmazione C + + .
    Abbiamo da poco finito di studiare tutte le strutture di controllo del C + + ( quelle sequenziali , selettive(if,else,switch), iterative ( while,do-while,for) ) e siamo passati ai sottoprogrammi. "

  2. #2
    Quote Originariamente inviata da Warioss Visualizza il messaggio
    Non proprio ... forse se ho capito bene mi conviene usare le funzioni quando devo concentrarmi sull'input e le procedure quando devo concentrarmi sull'output?
    In che senso input ed output? Le funzioni le usi quando hai bisogno che ti venga restituito un valore. La funzione in programmazione è l'equivalente della funzione in matematica, cioè y = f(x), dove ti serve sapere quanto vale y per vari valori della x. Se non ti serve saperlo, allora è una procedura il costrutto che devi usare.

    Riguardo la soluzione dell'esercizio, quella è una possibile soluzione. La procedura è ovviamente inutile, perchè di fatto risolve un problema che non c'è, ma è corretto fare così.

    Avresti potuto usare una funzione nel caso ti fosse servita solo una delle somme, ad esempio così

    codice:
    int sommaPD(int&n) {
        int somma;
    
        while (n>0) {
            somma += n;
            cin >> n;
        }
    
        return somma; // qui la funzione restituisce la somma al chiamante, ti evita di passare somma per riferimento
    }
    Si può fare pure con le due somme, basta creare una struct che contiene due campi ( sp e sd ) e poi restituire la struct. Ma bisognerebbe allocare la struct in memoria, ecc... insomma diventa un pò più complesso.
    Ultima modifica di paolino_delta_t; 07-11-2015 a 22:32

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2015
    Messaggi
    32
    Quote Originariamente inviata da paolino_delta_t Visualizza il messaggio
    In che senso input ed output? Le funzioni le usi quando hai bisogno che ti venga restituito un valore. La funzione in programmazione è l'equivalente della funzione in matematica, cioè y = f(x), dove ti serve sapere quanto vale y per vari valori della x. Se non ti serve saperlo, allora è una procedura il costrutto che devi usare.

    Riguardo la soluzione dell'esercizio, quella è una possibile soluzione. La procedura è ovviamente inutile, perchè di fatto risolve un problema che non c'è, ma è corretto fare così.

    Avresti potuto usare una funzione nel caso ti fosse servita solo una delle somme, ad esempio così

    codice:
    int sommaPD(int&n) {
        int somma;
    
        while (n>0) {
            somma += n;
            cin >> n;
        }
    
        return somma; // qui la funzione restituisce la somma al chiamante, ti evita di passare somma per riferimento
    }
    Si può fare pure con le due somme, basta creare una struct che contiene due campi ( sp e sd ) e poi restituire la struct. Ma bisognerebbe allocare la struct in memoria, ecc... insomma diventa un pò più complesso.
    Perfetto, grazie mille
    Ho apprezzato sia la spiegazione teorica che il fatto che tu mi abbia controllato l'esercizio ^_^
    Solo una cosa di ciò che hai scritto non ho capito : l'ultima parte quando hai parlato di " struct" , non so cosa sia

    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Chi ha detto una cosa del genere? Se è stato il tuo professore beh, cambia professore...
    No , ne dubito . Ho inteso io male =P

  4. #4
    Quote Originariamente inviata da Warioss Visualizza il messaggio
    l'ultima parte quando hai parlato di " struct" , non so cosa sia
    Non è importante. Le studierete a breve. Si tratta di un costrutto del C/C++ ( ma alcuni docenti dicono che usarle in C++ è segno di cattiva programmazione ) che consente di racchiudere più proprietà di un oggetto all'interno di uno stesso costrutto.

    Esempio:

    codice:
    struct Persona {
        char nome[30];
        char cognome[30];
        int eta;
        bool sesso;
        ecc....
    }
    In questo modo si possono raggruppare più attributi di una stessa classe di oggetti, in modo da rendere più leggibile il codice. In C++ ed altri linguaggi OOP si dovrebbero usare le classi in luogo delle struct, ma non è sempre un'idea intelligente dal punto di vista delle prestazioni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2015
    Messaggi
    32
    Quote Originariamente inviata da paolino_delta_t Visualizza il messaggio
    Non è importante. Le studierete a breve. Si tratta di un costrutto del C/C++ ( ma alcuni docenti dicono che usarle in C++ è segno di cattiva programmazione ) che consente di racchiudere più proprietà di un oggetto all'interno di uno stesso costrutto.

    Esempio:

    codice:
    struct Persona {
        char nome[30];
        char cognome[30];
        int eta;
        bool sesso;
        ecc....
    }
    In questo modo si possono raggruppare più attributi di una stessa classe di oggetti, in modo da rendere più leggibile il codice. In C++ ed altri linguaggi OOP si dovrebbero usare le classi in luogo delle struct, ma non è sempre un'idea intelligente dal punto di vista delle prestazioni.
    Precisissimo grazie ancora! Alla prossima

Tag per questa discussione

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.