
#include <iostream>
using namespace std;

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

int main() {
    
    int base, esp, risultato;
    
    cout<<"inserisci la base: ";
    cin>>base;
    
    cout<<"inserisci l'esponente: ";
    cin>>esp;
    
    risultato= potenza(base, esp); // la funzione viene richiamata e restituisce un valore intero
    
    cout<<base<<" elevato a "<<esp<<" = "<<risultato<<endl;
    
    return 0;
    
}


/* codice vero e proprio 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;
    
    p=b; //primo assegnamento di p
    
//ciclo per i successivi assegnamenti di p, fino al risultato finale
    for ( i=1; i<e; i++ ) { 
       p=p*b;
    }
    
    return (p); //il valore calcolato viene restituito al main

}
