Programmation en C-Fonctions


Niveau:2

Introduction:

Dans cet article, nous verrons comment utiliser les fonction en langage C.

Fonction:

Définition:

Une fonction est un groupe d’instructions qui effectuent ensemble une tâche. Chaque programme C a au moins une fonction main () qui est le programme principal.

Une déclaration de fonction indique au compilateur le nom, le type de retour et les paramètres de la fonction.

Notre programme:

Voici le code que nous allons détailler:

/*
	* calculatriceV1.c
	* 
	* Christophe Caron
	* www.caron.ws
	* 2019
	* Licence MIT
	* 
*/

#include <stdio.h>

/* declaration de la fonction */
float calcul(float num1, float num2,char op);

int main () 
{
	// Initialisation des variables
	float v1=0;             // Déclaration de la variable f flotant
	float v2=0;             // Déclaration de la variable f flotant
	char op=0;				// Déclaration de la variable pour l'opération

	// Saisie de la premiere valeur
	printf("Choisisez la première valeur ? ") ;
	scanf ("%f", & v1 ) ;
	
	// Saisie de la deuxieme valeur
	printf("Choisisez la deuxième valeur ? ") ;
	scanf ("%f", & v2 ) ;         
	
	// Saisie de l'opération
	printf("Choisisez l opération + - * /? ") ;
	scanf (" %c", & op ) ;
	

	// Affichage du résultat de la fonction calcul
	printf( "Valeur de l'opération= %g \n", calcul(v1,v2,op) );
	
	// Fin du programme
	return 0;
}

float calcul(float v1, float v2,char op){
	// Initialisation des variables
	
	float v3=0;             // Déclaration de la variable f flotant
	
	// Comparaision du choix pour l'opération
	
	if (op=='+') {
		v3=v1+v2;
		
	}  
	if (op=='-') {
		v3=v1-v2;
		
	}
	if (op=='*') {
		v3=v1*v2;
		
	} 
	if (op=='/') {
		v3=v1/v2;
		
	}              

	return v3; // Retour du résultat	
}

Fichier source: calculatriceV1.c

Explication du programme:

Nous avons déclaré une fonction permettant le calcul des opérations d’addition,soustraction, multiplication et division. Le retour de cette fonction est un float qui est le résultat de l’opération. Les paramètres sont deux float qui sont valeurs du calcul et un char qui est le choix de l’opération.

Exécution de notre programme:

Après avoir compiler votre programme vous pouvez le tester en l’exécutant.

Arguments de la fonction :

Définition:

Si une fonction doit utiliser des arguments, elle doit déclarer des variables qui acceptent les valeurs des arguments. Ces variables s’appellent les paramètres formels de la fonction. Les paramètres formels se comportent comme les autres variables locales de la fonction. Ils sont créés lors de l’entrée dans la fonction et détruits à la sortie.

Lors de l’appel d’une fonction, il est possible de transmettre des arguments à une fonction de deux manières, appel par valeur ou par référence. Jusqu’à maintenant nous avons utilisé l’appel par valeur, c’est à dire que nous transmettons des valeurs à notre fonction. Pour l’appel par référence, nous allons transmettre une adresse de la mémoire qui contiendra nos valeurs. Cela permet de modifier les valeurs dans la fonction, et de pouvoir y accéder dans notre programme principal.

Voici un exemple pour comprendre l’intérêt du mode par référence. Nous utiliserons une fonctions void qui ne renvoie aucune donné.

/*
 * inverse.c
 * 
 * Christophe Caron
 * www.caron.ws
 * 2019
 * Licence MIT
 * 
 */

#include <stdio.h>

/* declaration de la fonction */
void inverse(int *x, int *y);

int main () {
	
	/* définition des variables locales */
	int a = 100;
	int b = 200;
	
	printf("Valeur avant l'inversion de a : %d\n", a );
	printf("Valeur avant l'inversion de b : %d\n", b );
	
	inverse(&a, &b); //Utilisation des pointeurs d'adresse mémoire pour a et b
	
	printf("Valeur après l'inversion de a : %d\n", a );
	printf("Valeur après l'inversion de b : %d\n", b );
	
	return 0;
}
/* fonction inversion */
void inverse(int *x, int *y) {
	
	int temp;
	temp = *x;    /* sauvegarde de la valeur à l'adresse x */
	*x = *y;      /* valeur de l'adresse y dans valeur de l'adresse x */
	*y = temp;    /* valeur temp dans valeur de l'adresse y */
	
	return;
}

Fichier source:inverse.c

Explication du programme:

La fonction que nous avons créée permet d’inverser les valeur contenu dans les adresses mémoires des variables a et b. Cette fonction a pour arguments les adresses des mémoires de a et de b afin de pouvoir en modifier les valeurs.

Exécution de notre programme:

Après avoir compiler votre programme vous pouvez le tester en l’exécutant.