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);
}