Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C] Struttura di un file C

    Salve, premetto che sono un principiante in programmazione e ho un progetto.
    In pratica voglio crearmi un utility che mi permetta di risolvere diversi calcoli matematici.
    La mia idea è quella di una finestra di terminale nel quale scrivere alcuni comandi (per esempio 'parabola' 'binomio di newton' 'equazione di terzo grado') e di accedere a parti di codice che mi risolvono appunto una parabola, un binomio di newton...
    Per fare ciò avevo pensato ad una struttura del genere:
    codice:
    int main (int argc, const char * argv[])
    {
        
    COMBINAZIONISEMPLICI:
        printf("Calcolo delle Combinazioni Semplici\nInserisci n e k\n");
        int n;
        int k;
        scanf("%d", &n);
        scanf("%d", &k);
        printf("Il numero di CS è %ld \n", CombiSemplici(n,k));
    ALTRO: //altre parti di codice che rimandano a funzioni
        printf("...");
    
        return 0;
    }
    con tutte le funzioni fuori da main e richiami alle funzioni quando occorrono (come in CombiSemplici).

    Ora non ho la più pallida idea se questo "modus operandi" è quello corretto o se ci sono soluzioni molto più "eleganti".

    Ringrazio chiunque mi possa dare una mano.

    Lorenzo.

  2. #2
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    peggio del C, per un principiante, c'è solo l'Assembly, non è esattamente il linguaggio da far studiare ad una persona come te, cioé che vuole tanto con poco sforzo e per giunta è all'inizio.

    Detto questo, ti conviene fare una opportuna divisione in vari file sorgente delle varie funzioni, quando dico opportuna intendo dire che sta a te decidere quante e quali funzioni accorpare in un file, ovviamente porre nello stesso file la funzione del calcolo del volume di un corpo solido e la funzione che calcola una successione di Fibonacci è lecito per il compilatore ma poco significativo per chiunque usi quel codice.

  3. #3

    Capisco.

    Capisco ma... di norma come viene suddiviso un codice in c? Dico, l'uso del goto è "corretto"?

  4. #4
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460

    Re: Capisco.

    Originariamente inviato da notexpert
    Capisco ma... di norma come viene suddiviso un codice in c? Dico, l'uso del goto è "corretto"?
    formalmente corretto ma è caldamente consigliato il suo abbandono, il goto contribuisce a rendere molto meno leggibile il codice, complica il debug e la comprensione di un programma, è solitamente un esempio di cattiva programmazione, è una opzione presente nel C ma ci sono modi molto più eleganti, concisi e precisi che far fare salti al codice; anche il solo return è sicuramente preferibile, anche se sempre da evitare finché si può.

    la struttura di controllo migliore, non migliore in assoluto, la più elegante diciamo così, è l'IF, anche detto IF than ELSE per i più precisi, che per condizioni multiple concatenate diventa un cosidetto IF multiramo ( anche detto else-if o nested ).

    http://programmazione.html.it/guide/...ionali-ifelse/

    questa è solitamente una struttura che può sostituire con maggiore eleganza una bruttura come goto ( più che bruttura è una istruzione che oggi non ha molto senso ), solitamente l'IF-ELSE è preferito anche ad uno switch case vista la maggiore flessibilità.

    devi comunque specificare qualcosa di più sul tuo progetto, altrimenti il thread diventa una lezione sul C

  5. #5
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Come si fa a richiamare funzioni che sono su altri file sorgenti?

  6. #6
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    Originariamente inviato da goatboy
    Come si fa a richiamare funzioni che sono su altri file sorgenti?
    secondo te la direttiva #include a cosa serve?

  7. #7
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da Freax
    secondo te la direttiva #include a cosa serve?
    Era solo un dubbio, non avendolo mai fatto

  8. #8
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    Originariamente inviato da goatboy
    Era solo un dubbio, non avendolo mai fatto
    c'è anche da studiare la fase di creazione dell'oggetto e linking per capire cosa avviene, solitamente i file vengono "fusi" nell'operazione di linking.

  9. #9

    Ricapitolando...

    Quindi, ricapitolando, io potrei scrivere le mie funzioni in file sorgenti separati, per esempio
    Trigonometria.h, Algebra.h, TeoriaDeiNumeri.h etc.
    poi mettere
    #include Trigonometria.h
    #include ... etc
    e in un file solo mettere solo main... con tutti i richiami alle funzioni
    e il compilatore si preoccupa di andare a cercare tutto quello che gli serve.

    Ma questo è fantastico!

  10. #10
    Ricordati che nei .h devi mettere solo prototipi ed eventuali define e typedef
    nei .c devi mettere le funzioni vere e proprie e le varie variabili, includendo in essi anche i relativi .h in modo che il compilatore possa controllarli
    all that you need:
    http://www.cplusplus.com/reference/clibrary/

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 © 2024 vBulletin Solutions, Inc. All rights reserved.