Funzione chiarimento

di il
2 risposte

Funzione chiarimento

Buonasera Gentili Programmatori,
avrei bisogno di una Vostra delucidazione.
la funzione calcolo dell'area e perimetro del quadrato del tipo:

void quadrato(void){
int l;
printf("inserire il lato : ");
scanf("%d",&l);
printf("area : %d\nperimetro: %d\n",l*l,l*4);
}

perchè si scrive VOID sia in input che in output? io sapevo che void prima della funzione si usa quando essa non deve ritornare nessun risultato, ma in questo caso? Il risultato lo deve ritornare eccome, e' quello dell'area e del perimetro. Che cosa non mi torna?
Mi confermereste che all'interno della parentesi il void significa che la funzione non riceve dalla funzione chiamante nessun dato?
Grazie ragazzi, sono disperata perche' non ci capisco nulla con queste funzioni..

2 Risposte

  • Re: Funzione chiarimento

    Come prima cosa studiati le funzioni... quel prototipo significa che non prende alcun parametro nè lo ritorna.
    in questo caso non serve ritornare l'area e/o il perimetro perché vengono stampati a schermo. tuttavia rimangono variabili locali a questa funzione, quindi se per caso tu necessitassi di una funzione che ha bisogno dell'area del quadrato per poter fare una certa istruzione, devi andarti a riscrivere il calcolo.
    se l'hai fatta tu questa funzione, ti consiglio di evitare il più possibile l'utilizzo di i/o (printf/scanf) all'interno delle funzioni (dipende poi dall'esercizio) e lasciarlo tutto al main: in questo caso la cosa migliore da fare sarebbe questa:
    float area (float l)
    { 
        return l*l; 
    }
    
    float perimetro (float l)
    { 
        return l*4; 
    }
    oppure se avessi bisogno di una funzione che te li calcola entrambi e li ritorna contemporaneamente puoi fare:
    float calcolaAreaPerimetro (float l, float* area, float* p)
    { 
        *area = l * l;
        *p = l * 4;
    }
  • Re: Funzione chiarimento

    Ti ringrazio molto.
    Ristudierò il capitolo delle funzioni, lo trovo abbastanza complicato
Devi accedere o registrarti per scrivere nel forum
2 risposte