Contenu connexe
Similaire à Algorithmique (20)
Plus de Zakariyaa AIT ELMOUDEN (11)
Algorithmique
- 2. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Le mot « algorithme » vient du nom du mathématicien Al-
Khawârizmî. Un algorithme est une suite finie d’instructions
à appliquer dans un ordre, à un ensemble finie de données,
pour arriver à un résultat.
2
Données d’entrée Données de sortie
Méthode de résolution de
problème et de production
des données de sortie à
partir des données d’entrée
Algorithme
- 3. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Le langage algorithmique est un compromis entre le langage
naturel compris par l’être humain et un langage de
programmation compris par la machine.
3
La surface d’un
cercle est le
produit du carré
de son rayon avec
π.
float r,S,pi = 3.14;
printf(’’Donner la
valeur de r’’);
scanf(’’%f’’,&r);
S = pi*r*r;
pi 3.14
Ecrire(‘Donner la valeur de r’ )
Lire(r)
S pi * r * r
Langage naturel Langage algorithmique Langage de programmation (C)
- 4. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Il doit tenir compte de tous les cas possibles (ex. division par
zéro)
L’ordre des actions est important (Exécution séquentielle).
L’algorithme n’est pas nécessairement unique.
Il doit fournir des résultats exacts.
4
- 5. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Algorithme d’échange de contenu de deux boites B1 et B2.
1. Utiliser une boite vide B3.
2. Mettre le contenu de B1 dans B3.
3. Mettre le contenu de B2 dans B1.
4. Mettre le contenu de B3 dans B2.
5
- 6. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Algorithme de calcul des racines d’une équation du second
degré à coefficients réels : ax2 +bx+c = 0,∀(a,b,c) ϵℝ
1. Lecture des valeurs de a, b et c.
2. Calculer Δ = b2 – 4*a*c
3. Si Δ < 0 alors pas de solutions dans ℝ
Si Δ = 0 la solution est x = -b/2*a
Si Δ > 0 alors l’équation admet deux solutions :
x1 = (-b - Δ) / 2*a et x 2 = (-b + Δ) / 2*a
6
- 7. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
ALGORITHME : Nom_Algorithme
Variables Entête
Déclaration des variables et des constantes
DEBUT
Instruction_1
Instruction_2 Corps
……
Instruction_n
FIN
7
- 8. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Une variables est une entité qui contient une information, elle
possède un nom, un type et une valeur.
Noms des variables :
Un nom de variable doit débuter par une lettre
(A à Z, a à z) ou le caractère de soulignement (_).
Un nom de variable peut être constitué de lettres
minuscules (a à z), de lettres majuscules (A à Z), de chiffres
(0 à 9) et du caractère de soulignement (_).
Un nom de variable ne doit pas correspondre à un mot
réservé, tels que ECRIRE, FIN, SI, ENTIER, …
Exemples : x, _nom, Chaine3, date_Naissance, …
8
- 9. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Types des variables :
Entier : Pour des valeurs numérique entiers
Exemples : 0, 15, 1023, -12, -255
Réel : Pour des valeurs numériques réels.
Exemples : 0, 15, -255, 0.152, 123648.9953, -1247.55
Booléen : Pour des valeurs logiques (VRAI ou FAUX)
Caractère : Caractères alphanumériques.
Exemples :‘A’,‘9’,‘é’,‘/’,‘$’,‘@’,‘.’
Chaine de caractères : Suite des caractères qui
représente un mot ou une phrase.
Exemples : ’’algorithme’’, ’’12’’, ’’AZ’’, ’’ une phrase 123’’
9
- 10. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Le type d’une variable permet de préciser 3 caractéristiques
principales:
l’ensemble de valeur que peut prendre la variable
Par exemple on ne peut pas affecter la valeur 3.14 à une
variable de type entier.
la taille mémoire réservée à la variable.
les différents operateurs qui peuvent agir sur les données de
ces variables.
Par exemple on ne peut pas effectuer l’addition de deux
variables de type chaine de caractères.
10
- 11. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Syntaxe de déclaration d’une variable :
Variables
Nom_variable : Type_variable
Exemple :
Variables
pi : Réel
N, M : Entier
c : Caractère
11
- 12. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Un opérateur est un symbole d’opération qui permet d’agir
sur des variables ou de faire des calculs.
Un opérateur associé à un type de données, ne peut être utilisé
que pour les variables, les constantes et les expressions de ce
type.
Dans certains cas on accepte d’utiliser un opérateur avec deux
opérandes de types différents, c’est par exemple le cas avec les
types arithmétiques 2 + 3.5 (entier+réel)
12
- 13. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Les opérateur + (addition), - (soustraction), / (division) et
* (multiplication).
L’opérateur mod (modulo/reste de la division)
Exemple : 11 mod 5 = 1 et 12 mod 4 = 0
L’opérateur div (division entière)
Exemple : 9 / 4 = 2.5 alors que 9 div 4 = 2
L’opérateur d’égalité = et l’opérateur d’inégalité ≠
Les opérateurs de comparaison : <, ≤, ≥, et >
Les opérateurs d’égalité, d’inégalité et de comparaison
renvoient des valeurs booléens (vrai ou faux)
13
- 14. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Les opérateurs logiques NON, ET, OU et OU Exclusif
renvoient des valeurs booléens.
14
A NON A
Vrai Faux
Faux Vrai
A B A OU B
Vrai Faux Vrai
Vrai Vrai Vrai
Faux Faux Faux
Faux Vrai Vrai
A B A OU Exclusif B
Vrai Faux Vrai
Vrai Vrai Vrai
Faux Faux Faux
Faux Vrai Vrai
A B A ET B
Vrai Faux Faux
Vrai Vrai Vrai
Faux Faux Faux
Faux Vrai Faux
- 15. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Affecter une valeur à une variable, symbole :
Syntaxe
variable (Expression)
Exemple
a b + c : Faire l’addition de b et c, et affecter le
résultat à la variable numérique a.
B a ET b : Effectuer l’opération a ET b et affecter
le résultat à la variable booléen B.
test a< b : Si a< b, affecter la valeurVrai à la
variable booléen test, sinon affecter Faux à
la variable test.
15
- 16. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Types d’interactions d’un algorithme avec un utilisateur
16
Algorithme
Utilisateur
Saisiededonnées
parleclavier
Affichagededonnées
Surl’écran
- 17. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Instruction de Sortie :
Ecrire(liste d’expressions)
Exemple :
Ecrire(’’HelloWorld!’’)
a 10
b a * 10 + 5
Ecrire(’’La valeur de a est ’’, a)
Ecrire(’’La valeur de b est ’’, b)
17
HelloWorld!
La valeur de a est 10
La valeur de b est 105
- 18. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Instruction d’entrée :
Lire(liste des variables)
Exemple :
Algorithme:Double
Variables
M,N : Entier
DEBUT
Ecrire(’’Entrer un entier’’)
Lire(N)
M N*2
Ecrire(’’Le double de ’’, N ,’’ est’’, M)
FIN
18
Entrer un entier
5
Le double de 5 est 10
- 19. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
La condition en algorithmique est une instruction de
branchement permettant de décider, dans un contexte donné,
quelle sera la séquence d'instructions à exécuter.
On distingue entre deux formes des conditions :
19
Si <condition> Alors
Instruction
FinSi
Si <condition> Alors
Instruction_1
Sinon
Instruction_2
FinSi
- 20. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Exemple : Maximum de deux entiers
Algorithme:MAX
Variables
a,b,max : Entier
DEBUT
Ecrire(’’Entrer deux entiers’’)
Lire(a,b)
Si a > b Alors
max a
Sinon
max b
FinSi
Ecrire(’’Le maximum est ’’, max)
FIN
20
Entrer deux entiers
5
15
Le maximum est 15
- 21. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN21
On peut traiter les cas avec deux méthodes
Si <condition_1>Alors
Instruction_1
Sinon Si <condition_2>Alors
Instruction_2
… … … … … … …
Sinon Si <condition_n>Alors
Instruction_n
Sinon
Instruction_autre
FinSi
Cas où v vaut
v1 : Instruction_1
v2 : Instruction_2
… … … … … … …
vn : Instruction_n
autre : Instruction_autre
FinCas
- 22. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Exemple :Algorithme qui affiche le jours correspondant à un entier
22
Algorithme:JOURS
Variables
a : Entier
j : Chaine
DEBUT
Ecrire(’’Entrer un entier’’)
Lire(a)
Si a = 1Alors
j ’’Lundi’’
Sinon Si a = 2Alors
j ’’Mardi’’
Sinon Si a = 3Alors
j ’’Mercredi’’
Sinon Si a = 4Alors
j ’’Jeudi’’
Sinon Si a = 5Alors
j ’’Vendredi’’
Sinon Si a = 6Alors
j ’’Samedi’’
Sinon Si a = 7Alors
j ’’Dimanche’’
Sinon
j ’’Erreur!’’
FinSi
Ecrire(’’Le résultat associé à ’’, a , ’’ est’’, j)
FIN Entrer un entier
5
Le résultat associé à
5 estVendredi
- 23. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Exemple :Algorithme qui affiche le jours correspondant à un entier
23
Algorithme:JOURS
Variables
a : Entier
j : Chaine
DEBUT
Ecrire(’’Entrer un entier’’)
Lire(a)
Cas où a vaut
1 : j ’’Lundi’’
2 : j ’’Mardi’’
3 : j ’’Mercredi’’
4 : j ’’Jeudi’’
5 : j ’’Vendredi’’
6 : j ’’Samedi’’
7 : j ’’Dimanche’’
autre : j ’’Erreur!’’
FinCas
Ecrire(’’Le résultat associé à ’’, a , ’’ est’’, j)
FIN
Entrer un entier
11
Le résultat associé à 11 est Erreur!
- 25. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Une itération ou une boucle est une structure qui permet de
répéter une instruction ou un traitement plusieurs fois.
On distingue entre deux types de boucles
Répétitions inconditionnelles : Nombre de répétition connu à
l’avance (Exemple :Afficher un message 5 fois) - Boucle Pour.
Répétitions conditionnelles : Nombre de répétition non connu,
aussi appelés boucles conditionnelles (Exemple : Lire des entiers
entrés par l’utilisateur, et quitter la boucle quand l’utilisateur tape
zéro ) - Boucles Tant que et Répéter jusqu’à.
25
- 26. Répétitions inconditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
La boucle Pour:
Syntaxe :
Pour i VI à VF Faire
Traitement
FinPour
Remarque : VI La valeur initiale et VF la valeur finale, de type scalaire.
Exemple :
Pour i 0 à 4 Faire
Ecrire(’’ Bonjour : ’’, i)
FinPour
26
Bonjour : 0
Bonjour : 1
Bonjour : 2
Bonjour : 3
Bonjour : 4
- 28. Répétitions inconditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Solution:
Algorithme:Boucle_inconditionnelle
Variables
n, i, S, P : Entier
DEBUT
Ecrire(’Donner un entier:’)
Lire(n)
S 0
P 1
Pour i 1 à n Faire
S S + i
P P * i
FinPour
Ecrire(’La somme des ’, n, ’ premiers entiers est : ’, S )
Ecrire(’Le factoriel de ’, n,’ est : ’, P)
FIN
28
Donner un entier :
5
La somme des 5 premiers
entiers est 15
Le factoriel de 5 est 120
- 30. Répétitions conditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
La boucleTant que:
Exemple 1 :Algorithme que affiche bonjour 5 fois
i 0
Tantque (i < 5) Faire
Ecrire(’’ Bonjour : ’’, i+1)
i i + 1
FinTantque
30
Bonjour : 1
Bonjour : 2
Bonjour : 3
Bonjour : 4
Bonjour : 5
- 31. Répétitions conditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Exemple 2 :Afficher les multiples de n inférieurs à 100
Algorithme:multiples_n_inf_100
Variables
M, n, i : Entier
DEBUT
Ecrire(’’Donner un entier:’’)
Lire(n)
i 1
M n
Tantque (M < 100) Faire
Ecrire(M, ’’ est multiple de : ’’, n)
i i + 1
M i * n
FinTantque
FIN
31
Donner un entier :
17
17 est multiple de 17
34 est multiple de 17
51 est multiple de 17
68 est multiple de 17
85 est multiple de 17
- 33. Répétitions conditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
La boucleTant que:
Exemple 1 :Algorithme que affiche bonjour 5 fois
i 0
Répéter
Ecrire(’’ Bonjour : ’’, i+1)
i i + 1
Jusqu’à (i=5)
33
Bonjour : 1
Bonjour : 2
Bonjour : 3
Bonjour : 4
Bonjour : 5
- 34. Répétitions conditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Exercice :
Ecrire un algorithme qui calcule la somme d’une suite des
chiffres non nuls, une fois l’utilisateur tape le chiffre 0
l’algorithme affiche la somme.
34
Donner un entier : 1
Donner un entier : 14
Donner un entier : -15
Donner un entier : 2
Donner un entier : -21
Donner un entier : 5
Donner un entier : 0
La somme de la suite est : -14
- 35. Répétitions conditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Solution :
Algorithme:somme_non_nuls
Variables
Somme, n : Entier
DEBUT
Somme 0
Répéter
Ecrire(’Donner un entier : ’)
Lire(n)
Somme Somme + n
Jusqu’à ( n = 0 )
Ecrire(’La somme est : ’, Somme)
FIN
35
- 36. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
La boucle Pour exécute le traitement de son corps exactement
N fois, avec N connu avant.
La boucle Tantque refait le traitement si la condition est vraie,
alors que la boucle Répéter refait le traitement si la condition
n’est pas encore satisfaite.
La boucle Répéter garantit l’exécution du traitement au moins
une fois.
36
- 37. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Un tableau est une structure qui regroupe plusieurs valeurs de
même type.
Un tableau peut être stocké dans une variable.
0 1 2 3 4 5
T =
37
14 -1 0 9 7 15
Indice
Valeur
- 38. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Déclaration
Tableau nom_tableau[taille] :Type
Exemple
Tableau notes[20] : Réel
0 1 2 3 4 5 … 19
notes =
La valeur maximal de l’indice est : taille-1
38
14,75 15 18 14,25 17 15,50 … 13,50
Indice
Valeur
- 39. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Accès au valeurs d’un tableau
Ecrire(notes[0])
Ecrire((notes[1]+notes[2])/2)
notes[3] notes[3] + 0,75
Ecrire(notes[3])
39
14,75 15 18 14,25 17 15,50 … 13,50
14,75
16,50
15
- 40. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Remplissage d’un tableau
Algorithme: tableau
Variables
Tableau notes[20], note : Réel
i : Entier
DEBUT
Pour i 0 à 19 Faire
Ecrire(’Donner une note: ’)
Lire(note)
notes[i] note
FinPour
Ecrire(’La somme est : ’, Somme)
FIN
40
- 41. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Affichage des valeurs d’un tableau
*On considère le tableau notes*
Pour i 0 à 19 Faire
Ecrire(’La note ’,i, ‘ = ’, notes[i])
Lire(note)
FinPour
41
- 42. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Traitement des valeurs d’un tableau
*On considère le tableau notes*
*Calculer la moyenne des 20 notes*
Somme 0
Pour i 0 à 19 Faire
Somme Somme + notes[i]
FinPour
Moyenne Somme / 20
Ecrire(’La moyenne est : ’, Moyenne)
42
- 43. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Exercice:
Ecrire un Algorithme NOMS qui permet de lire votre nom
lettre par lettre est l’afficher sur l’écran.
43
Donner la taille de votre nom:
5
Donner la lettre N°1: a
Donner la lettre N°2: h
Donner la lettre N°3: m
Donner la lettre N°4: e
Donner la lettre N°5: d
Votre nom est : ahmed
- 44. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN
Solution:
Algorithme: NOMS
Variables
Tableau nom[22] : caractère
i,taille : Entier
DEBUT
Ecrire(’Donner la taille de votre nom (<22): ’)
Lire(taille)
Pour i 0 à taille Faire
Ecrire(’Donner la lettre N°: ’, i+1)
Lire(nom[i])
FinPour
Pour i 0 à taille Faire
Ecrire(nom[i])
FinPour
FIN
44