ProgrammationI C2-Chapitre2
ProgrammationI C2-Chapitre2
ProgrammationI C2-Chapitre2
Préparé par :
Pr.Noura AHERRAHROU
nomFonction(val1,val2,…,valN);
Pointeurs et Les fonctions Les chaines Structures Gestion4
allocation et récursivité de en C des
dynamique caractères fichiers
Les fonctions-------------Exemple
Pointeurs et Les fonctions Les chaines Structures Gestion5
allocation et récursivité de en C des
dynamique caractères fichiers
Prototype d’une fonction
Prototype de la fonction
Type du resultat <nom_fonction> (<liste des paramètres>);>);
le prototype est identique à l’en-tête de la fonction et qu’il se
termine par un point-virgule.
Le prototype de la fonction fournit au compilateur la
description d’une fonction qui va être définie plus loin dans le
programme.
Grâce au prototype, vous pourrez positionner vos
fonctions dans n'importe quel ordre dans le code
source.
Le prototype est obligatoire si la fonction est définie après un
appel à celle-ci. Sinon, le compilateur n’en a pas connaissance
et signale une erreur.
Pointeurs et Les fonctions Les chaines Structures Gestion6
allocation et récursivité de en C des
dynamique caractères fichiers
Prototype d’une fonction----------Exemple
Pointeurs et Les fonctions Les chaines Structures Gestion7
allocation et récursivité de en C des
dynamique caractères fichiers
Les Procédures
Une procédure est une série d'instructions regroupés
sous un nom, qui permet d'effectuer des actions par un
simple appel de la procédure dans un programme ou
dans un autre sous-programme.
Une procédure peut être considérée comme une
fonction ne renvoyant pas de valeur.
Void nomProc (param1:type1; var param2:type2; …)
{
{déclaration des variables locales}
{…bloc d’instructions}
}
Pointeurs et Les fonctions Les chaines Structures Gestion
8
allocation et récursivité de en C des
dynamique caractères fichiers
Les procédures---------Exemple
Pointeurs et Les fonctions Les chaines Structures Gestion9
allocation et récursivité de en C des
dynamique caractères fichiers
Variables locales et globales
On peut manipuler 2 types de variables dans un
programme : des variables locales et des variables
globales. Elles se distinguent par ce qu'on appelle leur
portée (leur "espace de visibilité", leur "durée de vie") :
Une variable définie à l'intérieur d’une fonction est
une variable locale, elle n’est connue qu'à l'intérieur
de cette fonction. Elle est crée à l'appel de la fonction
et détruite à la fin de son exécution.
Une variable définie à l’extérieur des fonctions est une
variable globale. Elle est définie durant toute
l’application et peut être utilisée et modifiée par les
différentes fonctions de l’algorithme.
10
Pointeurs et Les fonctions Les chaines Structures Gestion
allocation et récursivité de en C des
dynamique caractères fichiers
Variables locales et globales
Une variable connue uniquement dans la fonction ou
dans main() est une variable locale.
Une variable connue dans tout le programme est une
variable globale (déclarée au début du programme et en
dehors de toute fonction y compris main).
Une variable locale à une fonction n’est accessible que
par cette fonction. Cependant, une variable globale est
accessible à toutes les fonctions (y compris le programme
principal)
Rappel
Une variable statique peut être déclarée à l’intérieur d’une
fonction mais possède un même comportement que la variable
globale:
Exemple : static int c ;
11
Pointeurs et Les fonctions Les chaines Structures Gestion
allocation et récursivité de en C des
dynamique caractères fichiers
Passage d’arguments par valeurs
Les valeurs de ces arguments ne changent pas après l’appel de la
fonction.3:
Exemple : Echange de deux entiers
Après exécution:
-------------------------------------------
avant appel : 10 20
debut echange: 10 20
fin echange : 20 10
après appel : 10 20
12
Pointeurs et Les fonctions Les chaines Structures Gestion
allocation et récursivité de en C des
dynamique caractères fichiers
Passage d’arguments par adresse
Exemple : Le même exemple que pour les paramètres passés par
valeur mais en utilisant le mode de passage par adresses.
Après exécution:
-----------------------------
avant appel : 10 20
debut echange:10 20
fin echange :20 10
après appel : 20 10
13
Pointeurs et Les fonctions Les chaines Structures Gestion
allocation et récursivité de en C des
dynamique caractères fichiers
Fonctions récursives
Le processus dans lequel une fonction s’appelle elle-
même directement ou indirectement par une autre
fonction est appelée récursivité .
On distingue trois types de récursivité:
Récursivité simple
Récursivité multiple
Récursivité croisée
14
Pointeurs et Les fonctions Les chaines Structures Gestion
allocation et récursivité de en C des
dynamique caractères fichiers
Récursivité simple
On parle de récursivité simple quand la fonction s’appelle elle-
même, sans appeler d’autre fonction récursive.
Cours de références
Pr. Jaouad Boumhidi, « Cours Programmation II, SMI, S4 », Université Sidi
Mohammed Ben Abdellah, Faculté des Sciences Dhar El Mahraz.