Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di maxmo
    Registrato dal
    Nov 2001
    Messaggi
    52

    perchè le funzioni in C?

    non riesco a capire la funzione delle "Funzioni" e non riesco a trasformare una serie di operazioni in una funzione.
    Mi spiego meglio:
    ho editato il seguente codice
    ---------------------------------------------
    /* fare una domada ed attendere la risposta si/no */

    #include <stdio.h>

    int main()

    {
    char risposta='x';
    do {
    char *domanda="ti piace la cioccolata?";
    printf("%s\n",domanda);
    risposta=getchar();
    }
    while (risposta !='y' && risposta !='n' );

    if (risposta == 'y')
    printf("\tgoloso\n");
    if (risposta == 'n')
    printf("\tpeccato\n");
    }
    -----------------------------------------
    perchè dovrei trovare giovamento a trasformarla in funzione.

    perchè il seguente codice non produce nessun risultato?

    ---------------------------------------------
    /* fare una domada ed attendere la risposta si/no */

    #include <stdio.h>
    void funzioni(char *domanda, char risposta);
    int main()
    {
    void funzioni(char *domanda, char risposta)
    {
    char risposta='x';
    char *domanda="ti piace la cioccolata?";
    do {

    printf("%s\n",domanda);
    risposta=getchar();
    }
    while (risposta !='y' && risposta !='n' );

    if (risposta == 'y')
    printf("\tgoloso\n");
    if (risposta == 'n')
    printf("\tpeccato\n");
    }
    ----------------------------------------
    Il giorno luminoso se n'è andato.
    La notte mi rende triste, triste.
    Ma le stelle sono tutte bianche .
    Mi sussurrano che il giorno tornerà.
    Oh stelle, piccoli pezzi del giorno!

  2. #2
    Sinceramente non sò cosa ti serva a trasformare quel programma in una funzione.

    Una funzione serve serve a molte cose
    Serve a rendere più comprensivo un sorgente.
    Serve a non esguire le stesse operazioni con diverse variabili più volte.
    Serve un pò a tutto

    Esempio:
    codice:
    #include <stdio.h>
    
    int somma(int f1, int f2){
            int ciao;
            ciao=f1+f2; 
            return ciao;
    }
    
    main(){
     int a,b;       
     printf("Inserisci la variabile a: ");
     scanf("%d",&a);
     printf("Inserisci la variabile b: ");
     scanf("%d",&b);
     printf("La somma dei due è: %d \n",somma(a,b));
     return(0);
    }

  3. #3
    Utente di HTML.it L'avatar di maxmo
    Registrato dal
    Nov 2001
    Messaggi
    52
    grazie per aver risposto con un semplice esercizio, ma il prototipo non lo dichiari?
    Dove posso trovare esercizi del genere?
    Io ho scaricato tricky C ma lo trovo complesso e scritto per DOS, io uso Linux.
    Saluto
    Il giorno luminoso se n'è andato.
    La notte mi rende triste, triste.
    Ma le stelle sono tutte bianche .
    Mi sussurrano che il giorno tornerà.
    Oh stelle, piccoli pezzi del giorno!

  4. #4
    credo di aver "Ritrovato" qualcosa che faccia proprio al caso tuo:

    http://forum.html.it/forum/showthrea...light=funzioni
    ...Terrible warlords, good warlords, and an english song

  5. #5
    Utente di HTML.it L'avatar di maxmo
    Registrato dal
    Nov 2001
    Messaggi
    52
    avevo già fatto una ricerca nel forum ed avevo letto quanto hai linkato.
    Forse è meglio che mi compri subito un buon libro di C per linuxiani
    altrimenti passo le settimana senza combinare nulaa.
    Il giorno luminoso se n'è andato.
    La notte mi rende triste, triste.
    Ma le stelle sono tutte bianche .
    Mi sussurrano che il giorno tornerà.
    Oh stelle, piccoli pezzi del giorno!

  6. #6
    Indubbiamente il libro è la cosa migliore...
    se si vuole studiare "sul serio" un linguaggio

    CMQ per ora che non hai ancora un buon manuale C,
    guarda anche qua:
    http://www.hyperbook.it/
    c'è un buon corso base su C
    ...Terrible warlords, good warlords, and an english song

  7. #7
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Originariamente inviato da Johnny_Depp
    Indubbiamente il libro è la cosa migliore...
    se si vuole studiare "sul serio" un linguaggio

    CMQ per ora che non hai ancora un buon manuale C,
    guarda anche qua:
    http://www.hyperbook.it/
    c'è un buon corso base su C
    Confermo il consiglio di Johnny, io quel libro l'ho addirittura comperato e devo dire di essermi trovato molto bene, è anche molto ricco di esercizi (il che non guasta, assicurato! )
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  8. #8
    Originariamente inviato da maxmo
    grazie per aver risposto con un semplice esercizio, ma il prototipo non lo dichiari?
    Saluto
    Come non lo dicharo? è dichiarato
    codice:
    int somma(int f1, int f2){

  9. #9
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Originariamente inviato da maxmo
    grazie per aver risposto con un semplice esercizio, ma il prototipo non lo dichiari?
    Il prototipo Michele non lo ha dichiarato perchè ha scritto la funzione prima di main(), se l'avesse scritta dopo avrebbe dovuto dichiararne il prototipo, capito?
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  10. #10
    Orig. inviato da wolf64
    Il prototipo Michele non lo ha dichiarato perchè ha scritto la funzione prima di main(), se l'avesse scritta dopo avrebbe dovuto dichiararne il prototipo, capito?
    INFATTI... per i puristi del linguaggio
    il prototipo di funzione andrebbe dichiarato prima
    e la prima funzione dovrebbe essere sempre la principale
    alias main().
    MA come giustamente ha detto wolf64
    se dichiari una qualsiasi funzione (e non il suo prototipo)
    prima della funzione principale...main()
    non sarà più necessario dichiarare il prototipo.

    [parere personale]

    Ti consiglio comunque di dichiarare sempre i prototipi, e
    di definire le funzioni "secondarie" sempre dopo la funzione main(). Facendo così (scriverai qualche riga in più di codice)
    ma renderai il sorgente più chiaro (e non è poco), e seguiresti uno standard...

    Ad ogni modo la scelta è tua:

    P.S: I due esempi che ti propongo fanno la stessa cosa.

    codice:
    /* ESEMPIO 1 Standard */
    
    /* dichiaro il prototipo della funzione "funzione()"*/
    void funzione();
    
    /* dichiaro la funzione principale main() */
    void main(){
        funzione();
    }
    
    /* dichiaro la funzione "funzione()" */
    void funzione(){
        printf("hello spank!!");
    }
    
    ///////////////////////////////////////////////
    
    /* ESEMPIO 2 */
    
    /* dichiaro direttamente la funzione (N.B. Sempre prima di main() )*/
    void funzione(){
        printf("hello spank!!");
    }
    
    /* dichiaro la funzione principale main() */
    void main(){
        funzione();
    }
    ...Terrible warlords, good warlords, and an english song

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.