Vous êtes sur la page 1sur 74

ALGORITHMIQUE – 2: FONCTIONS ET PROCÉDURES

SMI-3

A.U: 2022 – 2023

DÉPARTEMENT INFORMATIQUE

Pr. Redouan Lahmyed ALGORITHMIQUE 2 1


Fonctions - Procédures

Exercice: Écrire un algorithme qui calcule


la factorielle d'une valeur saisie par
l’utilisateur.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 2


Fonctions - Procédures
Algorithme Factorielle
Variables F , n , i : Entier

Début
Ecrire (" Veuillez saisir un entier")
Lire (n)
F←1
Si n = 0 Alors

Ecrire (" La factorielle est :" , F )

Sinon
Pour i =1 à n Pas de 1
F←F*i
FinPour

Ecrire (" La factorielle est :" , F )

Fin Si
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 3
Fonctions - Procédures

Exercice: Écrire un algorithme qui calcule


la factorielle de deux valeurs saisies
successivement par l’utilisateur

Pr. Redouan Lahmyed ALGORITHMIQUE 2 4


Fonctions - Procédures
Algorithme Factorielle
Variables F1, F2 , n1 , n2 , i : Entier

Début
Ecrire (" Veuillez saisir le premier entier") Ecrire (" Veuillez saisir le deuxième entier ")
Lire (n1) Lire (n2)
F1 ← 1 F2 ← 1
Si n1 = 0 Alors Si n2 = 0 Alors

Ecrire (" La factorielle est :" , F1 ) Ecrire (" La factorielle est :" , F2 )

Sinon Sinon
Pour i =1 à n1 Pas de 1 Pour i =1 à n2 Pas de 1
F1 ← F1 * i F2 ← F2 * i
FinPour FinPour
Ecrire (" La factorielle est :" , F1 ) Ecrire (" La factorielle est :" , F2 )

Fin Si Fin Si

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 5


Fonctions - Procédures
Algorithme Factorielle
Variables F1, F2 , n1 , n2 , i : Entier

Début
Ecrire (" Veuillez saisir le premier entier") Ecrire (" Veuillez saisir le deuxième entier ")
Lire (n1) Lire (n2)
F1 ← 1 F2 ← 1
Si n1 = 0 Alors Si n2 = 0 Alors

Ecrire (" La factorielle est :" , F1 ) Ecrire (" La factorielle est :" , F2 )

Sinon Sinon
Pour i =1 à n1 Pas de 1 Pour i =1 à n2 Pas de 1
F1 ← F1 * i F2 ← F2 * i
FinPour FinPour
Ecrire (" La factorielle est :" , F1 ) Ecrire (" La factorielle est :" , F2 )

Fin Si Fin Si

Fin

1ère valeur 2ème valeur


Pr. Redouan Lahmyed ALGORITHMIQUE 2 6
Fonctions - Procédures

Pr. Redouan Lahmyed ALGORITHMIQUE 2 7


Fonctions - Procédures

Pr. Redouan Lahmyed ALGORITHMIQUE 2 8


Fonctions - Procédures
Sous-algorithmes

Pr. Redouan Lahmyed ALGORITHMIQUE 2 9


Fonctions

Définition: Qu'est ce qu'une fonction ?

I- Une fonction est une suite d'instructions regroupées sous


un nom; elle prend en entrée des paramètres (arguments) et
retourne une résultat.

Une fonction est écrite séparément du coprs de l'algorithme


principal et sera appelée par celui-ci lorsque cela sera
nécessaire.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 10


Fonctions

Pr. Redouan Lahmyed ALGORITHMIQUE 2 11


Fonctions

Arguments
de fonction

Traitement
Nom de fonction
* Type de retour

Résultat retourné
Pr. Redouan Lahmyed ALGORITHMIQUE 2 12
Fonctions

Syntaxe:
Fonction Nom_Fonction (arg1 : Type1 , arg2 : Type2 , ....) : Type de retour

