Enoncé exercice 1

Ecrire un programme C qui définit et utilise une fonction de prototype int Somme(int,int) qui prend en paramètres deux entiers et renvoie leur somme.

Correction exercice 1

Dans ce premier exercice on va définir une fonction très simple. Elle prend deux entiers comme paramètres, calcule puis renvoie leur somme. Mais avant d’aller plus loin, il faut essayer de cerner la différence entre les trois éléments suivants:

  • La définition de la fonction: C’est là où on définit ce que la fonction va faire, le nombre et les types de ses paramètres ainsi que le type du résultat qu’elle renvoie. Elle est située généralement avant la fonction principale main mais peut aussi apparaître après celle-ci.
  • Le prototype de la fonction: Son rôle est d’indiquer au compilateur le type de chaque paramètre de la fonction et celui du résultat renvoyé. Il est placé de préférence avant la déclaration des variables dans la fonction main, mais doit apparaître avant le premier appel de la fonction. Sa présence est obligatoire lorsque la fonction est définie après la fonction main.
  • L’appel de la fonction: C’est l’utilisation de la fonction pour répondre au problème en main.

En revenant maintenant à l’exercice, la fonction Somme (ligne 3-8) doit avoir deux paramètres entiers qui représentent les deux entiers dont on veut calculer la somme. On indique leurs types dans l’entête (ligne 3) et on leur attribue chacun un nom (ici a et b) pour pouvoir les manipuler au sein de la fonction. Toujours sur l’entête on spécifie aussi le type de la variable qui sera renvoyée par la fonction. A l’intérieur de la fonction on déclare une variable s pour recevoir la somme calculée puis on la renvoie en utilisant le mot return (ligne 7).

Avant d’utiliser la fonction Somme, on indique son prototype (ligne 11) pour que le compilateur comprenne la façon correcte d’appel de cette fonction.

Pour utiliser cette fonction, on lit deux entiers a et b. Qui ne doivent pas forcement avoir les mêmes noms que les paramètres de la fonction Somme. On les lui passe en paramètres, et on intercepte la valeur renvoyée dans une variable som (ligne 15).

Solution exercice 1
#include<stdio.h>
#include<stdlib.h>
int Somme(int a,int b)
{
    int s;
    s=a+b;
    return s;
}
int main()
{
    int Somme(int,int);
    int a,b,som;
    printf("donnez deux entiers\n");
    scanf("%d%d",&a,&b);
    som=Somme(a,b);
    printf("%d + %d = %d\n",a,b,som);
    system("pause");
    return 0;
}
Enoncé exercice 2

Ecrire un programme C qui définit et appelle une fonction bonjour qui affiche le message Bonjour.

Correction exercice 2

Dans cet exercice on va écrire un programme qui définit et utilise une fonction bonjour qui affiche le message Bonjour. Cette fonction est donc caractérisée par son indépendance du reste du programme, du point de vue qu’elle n’aura pas besoin d’être alimenté par aucune information provenant de ce dernier pour accomplir sa tâche. En plus elle n’a besoin d’en renvoyer aucune.

Concrètement cette fonction sera sans arguments. Et pour son type de retour on mettra void, qui signifie que la fonction ne va renvoyer aucune variable. Ceci dit, pour définir la fonction bonjour (lignes 3-6) on utilisera void comme type de retour, et l’endroit réservé pour indiquer les arguments et leurs types restera vide. On utilisera ensuite la fonction printf pour l’affichage du message souhaité.

Il est à noter que même si la fonction est constituée d’une seule instruction, on ne peut pas se passer des accolades comme il en est le cas pour les boucles.

Pour pouvoir appeler une fonction à l’intérieur du programme, on doit indiquer au compilateur le type de renvoi et les types des arguments à travers le prototype de la fonction. Et qui doit figurer dans les lignes qui précèdent le premier appel de la fonction concernée. De préférence au début de la fonction principale main.

Pour le prototype de la fonction bonjour (ligne 9) et à l’endroit réservé aux types des paramètres, on écrit simplement void pour dire que la fonction n’attends aucun argument.

L’objectif de la définition d’une fonction et l’expression de son prototype est de pouvoir l’exploiter à l’intérieur du programme. Donc pour afficher le message Bonjour, il suffit d’appeler la fonction bonjour (ligne 10). On remarque qu’on a ni passé d’arguments à la fonction ni intercepter la valeur qu’elle renvoie.

Solution exercice 2
#include<stdio.h>
#include<stdlib.h>
void bonjour()
{
   printf("Bonjour\n");
}
int main()
{
    void bonjour(void);
    bonjour();
    system("pause");
    return 0;
}