SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
Réalisé par :
Zakariyaa AIT EL MOUDEN
mouden.zakariyaa@outlook.com
Etudiant-Doctorant
FST Errachidia
©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
©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)
©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
©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
©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
©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
©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
©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
©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
©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
©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
©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
©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
©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
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
 Types d’interactions d’un algorithme avec un utilisateur
16
Algorithme
Utilisateur
Saisiededonnées
parleclavier
Affichagededonnées
Surl’écran
©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
©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
©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
©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
©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
©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
©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!
©Algorithmiques. par ZakariyaaAIT EL MOUDEN24
©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
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
Répétitions inconditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
 Exercice :
27
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
Répétitions conditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
La boucleTant que:
 Syntaxe :
Initialisation
Tantque (condition) Faire
Traitement
Incrémentation
FinTantque
29
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
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
Répétitions conditionnelles
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
La boucle Répéter … Jusqu’à:
 Syntaxe :
Initialisation
Répéter
Traitement
Incrémentation
Jusqu’à (condition)
32
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
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
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
©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
©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
©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
©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
©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
©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
©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
©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
©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
©Algorithmiques. par ZakariyaaAIT EL MOUDEN45
©Algorithmiques. par ZakariyaaAIT EL MOUDEN
 Pr. Khalid SBAI. Cours d’informatique. Ecole Supérieure de
Technologie de Meknès. Octobre 2010
46

Contenu connexe

Tendances (20)

Cours langage c
Cours langage cCours langage c
Cours langage c
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Serie2
Serie2Serie2
Serie2
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Le langage C
Le langage CLe langage C
Le langage C
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
02 correction-td smi-s3-algo2
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Exercices algo
Exercices algoExercices algo
Exercices algo
 
Algorithme
AlgorithmeAlgorithme
Algorithme
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Coursalgorithmique
CoursalgorithmiqueCoursalgorithmique
Coursalgorithmique
 
Cours de c
Cours de cCours de c
Cours de c
 

Similaire à Algorithmique

Cours-ALGORITHMIQUE-03.pdf
Cours-ALGORITHMIQUE-03.pdfCours-ALGORITHMIQUE-03.pdf
Cours-ALGORITHMIQUE-03.pdfadeljaouadi
 
COURS_ALGORITHME_SNINEH.pptx
COURS_ALGORITHME_SNINEH.pptxCOURS_ALGORITHME_SNINEH.pptx
COURS_ALGORITHME_SNINEH.pptxSalmaAhraimida
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfAdjimbawNDIAYE
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiquefast xp
 
Conception de base_de_l_algorithme
Conception de base_de_l_algorithmeConception de base_de_l_algorithme
Conception de base_de_l_algorithmemustapha4
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap IIInes Ouaz
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfadeljaouadi
 
algorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxalgorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxHathat10
 
Activité n°2 chap2
Activité n°2 chap2Activité n°2 chap2
Activité n°2 chap2zaynab baddar
 
6752018 algorithmique
6752018 algorithmique6752018 algorithmique
6752018 algorithmiqueFnakchi Zoy
 
cours d'algorithmique et programmation 3sc final .pdf
cours d'algorithmique et programmation 3sc final .pdfcours d'algorithmique et programmation 3sc final .pdf
cours d'algorithmique et programmation 3sc final .pdfLamissGhoul1
 
Algorithmique et Programmation - informatique - débutant
Algorithmique et Programmation - informatique - débutantAlgorithmique et Programmation - informatique - débutant
Algorithmique et Programmation - informatique - débutantRidoinBahadi
 

Similaire à Algorithmique (20)

Cours-ALGORITHMIQUE-03.pdf
Cours-ALGORITHMIQUE-03.pdfCours-ALGORITHMIQUE-03.pdf
Cours-ALGORITHMIQUE-03.pdf
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
COURS_ALGORITHME_SNINEH.pptx
COURS_ALGORITHME_SNINEH.pptxCOURS_ALGORITHME_SNINEH.pptx
COURS_ALGORITHME_SNINEH.pptx
 
coursalgorithmique9-10.ppt
coursalgorithmique9-10.pptcoursalgorithmique9-10.ppt
coursalgorithmique9-10.ppt
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
 
Conception de base_de_l_algorithme
Conception de base_de_l_algorithmeConception de base_de_l_algorithme
Conception de base_de_l_algorithme
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap II
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 
algorithmique
algorithmiquealgorithmique
algorithmique
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdf
 
algorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxalgorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptx
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
 
Activité n°2 chap2
Activité n°2 chap2Activité n°2 chap2
Activité n°2 chap2
 
langage C++
langage C++langage C++
langage C++
 
6752018 algorithmique
6752018 algorithmique6752018 algorithmique
6752018 algorithmique
 
cours d'algorithmique et programmation 3sc final .pdf
cours d'algorithmique et programmation 3sc final .pdfcours d'algorithmique et programmation 3sc final .pdf
cours d'algorithmique et programmation 3sc final .pdf
 
Algorithmique et Programmation - informatique - débutant
Algorithmique et Programmation - informatique - débutantAlgorithmique et Programmation - informatique - débutant
Algorithmique et Programmation - informatique - débutant
 

Plus de Zakariyaa AIT ELMOUDEN

Plus de Zakariyaa AIT ELMOUDEN (11)

Les réseaux informatiques 3
Les réseaux informatiques 3Les réseaux informatiques 3
Les réseaux informatiques 3
 
Les réseaux informatiques 2
Les réseaux informatiques 2Les réseaux informatiques 2
Les réseaux informatiques 2
 
Exercices : Algorithmes et Langage C
Exercices : Algorithmes et Langage CExercices : Algorithmes et Langage C
Exercices : Algorithmes et Langage C
 
Introduction aux réseaux informatiques
Introduction aux réseaux informatiquesIntroduction aux réseaux informatiques
Introduction aux réseaux informatiques
 
Langage HTML
Langage HTMLLangage HTML
Langage HTML
 
Introduction au Web
Introduction au WebIntroduction au Web
Introduction au Web
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 
Excel : Les fonctions mathématiques
Excel : Les fonctions mathématiquesExcel : Les fonctions mathématiques
Excel : Les fonctions mathématiques
 
Atelier EXCEL : Les fonctions financières
Atelier EXCEL :  Les fonctions financièresAtelier EXCEL :  Les fonctions financières
Atelier EXCEL : Les fonctions financières
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
 

Algorithmique

  • 1. Réalisé par : Zakariyaa AIT EL MOUDEN mouden.zakariyaa@outlook.com Etudiant-Doctorant FST Errachidia
  • 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
  • 27. Répétitions inconditionnelles ©Algorithmiques. par ZakariyaaAIT EL MOUDEN  Exercice : 27
  • 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
  • 29. Répétitions conditionnelles ©Algorithmiques. par ZakariyaaAIT EL MOUDEN La boucleTant que:  Syntaxe : Initialisation Tantque (condition) Faire Traitement Incrémentation FinTantque 29
  • 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
  • 32. Répétitions conditionnelles ©Algorithmiques. par ZakariyaaAIT EL MOUDEN La boucle Répéter … Jusqu’à:  Syntaxe : Initialisation Répéter Traitement Incrémentation Jusqu’à (condition) 32
  • 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
  • 46. ©Algorithmiques. par ZakariyaaAIT EL MOUDEN  Pr. Khalid SBAI. Cours d’informatique. Ecole Supérieure de Technologie de Meknès. Octobre 2010 46