intro_cpp_3.pdf

(272 KB) Pobierz
Notion de réutilisabilité (1)
A ce point du cours,
un programme n’est rien de plus qu’une
séquence bien formée d’instructions simples ou
composées (i.e. comprenant des structures de contrôle).
Exemple:
soit
P
le programme d’afchage suivant
1
cout <<
"************************"
cout <<
"Ceci est un petit texte"
<<
"
permettant
"
<<
"d’afficher quelque chose"
<<
"
à l’écran
"
cout <<
"************************"
<<
<<
<<
<<
<<
<<
endl;
endl
endl
endl
endl;
endl;
Si la tâche réalisée par le programme
P
doit être exécutée plusieurs fois,
une possibilité est de recopier
P
autant de fois que nécessaire...
... mais c’est [évidemment] une
très mauvaise
solution !
1. On pourrait également songer à non pas un programme d’affichage, mais à une fonction mathématique, telle que
SinC(x),
soit
f
(
x
)
= --------------
-
sin
(
x
)
x
–1–
Informatique I
Introduction à C++ (III)
Notion de réutilisabilité (2)
La duplication de larges portions identiques
de code est à
poscrire,
car:
Cela rend la
mise à jour
du programme
fastidieuse:
il faut [manuellement] répercuter chaque modification de
P
dans chacune de ses copies
c’est par conséquent une
source supplémentaire d’erreurs,
et cela dégrade donc la fiabilité globale du programme.
Cela
réduit la lisibilité
globale du programme:
la taille du programme source est plus importante, ce qui concourt
à rendre les modifications et la traque des erreurs plus difficiles.
Cela
augmente
(de manière injustifiée
2
)
la taille
– donc
l’occupation mémoire – du programme objet résultant.
Un langage de programmation doit donc fournir des moyens plus efficaces
pour permettre la réutilisation de portions existantes de programmes.
2. Cette augmentation de taille est injustifiée
car
il existe une alternative à la duplication manuelle du code.
Informatique I
Introduction à C++ (III)
–2–
Réutilisabilité: les fonctions (1)
Pour mettre en œuvre la
réutilisabilité,
la plupart des langages de programmation fournissent des
mécanismes permettant de manipuler des
portions de programmes.
En C++, ces mécanismes vont s’appuyer sur la notion de
fonction
De façon imagée, une fonction est assimilable à une expression,
dont l’évaluation (on dit l’appel) correspond à l’exécution de la portion
de programme qui lui est associée, et produit une valeur (résultat de l’évaluation),
la
valeur de retour
de la fonction.
Informatique I
Introduction à C++ (III)
–3–
Réutilisabilité: les fonctions (2)
Une
fonction
est donc une
portion réutilisable
de programme,
associée à la définition d’une
interface explicite
avec le reste du programme
(permettant de définir la manière d’utiliser cette fonction), par le biais
d’une
spécification
des
arguments formels
(les «entrées»)
et de la
valeur de retour
(les «sorties»).
arguments
formels
x1
val = f(0.1,3,"ab");
x2
x3
{
Portion réutilisable
de programme
f(x,2,"a");
résultat
valeur de
retour
return ...
}
fonction
Programme
interface de
communication
Informatique I
Introduction à C++ (III)
–4–
Réutilisabilité: les fonctions (3)
Plus précisément, une fonction est
un élément informatique
caractérisé par:
• un
identificateur,
qui n’est autre qu’une référence particulière
à l’élément «fonction» lui-même;
• un
ensemble d’arguments formels,
qui correspondent en fait à un ensemble
de références formelles à des entités définies à l’extérieur de la fonction, mais
dont les valeurs seront potentiellement utilisées par la fonction;
• un
type de retour,
qui permet de préciser la nature du résultat retourné
par la fonction
• un
corps,
qui correspond à un bloc (la portion de code réutilisable qui justifie
la création de la fonction) et qui induit également une portée –locale– pour les
éléments (variables, constantes) définis au sein de la fonction.
Informatique I
Introduction à C++ (III)
–5–
Zgłoś jeśli naruszono regulamin