Variables
variable 1 : type_var1
variable 2 : type_var2
….
Début

Instructions

Retourne résulat_retour

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 13
Fonctions
Arguments de fonction Type résultat retourné
Syntaxe: Nom de fonction

Fonction Nom_Fonction (arg1 : Type1 , arg2 : Type2 , ....) : Type de retour

Variables
variable 1 : type_var1
Variables locales
variable 2 : type_var2
….
Début

Instructions Traitements

Retourne résulat_retour Résultat retourné

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 14
Fonctions - Procédures
Exemple: Écrire une fonction qui calcule la factorielle d'un entier

Pr. Redouan Lahmyed ALGORITHMIQUE 2 15


Fonctions - Procédures
Exemple: Écrire une fonction qui calcule la factorielle d'un entier

Fonction Factorielle ( N: Entier ) : Entier

Variables

Début

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 16


Fonctions - Procédures
Exemple: Écrire une fonction qui calcule la factorielle d'un entier

Fonction Factorielle ( N: Entier ) : Entier

Variables
F , i : Entier

Début
F←1
Si N = 0 Alors
Retourne F

Sinon
Pour i =1 à N Pas de 1
F←F*i
FinPour

Retourne F
Fin Si
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 17


Fonctions - Procédures

Exercice: Écrire une fonction qui calcule la puissance d'un entier

Pr. Redouan Lahmyed ALGORITHMIQUE 2 18


Fonctions - Procédures
Exercice : Écrire une fonction qui calcule la puissance d'un entier

Fonction Puissance ( X: Entier , n: Entier) : Entier

Variables
P : Entier

Début
P X^n
Retourne P

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 19
Fonctions

Appel de la fonction

Méthode 1: Nom_Variable  Nom_Fonction (arg1 , arg2 , ....)

Méthode 2: Nom_Variable2  Nom_Variable1 Ope_Calcul Nom_Fonction (arg1 , arg2 , ....)

Méthode 3: Ecrire ( Nom_Fonction (arg1 , arg2 , ....) )

Pr. Redouan Lahmyed ALGORITHMIQUE 2 20


Fonctions
Algorithme Nom_Algorithm

Variable

Début

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 21
Fonctions
Algorithme Nom_Algorithm

Fonction Nom_Fonction1 (arg11 : Type11 , arg12 : Type12 , ....) : Type de retour

Fonction Nom_Fonction2 (arg21 : Type21 , arg22 : Type22 , ....) : Type de retour


………… Déclaration
Fonction Nom_FonctionN (argN1 : TypeN1 , argN2 : TypeN2 , ....) : Type de retour des fonctions
Variable

Début

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 22
Fonctions
Algorithme Nom_Algorithm

Fonction Nom_Fonction1 (arg11 : Type11 , arg12 : Type12 , ....) : Type de retour

Fonction Nom_Fonction2 (arg21 : Type21 , arg22 : Type22 , ....) : Type de retour


………… Déclaration
Fonction Nom_FonctionN (argN1 : TypeN1 , argN2 : TypeN2 , ....) : Type de retour des fonctions
Variable
Identif1 : TYPE_1
Identif2 : TYPE_2
……
IdentifN : TYPE_N

Début

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 23
Fonctions
Algorithme Nom_Algorithm

Fonction Nom_Fonction1 (arg11 : Type11 , arg12 : Type12 , ....) : Type de retour

Fonction Nom_Fonction2 (arg21 : Type21 , arg22 : Type22 , ....) : Type de retour


………… Déclaration
Fonction Nom_FonctionN (argN1 : TypeN1 , argN2 : TypeN2 , ....) : Type de retour des fonctions
Variable
Identif1 : TYPE_1
Identif2 : TYPE_2
……
IdentifN : TYPE_N

Début

Nom_Fonction1 (arg11 , arg12 , ....)


Nom_Fonction2 (arg21 , arg22 , ....) Appel des
fonctions
....
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 24
Fonctions - Procédures
Algorithme Factorielle
Variables F1, F2 , n1 , n2 , i : Entier

