Linguaggio C

La funzione potenza

Una funzione può essere vista come un sottoprogramma dove vengono aggregati gruppi di istruzioni.

Le funzioni in C sono utilizzate proprio per evitare di replicare porzioni di codice; infatti invocare un sottoprogramma vuol dire mandare in esecuzione la porzione di codice ad esso relativa.

In questo esempio è stata sviluppata la funzione potenza.

/* 
Le funzioni in C

Una funzione può essere vista come un sottoprogramma dove vengono aggregati gruppi di istruzioni.

Le funzioni in C sono utilizzate proprio per evitare di replicare porzioni di codice;
infatti invocare un sottoprogramma vuol dire mandare in esecuzione la porzione di codice 
ad esso relativa.
*/

#include <stdio.h>
// Dichiarazione del prototipo della funzione head
void head();

// Dichiarazione del prototipo della funzione potenza
int potenza (int base, int esp);

int main(void){
	// Variabili che passo alla funzione potenza
	int x, y;
	
	// Invoco la funzione head
	head();
	
	// Acquisisco i valori
	printf("Inserisci base: ");
	scanf("%d", &x);
	
	printf("Inserisci esponente: ");
	scanf("%d", &y);
	
	// Invoco la funzione potenza e gli passo i valori x, y
	printf("--> %d elvato a %d vale %d", x, y, potenza(x, y));
	
	//Fine
	printf("\n*** FINE PROGRAMMA ***");
}
// Definizione della funzione head
void head(){
	printf("*** PROGRAMMA CHE TRAMITE UNA FUNZIONE CALCOLA IL VALORE DI X ELEVATO A Y ***\n\n");
}

// Definizione della funzione potenza
int potenza (int base, int esp){
	/* Varibili locali della funzione potenza con scope (visibilità)
	solo dentro la stessa funzione*/
	int i, ris = 1;
	
	/* Implemento un ciclo for per calcolare il valore pari a base^esp
	se base = 2 ed esp = 3 ---> debbo ciclare 3 volte per fare il prodotto 2*2*2,
	quindi ottenere il valore 8 che equavale a scrivere 2^3*/
	for(i = 0; i < esp; i++){
		ris = ris * base;
		// base = 2, esp = 3
		// Step 1 --> i = 0 --> 1 * 2 = 2 --> ris = 2
		// Step 2 --> i = 1 --> 2 * 2 = 4 --> ris = 4
		// Step 3 --> i = 2 --> 4 * 2 = 0 --> ris = 8
		// Step 4 --> i = 3 --> esce dal ciclo poichè i non è più < esp
	}
	printf("\n...sto elaborando!!!\n");
	// Attende 1 secondo
	sleep(1);	
	// Valore di ritorno della funzione
	return ris;
}