FACULTÉ DE TECHNOLOGIE Département des sciences techniques
Informatique 2
Cours 02 : Les fonctions
Sommaire
Introduction Les fonctions
Déclaration Appel
Les fonctions en Pascal Les fonctions prédénies La portée des variables Exercices
Introduction
Dès qu'on commence à écrire des programmes sophistiqués, nous aurons :
Diculté d'avoir une vision globale sur son fonctionnement
Diculté de trouver des erreurs Solution
Décomposer le problème en sous problèmes
Introduction
Sous-problèmes codés sous forme de sous-programmes
Un sous-programme permet au programmeur d'étendre le langage de programmation : dénir ses propres instructions et ses propres opérateurs Deux types de sous-programmes :
1 les fonctions
2 les procédures
Introduction
Fonction
Possède un nom et/ou des paramètres Retourne une valeur d'un certain type Peut avoir des variables locales
Procédure
Ressemble à la fonction (nom, paramètres, variables locales)
Ne retourne pas de valeur
Les fonctions
Les fonctions
Les fonctions
Les fonctions
Les fonctions
Dénition d'une fonction
Fonction nom_fonc(valeur : Type) : type_retour ; Variables
resultat : type_resultat ; Début
<Actions>
Retourner (resultat) ; FinFonction.
Exemple de dénition de fonction
Fonction Factoriel (N : entier) : entier ; Variable
F, i : entier ; Début
F ←− 1 ;
Pour i ←− 1 à N faire F ←− F * i ;
FinPour;
Retourner (F) ; FinFonction;
Dénition d'une fonction
Retourner indique la valeur que doit retourner la fonction
Le type du résultat doit être le même que celui déclaré comme type de retour de la fonction
Introduction Les fonctions Exercices
Appel de fonctions Les fonctions en Pascal Fonctions prédénies en Pascal
Appel de fonctions
Pour exécuter une fonction, il sut de faire appel à elle en respectant le nombre, le type et l'ordre des éléments spéciés dans de l'en-tête lors de sa déclaration
L'appel doit être aecté à une variable de type approprié à celui de retour de la fonction
Appel de fonctions
Pour exécuter une fonction, il sut de faire appel à elle en respectant le nombre, le type et l'ordre des éléments spéciés dans de l'en-tête lors de sa déclaration
L'appel doit être aecté à une variable de type approprié à celui de retour de la fonction
Variable ← Nom_Fonction (paramètres)
Exemple
Écrire un algorithme qui calcule A = 9!×11! +6! +7 en utilisant une fonction qui calcule le factoriel
Algorithmecalcul ; Variable
A,F,E,D :entiers ;
FonctionFactoriel (N : entier) : entier ; Variable
F, i : entier ; Début
F←−1 ;
Pouri←−1àNfaire F←−F * i ; FinPour; Retourner(F) ; FinFonction; Début
F←−Factoriel(9) ; E←−Factoriel(11) ; D←−Factoriel(6) ; A←−F * E + D + 7 ;
Les fonctions en
Pascal
Les fonctions en Pascal
Même principe qu'en algorithmique (déclaration et utilisation)
Utilisation du mot-clé Function au lieu de Fonction
Pas d'instruction Retourner, on aecte le résultat au nom de la fonction
Introduction Les fonctions Exercices
Appel de fonctions Les fonctions en Pascal Fonctions prédénies en Pascal
Algorithmique Langage Pascal
Algorithmecalcul ; Variable
A,F,E,D :entiers ;
FonctionFactoriel (N : entier) : entier ; Variable
F, i : entier ; Début
F←−1 ;
Pouri←−1àNfaire F←−F * i ; FinPour; Retourner(F) ; FinFonction; Début
F←−Factoriel(9) ; E←−Factoriel(11) ; D←−Factoriel(6) ; A←−F * E + D + 7 ; Écrire (A) ;
Fin.
FunctionFactoriel (N : integer) : integer ; VarF, i : integer ;
Begin F := 1 ;
Fori := 1toNDo F := F * i ; Factoriel:= F ; End;
Begin
F :=Factoriel(9) ; E :=Factoriel(11) ; D :=Factoriel(6) ; A := F * E + D + 7 ; Writeln (A) ;
End.
Introduction Les fonctions Exercices
Appel de fonctions Les fonctions en Pascal Fonctions prédénies en Pascal
Algorithmique Langage Pascal
Algorithmecalcul ; Variable
A,F,E,D :entiers ;
FonctionFactoriel (N : entier) : entier ; Variable
F, i : entier ; Début
F←−1 ;
Pouri←−1àNfaire F←−F * i ; FinPour; Retourner(F) ; FinFonction; Début
F←−Factoriel(9) ; E←−Factoriel(11) ; D←−Factoriel(6) ; A←−F * E + D + 7 ;
Programcalcul ; VarA,F,E,D :integer ;
Begin F := 1 ;
Fori := 1toNDo F := F * i ; Factoriel:= F ; End;
Begin
F :=Factoriel(9) ; E :=Factoriel(11) ; D :=Factoriel(6) ; A := F * E + D + 7 ; Writeln (A) ;
End.
Introduction Les fonctions Exercices
Appel de fonctions Les fonctions en Pascal Fonctions prédénies en Pascal
Algorithmique Langage Pascal
Algorithmecalcul ; Variable
A,F,E,D :entiers ;
FonctionFactoriel (N : entier) : entier ; Variable
F, i : entier ; Début
F←−1 ;
Pouri←−1àNfaire F←−F * i ; FinPour; Retourner(F) ; FinFonction; Début
F←−Factoriel(9) ; E←−Factoriel(11) ; D←−Factoriel(6) ; A←−F * E + D + 7 ; Écrire (A) ;
Fin.
Programcalcul ; VarA,F,E,D :integer ;
FunctionFactoriel (N : integer) : integer ; VarF, i : integer ;
Begin F := 1 ;
Fori := 1toNDo F := F * i ; Factoriel:= F ; End;
D :=Factoriel(6) ; A := F * E + D + 7 ; Writeln (A) ;
End.
Algorithmique Langage Pascal Algorithmecalcul ;
Variable
A,F,E,D :entiers ;
FonctionFactoriel (N : entier) : entier ; Variable
F, i : entier ; Début
F←−1 ;
Pouri←−1àNfaire F←−F * i ; FinPour; Retourner(F) ; FinFonction; Début
F←−Factoriel(9) ; E←−Factoriel(11) ; D←−Factoriel(6) ; A←−F * E + D + 7 ;
Programcalcul ; VarA,F,E,D :integer ;
FunctionFactoriel (N : integer) : integer ; VarF, i : integer ;
Begin F := 1 ;
Fori := 1toNDo F := F * i ; Factoriel:= F ; End;
Begin
F :=Factoriel(9) ; E :=Factoriel(11) ; D :=Factoriel(6) ; A := F * E + D + 7 ; Writeln (A) ;
Fonctions
prédénies en
Pascal
Fonctions prédénies
Des fonctions intégrées au compilateur Pouvant être utilisées sans dénition Des fonctions mathématiques, chaînes de caractères, pointeurs, chiers, ...
Fonctions prédénies
Fonction Dénition
abs(x) retourne la valeur absolue de x odd(x) retourne vrai si l'entier x est impair,
faux au cas contraire
sqr/sqrt(x) retourne le carré/racine carrée de x sin/cos/
arctan(x) ... fonctions trigonométriques
ln/exp(x) logarithme/ exponentielle du réel x
Fonctions prédénies
Fonction Dénition
Round(x) retourne l'entier le plus proche du réel x trunc(x) retourne la partie entière de x
frac(x) retourne la partie fractionnaire de x
... ...
Les fonctions d'ordre, de conversion et des chaînes de caractères seront traitées au quatrième cours
Portée des
variables
Portée des variables
La partie du programme où on peut y faire référence C'est la zone du programme dans laquelle elle peut être utilisée (visible)
commence avec sa déclaration et se termine avec l'entité dans laquelle elle a été déclarée (programme, fonction, procédure, ...)
Portée des variables
Variable globale
Une variable qui est visible par un ou plusieurs sous-programme(s) en plus du programme principal Variable locale
Une variable locale est une variable déclarée à l'intérieur d'un sous-programme
Introduction Les fonctions Exercices
Exercice 01
Écrire un algorithme puis un programme Pascal qui utilisent une fonction pour calculer la puissance d'un nombre réel Puissance(X, n)
Écrire un algorithme puis un programme qui utilisent deux fonctions :
1 Une pour calculer la somme des éléments d'un Vecteur A[10]
2 Et une autre pour calculer le produit des éléments du même vecteur
Exercice 01
Écrire un algorithme puis un programme Pascal qui utilisent une fonction pour calculer la puissance d'un nombre réel Puissance(X, n)
Exercice 02
Écrire un algorithme puis un programme qui utilisent deux fonctions :
1 Une pour calculer la somme des éléments d'un Vecteur A[10]
2 Et une autre pour calculer le produit des éléments du même vecteur