Le funzioni, calcolo della potenza


Esempio di applicazione di una funzione: elevamento a potenza dati due numeri interi, base ed esponente.

la procedura è scomposta in tre parti fondamentali:


  • leggi base ed esponente (input da tastiera)
  • calcola la potenza 
  • scrivi il risultato

il codice per il calcolo della potenza non è inserito direttamente del main del programma, ma in una apposita funzione denominata "potenza". tale funzione viene richiamata dal main.



il codice della funzione potenza può essere schematizzato nelle seguenti fasi:

  • ricevi i parametri interi b, e con i valori base ed esponente passati dal main
  • controlla i casi particolari: se l'esponente è pari a zero, ritorna come risultato il valore 1.
  • ripeti un numero di volte corrispondente ad   e   la moltiplicazione della base   b   per se stessa (es. 3 alla quarta: 3*3*3*3)
  • ritorna il valore calcolato


codice in c++:
versione semplificata: http://ideone.com/vk8IaC 
versione con controlli degli input: http://ideone.com/oiz37m

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

/*
Programma per il calcolo della potenza di un numero per un esponente
con l'uso di una funzione
MC 2016
*/

#include <iostream>
using namespace std;

// dichiarazione della funzione, il codice è scritto dopo il main
int potenza(int, int); 

int main() {
 
    int base, esp, risultato;
 
 
    //chiedo la base
    cout<<"inserisci la base: ";
    cin>>base;

    //chiedo l'esponente e verifico che sia non negativo
    do{
       cout<<"inserisci l'esponente >=0: ";
       cin>>esp;
    }
    while (esp<0);
 
   // la funzione viene richiamata con due parametri e restituisce un valore intero
    risultato= potenza(base, esp);
 
    cout<<base<<" elevato a "<<esp<<" = "<<risultato<<endl;
 
    return 0;
 
}


/* Codice della funzione potenza: riceve due valori interi e restituisce un intero (risultato dell'elevamento a potenza di base all'esponente)
Si noti che i valori ricevuti sono inseriti nelle variabili b, e che non hanno bisogno di altra dichiarazione o assegnamento
*/

int potenza (int b, int e) {
 
    int i, p;
 
   //se l'esponente è nullo il risultato non ha bisogno di calcoli ulteriori
    if (e==0) {
        p=1;
    }
 
    else {
     
        p=b;
        for (i=1;  i < e;  i++) {
            p=p*b;
        }
 
    }
 
//ritorno al main il valore calcolato
    return (p);
}