Début
Ecrire (" Veuillez saisir le premier entier") Ecrire (" Veuillez saisir le deuxième entier ")
Lire (n1) Lire (n2)
F1 ← 1 F2 ← 1
Si n1 = 0 Alors Si n2 = 0 Alors

Ecrire (" La factorielle est :" , F1 ) Ecrire (" La factorielle est :" , F2 )

Sinon Sinon
Pour i =1 à n1 Pas de 1 Pour i =1 à n2 Pas de 1
F1 ← F1 * i F2 ← F2 * i
FinPour FinPour
Ecrire (" La factorielle est :" , F1 ) Ecrire (" La factorielle est :" , F2 )

Fin Si Fin Si

Fin

1ère valeur 2ème valeur


Pr. Redouan Lahmyed ALGORITHMIQUE 2 25
Fonctions
Algorithme Ex_Factorielle
Variable

Début

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 26


Fonctions
Algorithme Ex_Factorielle
Fonction Factorielle ( N: Entier ) : Entier Variable
Variables Début
F , i : Entier

Début
F←1
Si N = 0 Alors
Retourne F

Sinon
Pour i =1 à N Pas de
1
F←F*i
FinPour

Retourne F
Fin Si Fin
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 27


Fonctions
Algorithme Ex_Factorielle
Fonction Factorielle ( N: Entier ) : Entier Variable n1 , n2 : Entier

Variables Début
F , i : Entier

Début
F←1
Si N = 0 Alors
Retourne F

Sinon
Pour i =1 à N Pas de
1
F←F*i
FinPour

Retourne F
Fin Si Fin
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 28


Fonctions
Algorithme Ex_Factorielle
Fonction Factorielle ( N: Entier ) : Entier Variable n1 , n2 : Entier

Variables Début
F , i : Entier Ecrire (" Veuillez saisir le premier entier")
Lire (n1)
Début
F←1 Ecrire (" La factorielle est :" , Factorielle (n1))
Si N = 0 Alors
Retourne F

Sinon
Pour i =1 à N Pas de
1
F←F*i
FinPour

Retourne F
Fin Si Fin
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 29


Fonctions
Algorithme Ex_Factorielle
Fonction Factorielle ( N: Entier ) : Entier Variable n1 , n2 : Entier

Variables Début
F , i : Entier Ecrire (" Veuillez saisir le premier entier")
Lire (n1)
Début
F←1 Ecrire (" La factorielle est :" , Factorielle (n1))
Si N = 0 Alors
Retourne F
Ecrire (" Veuillez saisir le deuxième entier")
Sinon Lire (n2)
Pour i =1 à N Pas de Ecrire (" La factorielle est :" , Factorielle (n2))
1
F←F*i
FinPour

Retourne F
Fin Si Fin
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 30


Fonctions
Algorithme Ex_Puissance

Variable

Début

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 31


Fonctions
Algorithme Ex_Puissance
Fonction Puissance ( X: Entier , n: Entier) : Entier

Variables Déclaration
P : Entier de la fonction
Début
P X^n
Retourne P

Fin
Variable

Début

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 32


Fonctions
Algorithme Ex_Puissance
Fonction Puissance ( X: Entier , n: Entier) : Entier

Variables Déclaration
P : Entier de la fonction
Début
P X^n
Retourne P

Fin
Variable A , B : Entier

Début
Ecrire ( " Veuillez saisir un nombre et leur puissance : " )
Appel de la
Lire (A , B)
fonction
Ecrire ( " Résultat est : " , Puissance ( A , B ) )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 33


Fonctions
Appel de la fonction
Soient quatre variables A, B, C et D et deux fonctions fct1 et fct 2 tels que:

-A, B sont de type entier


-C est de type chaine de caractères
-D est type logique
-Fonction fct1 ( X: Entier , Y: Entier) : Entier
-Fonction fct2 ( X: Entier , Y: Boolean) : Entier

