Programmation informatique - Fonctions

Une fonction est un bloc de code organisé et réutilisable utilisé pour effectuer une seule action associée. Les fonctions offrent une meilleure modularité pour votre application et un degré élevé de réutilisation du code. Vous avez déjà vu diverses fonctions commeprintf() et main(). Celles-ci sont appelées fonctions intégrées fournies par le langage lui-même, mais nous pouvons également écrire nos propres fonctions et ce didacticiel vous apprendra comment écrire et utiliser ces fonctions dans le langage de programmation C.

La bonne chose à propos des fonctions est qu'elles sont connues sous plusieurs noms. Différents langages de programmation les nomment différemment, par exemple, fonctions, méthodes, sous-routines, procédures, etc. Si vous rencontrez une telle terminologie, imaginez simplement le même concept, que nous allons discuter dans ce tutoriel.

Commençons par un programme où nous définirons deux tableaux de nombres puis à partir de chaque tableau, nous trouverons le plus grand nombre. Ci-dessous sont les étapes pour trouver le nombre maximum à partir d'un ensemble donné de nombres -

1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Set max = L1
3. Take next number Li from the list and do the following
4.    If max is less than Li
5.       Set max = Li
6.    If Li is last number from the list then
7.       Print value stored in max and come out
8. Else prepeat same process starting from step 3

Traduisons le programme ci-dessus en langage de programmation C -

#include <stdio.h>

int main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int i, max;
   
   /* Process first set of numbers available in set1[] */
   max = set1[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set1[i] ) {
         max = set1[i];
      }
      i = i + 1;
   }
   
   printf("Max in first set = %d\n", max );
    
   /* Now process second set of numbers available in set2[] */
   max = set2[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set2[i] ) {
         max = set2[i];
      }
      i = i + 1;
   }
   printf("Max in second set = %d\n", max );
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Max in first set = 50
Max in second set = 501

Si vous êtes clair sur l'exemple ci-dessus, alors il deviendra facile de comprendre pourquoi nous avons besoin d'une fonction. Dans l'exemple ci-dessus, il n'y a que deux ensembles de nombres, set1 et set2, mais considérons une situation dans laquelle nous avons 10 ensembles de nombres similaires ou plus pour connaître les nombres maximum de chaque ensemble. Dans une telle situation, nous devrons répéter, traiter 10 fois ou plus et finalement, le programme deviendra trop volumineux avec du code répété. Pour gérer une telle situation, nous écrivons nos fonctions où nous essayons de garder le code source qui sera utilisé encore et encore dans notre programmation.

Voyons maintenant comment définir une fonction en langage de programmation C, puis dans les sections suivantes, nous expliquerons comment les utiliser.

Définition d'une fonction

La forme générale d'une définition de fonction dans le langage de programmation C est la suivante -

return_type function_name( parameter list ) {
   body of the function
   
   return [expression];
}

Une définition de fonction en programmation C se compose d'un en- tête de fonction et d'un corps de fonction . Voici toutes les parties d'une fonction -

  • Return Type- Une fonction peut renvoyer une valeur. lereturn_typeest le type de données de la valeur renvoyée par la fonction. Certaines fonctions exécutent les opérations souhaitées sans renvoyer de valeur. Dans ce cas, le return_type est le mot-clévoid.

  • Function Name- Il s'agit du nom réel de la fonction. Le nom de la fonction et la liste des paramètres constituent ensemble la signature de la fonction.

  • Parameter List- Un paramètre est comme un espace réservé. Lorsqu'une fonction est appelée, vous passez une valeur en tant que paramètre. Cette valeur est appelée paramètre ou argument réel. La liste des paramètres fait référence au type, à l'ordre et au nombre de paramètres d'une fonction. Les paramètres sont facultatifs; autrement dit, une fonction peut ne contenir aucun paramètre.

  • Function Body - Le corps de la fonction contient une collection d'instructions qui définit ce que fait la fonction.

Appeler une fonction

Lors de la création d'une fonction C, vous donnez une définition de ce que la fonction doit faire. Pour utiliser une fonction, vous devrez appeler cette fonction pour effectuer une tâche définie.

Maintenant, écrivons l'exemple ci-dessus à l'aide d'une fonction -

#include <stdio.h>

int getMax( int set[] ) {
   int i, max;
   
   max = set[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set[i] ) {
         max = set[i];
      }
      i = i + 1;
   }
   return max;
}
main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int max;

   /* Process first set of numbers available in set1[] */
   max = getMax(set1);
   printf("Max in first set = %d\n", max );
    
   /* Now process second set of numbers available in set2[] */
   max = getMax(set2);
   printf("Max in second set = %d\n", max );
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Max in first set = 50
Max in second set = 501

Fonctions en Java

Si vous êtes clair sur les fonctions de la programmation C, il est également facile de les comprendre en Java. La programmation Java les nommemethods, mais le reste des concepts reste plus ou moins les mêmes.

Voici le programme équivalent écrit en Java. Vous pouvez essayer de l'exécuter pour voir la sortie -

public class DemoJava {
   public static void main(String []args) {
      int[] set1 = {10, 20, 30, 40, 50};
      int[] set2 = {101, 201, 301, 401, 501};
      int max;

      /* Process first set of numbers available in set1[] */
      max = getMax(set1);
      System.out.format("Max in first set = %d\n", max );

      /* Now process second set of numbers available in set2[] */
      max = getMax(set2);
      System.out.format("Max in second set = %d\n", max );
   }
   public static int getMax( int set[] ) {
      int i, max;
      max = set[0];
      i = 1;    
      
      while( i < 5 ) {
         if( max <  set[i] ) {
            max = set[i];
         }
         i = i + 1;
      }
      return max;
   }
}

Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant -

Max in first set = 50
Max in second set = 501

Fonctions en Python

Encore une fois, si vous connaissez le concept de fonctions en programmation C et Java, Python n'est pas très différent. Vous trouverez ci-dessous la syntaxe de base pour définir une fonction en Python -

def function_name( parameter list ):
   body of the function
   
   return [expression]

En utilisant cette syntaxe de fonction en Python, l'exemple ci-dessus peut être écrit comme suit -

def getMax( set ):
   max = set[0]
   i = 1   
   
   while( i < 5 ):
      if( max <  set[i] ):
         max = set[i]
      
      i = i + 1
   return max

set1 = [10, 20, 30, 40, 50]
set2 = [101, 201, 301, 401, 501]

# Process first set of numbers available in set1[]
max = getMax(set1)
print "Max in first set = ", max
    
# Now process second set of numbers available in set2[]
max = getMax(set2)
print "Max in second set = ", max

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

Max in first set =  50
Max in second set =  501