progII 1
progII 1
progII 1
Module: M1 - LFSMI - S4
Prof. R. HANNANE
[email protected]
I L’objectif principal de ce module est de vous permettre de compléter vos acquis durant le
module ”programmation I” et d’acquérir de nouvelles connaissances dans le cadre de la
programmation avancée en langage C.
I Suite à ce cours, vous devrez être aptes à :
Développer de programmes modulaires (structurés) et réutilisable (notion de fonctions, etc.)
Assurer une gestion dynamique des données en mémoire (allocation dynamique, pointeurs,
etc.)
Assurer un stockage et gestion optimale des données sur disque dur (fichier, types composés,
etc.)
Faire des programmes maintenables et réutilisables (compilation séparée, création de librairies,
etc.)
Pre-requis
I M1 : Programmation I (S2)
I M2 : Algorithme II (S2)
Évaluation
I Contrôle final * 2 1
3
+ Contrôle continue (TP/TD rendus + assiduité) * 3
Les Fonctions en C
Notion de Fonction en C
En mathématiques, une fonction est défini par un nom qui
prend des arguments ou paramétres, et rend un résultat.
⇒ Il en est presque de même en C. Une fonction est une suite
d’instructions regroupées sous un nom et qui peut
prendre ou pas des arguments et rend aussi un résultat.
Ce pendant on doit spécifier le type des paramétres et
aussi du résultat.
En C, la fonction pourra prendre des aspects différents,
comme:
I La valeur d’une fonction pourra ne pas être utilisée
I Une fonction pourra ne fournir aucune valeur
I Une fonction pourra fournir un résultat non scalaire
I Une fonction pourra modifier les valeurs de certains de ses
arguments
Prof. R. HANNANE (FSSM) Programmation II 5 / 47
Les Fonctions en C
Notion de Fonction en C
instruction1 ;
instruction2 ;
...;
return r e s u l t a t ;
}
Remarque:
Une fonction ne peut être déclarée plus d’une fois dans un
programme
⇒ Pourquoi??
L’instruction return
Quelques règles générales concernant cette instruction
L’instruction return peut mentionner n’importe quelle
expression
int fplus ( int x , int y ){
return x + y ;}
Arguments muets
Les noms des arguments figurant dans l’en-tête de la
fonction se nomment des ”arguments muets”, ou encore
”arguments formels” ou ”paramètres formels”
Arguments effectifs
Les arguments fournis lors de l’utilisation (l’appel) de la
fonction se nomment des ”arguments effectifs” (ou encore
”paramètres effectifs”)
⇒ On peut utiliser n’importe quelle expression comme argument
effectif ; c’est la valeur de cette expression qui sera
transmise à la fonction lors de son appel
Remarque:
Le terme ”global” illustre le partage entre plusieurs fonctions
tandis que le terme ”externe” illustre plutôt le partage entre
plusieurs fichiers source
Note:
Une variable locale est détruite au sortie de la fonction
dans laquelle elle est déclarée
int n ;
int main (){
int p ;
...
return 0;
}
fct1 (){
int p ;
int n ;
}
/* Notez qu ’ il est impossible dans fct1 d ’ utiliser
la variable golobale n */
Les variables locales ont une durée de vie limitée à celle d’une
exécution de la fonction dans laquelle elles figurent