1- Cochez ce qui est juste : ?

Fct1 ( A , B ) Ecrire ( fct1 ( B , B ) )

A ← fct2 ( B , D ) Ecrire ( fct2 ( B , D , A ) )

C ← fct1 ( B , B ) A ← A + fct1 ( A , A )

Pr. Redouan Lahmyed ALGORITHMIQUE 2 34


Fonctions
Appel de la fonction
Soient quatre variables A, B, C et D et deux fonctions fct1 et fct 2 tels que:

-A, B sont de type entier


-C est de type chaine de caractères
-D est type logique
-Fonction fct1 ( X: Entier , Y: Entier) : Entier
-Fonction fct2 ( X: Entier , Y: Boolean) : Entier

1- Cochez ce qui est juste : ?

Fct1 ( A , B ) Ecrire ( fct1 ( B , B ) )

A ← fct2 ( B , D ) Ecrire ( fct2 ( B , D , A ) )

C ← fct1 ( B , B ) A ← A + fct1 ( A , A )

Pr. Redouan Lahmyed ALGORITHMIQUE 2 35


Fonctions
Exercice
Ecrire un algorithme qui permet de définir et d'appeler une fonction
Minimum qui renvoie le plus petit de deux nombres différents.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 36


Fonctions
Algorithme Ex_Min
Fonction Minimum ( A: Entier , B: Entier) : Entier

Variables
Min : Entier Déclaration
Début de la fonction
Min ← A
Si Min > B Alors
Min ← B
Fin Si
Retourne Min
Fin
Variable V1 , V2 : Entier

Début
Ecrire ( " Veuillez saisir deux nombres : " )
Appel de la
Lire (V1 , V2)
fonction
Ecrire ( " La valeur minimale est : " , Minimum ( V1 , V2 ) )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 37


Procédures

Définition: Qu'est ce qu'une procédure ?

I- Une procédure est une suite d'instructions regroupées


sous un nom; elle prend en entrée des paramètres
(arguments) mais qui ne retourne rien.

Une procédure est écrite séparément du coprs de


l'algorithme principal et sera appelée par celui-ci lorsque
cela sera nécessaire.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 38


Procédures

Syntaxe:
Procedure Nom_Procedure (arg1 : Type1 , arg2 : Type2 , ....)

Variables
variable 1 : type_var1
variable 2 : type_var2
….
Début

Instructions

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 39
Procédures
Arguments de procédure
Syntaxe: Nom de procédure

Procedure Nom_Procedure (arg1 : Type1 , arg2 : Type2 , ....)

Variables
variable 1 : type_var1
Variables locales
variable 2 : type_var2
….
Début

Instructions Traitements

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 40
Fonctions - Procédures
Exercice : Écrire une procédure qui calcule la puissance d'un entier

Pr. Redouan Lahmyed ALGORITHMIQUE 2 41


Fonctions - Procédures
Exercice : Écrire une procédure qui calcule la puissance d'un entier

Fonction Puissance ( X: Entier , n: Entier) : Entier

Variables
P : Entier

Début
P X^n
Retourne P

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 42
Fonctions - Procédures
Exercice : Écrire une procédure qui calcule la puissance d'un entier

Procedure Puissance ( X: Entier , n: Entier)

Variables
P : Entier

Début
P X^n
Ecrire ( " Résultat est : " , P )

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 43
Procédures

Appel de la procédure

Méthode :

Nom_Procedure (arg1 , arg2 , ....)

Pr. Redouan Lahmyed ALGORITHMIQUE 2 44


Procédures
Algorithme Ex_Puissance
Procedure Puissance ( X: Entier , n: Entier)

Variables Déclaration
P : Entier de la
procédure
Début
P X^n
Ecrire ( " Résultat est : " , P )

Fin
Variable A , B : Entier

