Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    13

    Help! Function

    Ciao,
    All' uni sto seguendo programmazione I(e usiamo Microsoft Visual C++ 6.0);
    Allora due giorni fa il prof ha spiegato le function e le procedure che devo dire ho capito...solo che quando ci ha detto di richiamare dal main una function e da quest ultima un altra function...sono andato un po nel pallone, cioè non ho capito come richiamare una function all' interno di un'altra function.
    Vi prego mi spiegate come fare??? So che è una cosa molto importante e non voglio rimanere indietro.

    L'esercizio richiesto è:
    "Scrivere una function area_corona che calcoli l’area di una corona circolare, dati il raggio maggiore e il raggio minore, richiamando la functionarea_cerchio.
    Scrivere un main che legga in input (con scanf) il raggio maggiore e il raggio minore e richiami la function area_corona"

    Allora io già avevo scritto il prog. per il calcolo dell' area_corona con una sola function che riporto di seguito:

    #include <stdio.h>
    float areacerchio(float raggio);
    void main()
    {
    float areacorona, raggio, area_min, area_max;
    printf(" .::CALCOLO AREA CORONA::.\n\n\n");
    printf("Inserisci il raggio maggiore:");
    scanf("%f", &raggio);
    printf("Inserisci il raggio minore:");
    scanf("%f", &raggio);
    area_max=areacerchio(raggio);
    area_min=areacerchio(raggio);
    areacorona=area_max-area_min;
    printf("\n\nArea Corona=%f\n", areacorona);
    }
    float areacerchio(float raggio)
    {
    const float pi_greco=3.1415926F;
    return 2.F*pi_greco*(raggio*raggio);
    }

    ---------------------------------------------------------

    Per quanto riguarda l'esercizio che con le 2 function, ho provato a scrivere il main() del programma e la function area_cerchio:

    (MAIN):

    #include <stdio.h>
    #define pi_greco 3.1415926F

    float area_corona(float raggiomax, float raggiomin);

    void main()
    {
    float raggiomax, raggiomin, corona;
    printf(" .::CALCOLO AREA CORONA::.\n\n\n");
    printf("Inserisci il raggio maggiore e minore:");
    scanf("%f" "%f", &raggiomax, &raggiomin);
    corona=area_corona(float raggiomax, float raggiomin);
    printf("\n\nArea Corona=%f\n", corona);
    }

    -----------------------------------
    (Function area_cerchio):

    float areacerchio(float raggio)
    {
    const float pi_greco=3.1415926F;
    return 2.F*pi_greco*(raggio*raggio);
    }
    -----------------------------------

    Ecco, ora il mio problema è scrivere la function area_corona che richiama area_cerchio.

    HELP VVoVe:


    GRAZIE ANTICIPATAMENTE

  2. #2
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    non mi voglio ripetere...
    ci sono i moderatori per quello...
    ma il regolamento va letto prima di postare...

    cmq da quello che ho capito è C il linguaggio, giusto??

    innanzitutto memorizzi il raggio maggiore e quello minore in una sola variabile raggio... e penso sia molto sbagliato VVoVe: VVoVe:
    fa 2 variabili una raggio_max e una raggio_min...che dici??
    codice:
    2.F*pi_greco*(raggio*raggio)
    ??? il 2.F???
    per la funzione che problema c'è richiami semplicemente la funzione area cerchio all'interno della funzione area corona 2 volte una per calcolarti l'area maggiore, l'altra per l'area minore...
    tipo
    codice:
    #include <stdio.h> 
    float areacerchio(float raggio); 
    
    void main() 
    { 
      float areacorona, raggio_max,raggio_min, area_min, area_max; 
      printf(" .::CALCOLO AREA CORONA::.\n\n\n"); 
      printf("Inserisci il raggio maggiore:"); 
      scanf("%f", &raggio_max); 
      printf("Inserisci il raggio minore:"); 
      scanf("%f", &raggio_min); 
      areacorona=areacorona(raggio_max,raggio_min); 
      printf("\n\nArea Corona=%f\n", areacorona); 
    } 
    float areacerchio(float raggio) 
    { 
      const float pi_greco=3.1415926F; 
      
      return 2.F*pi_greco*(raggio*raggio); 
    }
    float areacorona(float max,float min) 
    {  
      return (areacerchio(max) - areacerchio(min)); 
    }
    prova cosi...
    altra cosa usa i tag CODE quando posti il codice e ricorda di indentarlo perchè altrimenti specialmente se il codice è lungo è illeggibile...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    13
    Scusami è vero ho combinato un casino con questo post...mea culpa
    Ho provato, eseguendo il codice mi da errore di compilazione nel main:
    areacorona' - non è una funzione

  4. #4
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    certo non l'hai dichiarata come hai dichiarato areacerchio...
    e io me ne sono dimenticato...


    aggiungi prima del main
    codice:
    float areacorona(float,float);
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    13
    No, avevo visto che l'avevi dimenticato, ma mi da kmq sempre lo stesso errore
    codice:
    #include <stdio.h> 
    float areacorona(float, float);
    float areacerchio(float raggio) ;
     
    void main() 
    { 
      float areacorona, raggio_max,raggio_min, area_min, area_max; 
      printf(" .::CALCOLO AREA CORONA::.\n\n\n"); 
      printf("Inserisci il raggio maggiore:"); 
      scanf("%f", &raggio_max); 
      printf("Inserisci il raggio minore:"); 
      scanf("%f", &raggio_min); 
      //Qui mi da l'errore
    ->areacorona=areacorona(raggio_max, raggio_min); 
      printf("\n\nArea Corona=%f\n", areacorona); 
    }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non usare lo stesso nome per la variabile e la funzione !

    Usa

    float area;


    area=areacorona(...)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    13
    te lo stavo scrivendo anche io, c'ero arrivato...mi stupisco di me stesso
    pero, quando avvio il prog ed immetto i valori, il prog mi restituisce sempre il valore 0.000000


    Guarda, vi ringrazio x la pazienza che avete con me!

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    13
    Ma, non è che si perdono i valori del raggio???

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    13
    Forse ho risolto :

    Se modifico cosi la function area_corona, avviando il programma funziona e non ho nessun errore di compilazione e di linking.

    codice:
    float areacorona(float raggio_max,float raggio_min) 
    {  
            float max, min;
    	float areacerchio(float raggio);
    	max=raggio_max;
    	min=raggio_min;
    	return (areacerchio(max) - areacerchio(min)); 
    }
    è giusto??

  10. #10
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    dichiari la funzione areacerchio all'interno della funzione areacorona...
    però se vuoi usare la funzione areacerchio nel main, o in altre funzioni, in questo modo non lo puoi fare...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

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.