Début
Ecrire ( " Veuillez saisir un nombre et leur puissance : " )
Appel de la
Lire (A , B)
procédure
Puissance ( A , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 45


Procédures
Exercice: Ecrire une procédure qui permet de lire deux nombres, calculer
le produit et affiche si ce dernier est positif ou négatif.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 46


Procédures
Exercice: Ecrire une procédure qui permet de lire deux nombres, calculer
le produit et affiche si ce dernier est positif ou négatif.
Procedure Signe_Produit ( X: Entier , Y: Entier)

Variables
Pr : Entier

Début
Pr  X * Y
Si Pr > 0 Alors
Ecrire (" Le produit est positif ")
Sinon
Si Pr < 0 Alors
Ecrire (" Le produit est negatif ")
Sinon
Ecrire (" Le produit est nul ")
Fin Si

Fin Si
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 47


Fonctions
Algorithme Ex_Min
Procedure Signe_Produit ( X: Entier , Y: Entier)

Variables
Pr : Entier

Début
Pr  X * Y
Déclaration de
Si Pr > 0 Alors la procédure
Ecrire (" Le produit est positif ")
Sinon
Si Pr < 0 Alors
Ecrire (" Le produit est negatif ")
Sinon
Ecrire (" Le produit est nul ")
Fin Si

Fin Si
Fin

Variable V1 , V2 : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
Lire (V1 , V2) Appel de la
Signe_Produit (V1 , V2) procédure
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 48
Fonctions – Procédures (paramètres d’appels)

• Il y a deux types de passage de paramètres, le passage


par valeur et le passage par adresse.
• Passage par valeur :
 le paramètre d’appel est considéré comme une variable locale,

 toutes les modifications se feront dans une case mémoire


temporaire dans laquelle est rangée la valeur du paramètre
d’appel.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 49


Fonctions – Procédures (paramètres d’appels)
Exercice: Ecrire une procédure qui échange le contenu des deux variables.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 50


Fonctions – Procédures (paramètres d’appels)
Exercice: Ecrire une procédure qui échange le contenu des deux variables.

Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier

Début
Temp  X
X Y
Y  Temp

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 51


Fonctions – Procédures (paramètres d’appels)
Exercice: Ecrire une procédure qui échange le contenu des deux variables.
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier

Début
Temp  X
X Y
Y  Temp

Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 52
Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier

Début
Temp  X
X Y
Y  Temp

Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 53


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier

Début
Temp  X
X Y
Y  Temp

Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 54


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier

Début
Temp  X
X Y
Y  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 55


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier 3 2
Début
Temp  X
X Y
Y  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 56


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier 3 2
Début
Temp  X
X Y
Y  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 57


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier 3 2
Début
Temp  X
X Y
Y  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3 3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 58


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier 2 2
Début
Temp  X
X Y
Y  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3 3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 59


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( X: Entier , Y: Entier)

Variables
Temp : Entier 2 3
Début
Temp  X
X Y
Y  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3 3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (A , B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 60


Fonctions – Procédures (paramètres d’appels)
 Fonctions – Procédures: Passage par adresse

Procedure Echange_valeurs ( P1: ^Entier , P2 : ^Entier)

Variables
Temp : Entier

Début
Temp  P1^
P1^  P2^
P2^  Temp

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 61


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange

Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier

Début
Temp  P1^
P1^  P2^
P2^  Temp

Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 62
Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier

Début
Temp  P1^
P1^  P2^
P2^  Temp

Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 63


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier

Début
Temp  P1^
P1^  P2^
P2^  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 64


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier 1B3 1B2
Début
Temp  P1^
P1^  P2^
P2^  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 65


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier 1B3 1B2
Début
Temp  P1^
P1^  P2^
P2^  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 66


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier 1B3 1B2
Début
Temp  P1^
P1^  P2^
P2^  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
3 3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 67


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier 1B3 1B2
Début
Temp  P1^
P1^  P2^
P2^  Temp 2
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
2 3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 68


Fonctions – Procédures (paramètres d’appels)
Algorithme Echange
Procedure Echange_valeurs ( P1: ^Entier , P2: ^Entier)

Variables
Temp : Entier 1B3 1B2
Début
Temp  P1^
P1^  P2^
P2^  Temp 3
Fin
Variable A , B : Entier
Début
Ecrire ( " Veuillez saisir deux nombres : " )
2 3
Lire (A , B)
Ecrire ( " Avant l’echange : A =" , A , " B = " , B )
Echange_valeurs (&A , &B)
Ecrire (" Apres l’echange : A =" , A , " B = " , B )
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 69


Fonctions Prédéfinies
 Les Fonctions mathématiques

Fonction Description Exemple Résultat

Abs (nombre) Retourne la valeur absolue d'un X  Abs ( -12 ) X = 12


nombre.
Ent (nombre) Retourne la partie entière d'un X  Ent ( 12.6 ) X = 12
nombre.
Cos (angle) Retourne une valeur spécifiant le X  Cos (0) X=1
cosinus d'un angle.
Sin (angle) Retourne une valeur spécifiant le X  Sin (0) X=0
sinus d'un angle.
Tan (angle) Retourne une valeur contenant la X  Tan (0) X=0
tangente d'un angle.
Sqrt (nombre) Retourne une valeur spécifiant la X  Sqrt (4) X=2
Racine (nombre) racine carré d'un nombre.

Alea () Retourne un nombre aléatoire X  Alea () 0 <= X < 1


compris entre 0 (inclus) et 1 (exclus)

Pr. Redouan Lahmyed ALGORITHMIQUE 2 70


Fonctions Prédéfinies
 Les Fonctions mathématiques

Exemple : Générer un nombre aléatoire X compris entre 5 et 10

La fonction Alea renvoie un nombre réel aléatoire compris entre 0 et 1. Pour obtenir une
valeur entière comprise entre min et max (avec min < max) on utilise la formule suivante :

Ent ( ( max – min + 1 ) * Alea () + min )

Solution:
X  Ent ( 6 * Alea () + 5 )

Pr. Redouan Lahmyed ALGORITHMIQUE 2 71


Fonctions Prédéfinies
 Les Fonctions de chaînes de caractères

• Len(chaine) : renvoie le nombre de caractères d’une chaine


• Comp (ch1,ch2) : compare deux chaînes de caractères
• Concat (ch1,ch2) : retourne une chaîne formée par la concaténation de ch1 et ch2
• Mid(chaine,pos,lg) : renvoie un extrait de la chaine, commençant au caractère pos et
faisant lg caractères de long. (commence à 0)
• Left(chaine,n) : renvoie les n caractères les plus à gauche dans chaine.
• Right(chaine,n) : renvoie les n caractères les plus à droite dans chaine
• Find(chaine1,chaine2) :
• Renvoie la position de chaine2 dans chaine1,
• Commence par 0,
• Si chaine2 n’est pas comprise dans chaine1, la fonction renvoie -1

Pr. Redouan Lahmyed ALGORITHMIQUE 2 72


Fonctions Prédéfinies
 Les Fonctions de chaînes de caractères

• Exemples:

Len("Bonjour") vaut 7
Len("") vaut 0
Mid("Ahmed is back", 3, 7) vaut "ed is b"
Mid("Ahmed is back", 11, 1) vaut "c"
Left("Et pourtant…", 8) vaut "Et pourt"
Right("Et pourtant…", 4) vaut "t…"
Find("Un pur bonheur", "pur") vaut 3
Find(" Dans la vie ", "bonheur ") vaut -1

Pr. Redouan Lahmyed ALGORITHMIQUE 2 73


Fonctions Prédéfinies
 Les Fonctions de chaînes de caractères

Exercice : Ecrire un programme qui :


• Lit deux chaînes de caractères
• Affiche la taille de chaque chaine.
• Vérifie si la deuxième est une sous chaîne de la première ou non.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 74

Vous aimerez peut-être aussi