Algorithmique

ABID Mehdi
ABID Mehdidoctorant à université hassan 2
1
Algorithmique
Département de Mathématiques et
d’Informatique
Presented by: Mehdi Abid
Le terme algorithme vient du nom du mathématicien arabe
Al-Khawarizmi (820 après J.C.)
Un algorithme est une description complète et détaillée des actions à
effectuer et de leur séquencement pour arriver à un résultat donné.
Algorithme = suite d’actions que devra effectuer un automate pour arriver à partir
d’un état initial, en un temps fini, à un résultat.
2
Définition
1) Apprendre les concepts de base de
l'algorithmique et de la programmation
2) Etre capable de mettre en œuvre ces concepts
pour analyser des problèmes simples et écrire
les programmes correspondants
Ce que vous devez savoir sur l'algorithmique
Enoncé du problème
Cahier des charges
Algorithme
Programme source
Programme exécutable
Version finale et résultats 3
Spécification
Analyse
Traduction en langage
Compilation
Tests et modifications
4
Notion de variable
3+4=
3+4 = 7
Problème : Effectuer le calcule de 3+4
Chez un humain Chez une Machine
(Téléphone – Ordinateur – calculatrice…)
A ← 3
B ← 4
C ← A+B
on stocke la valeur 3 dans une variable A
Et 4 dans une variable B
On affiche la valeur de la variable C
???7
5
Notion de variable
Dans les langages de programmation une variable sert à stocker la valeur d’une donnée
Une variable désigne en fait un emplacement mémoire dont le contenu peut changer au cours d’un
programme (d’où le nom variable)
Règle : Les variables doivent être déclarées avant d’être utilisées, elle doivent être caractérisées par :
• un nom (Identificateur)
• un type (entier, réel, caractère, chaîne de caractères, …)
Identificateur : A,B, Totale ,Prix_TTC, Prix_HT, Test, ch1……..
Type : entier, réel, booléen, chaîne de caractères
Variables A, B, C: Entier
Début
A ← 3
B ← 7
C ← A + B
Fin
Notion de variable
6
L’instruction d’affectation
A ← 3
L’affectation consiste à attribuer une valeur à une variable
(ça consiste en fait à remplir où à modifier le contenu d'une zone mémoire)
En pseudo-code, l'affectation se note avec le signe ←
Var← e: attribue la valeur de e à la variable Var
• e peut être une valeur, une autre variable ou une expression
• Var et e doivent être de même type ou de types compatibles
• l’affectation ne modifie que ce qui est à gauche de la flèche (var)
Ex valides: A ←3 B ←4 C ←A+B
x ←10,5 Test ←FAUX LP ← "ESE"
LF←LP x ←4 x ←C
Question : Quelle est la valeur de x ?
la valeur de LF ?
Affectation
7
Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C: Entier
Début
A ← 2
B ← 4
A ← B
B ← A+5
C ← A + B
C ← B – A
Fin
Exercice
Instructions A B C
A ← 2
B ← 4
A ← B
B ← A+5
C ← A + B
C ← B – A
2
2
5
44
4 9
94
4 9
4
13
8
Donnez les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B : Entier
Début
A ← 1
B ← 2
A ← B
B ← A
Fin
Exercice
Les deux dernières instructions permettent-elles d’échanger les
valeurs de A et B ?
Instructions A B
A ← 1
B ← 2
A ← B
B ← A
1
1 2
2 2
2 2
9
Ecrire un algorithme permettant d’échanger les valeurs de deux
variables A et B
Variables A, B,C : Entier
Début
A ← 1
B ← 2
C ← A
A ← B
B  C
Fin
Exercice
10
Expressions et opérateurs
Les opérateurs dépendent du type de l'opération, ils peuvent être :
des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance)
des opérateurs logiques: NON, OU, ET
des opérateurs relationnels: ==, , <, >, <=, >=
des opérateurs sur les chaînes: & (concaténation)
Une expression est évaluée de gauche à droite mais en tenant compte de priorités
Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant
^ : (puissance)
* , / (multiplication, division)
% (modulo)
+ , - (addition, soustraction) exemple: 2 + 3 * 7 vaut 23
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en
priorité exemple: (2 + 3) * 7 vaut 35
11
Les instructions d'entrées-sorties:
lecture et écriture
Les instructions de lecture et d'écriture permettent à la machine de communiquer avec l'utilisateur
L'écriture permet d’écrire dans un fichier ou d'afficher des résultats à l'écran
NB : Avant de lire une variable, il est fortement conseillé d’écrire des messages à
l’écran, afin de prévenir l’utilisateur de ce qu’il doit frapper
écrire (var)
écrire("entrer un nombre ")
écrire("le nombre saisi est ",a)
La lecture permet d'entrer des donnés à partir du clavier
lire (var)
la machine met la valeur entrée au clavier var
dans la zone mémoire nommée var
lire(A)
Les instructions d'entrées-sorties:
lecture et écriture
Exemple : Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule et affiche le double de ce nombre
Algorithme Calcul_double
variables A, B : entier
Début
écrire("entrer le nombre ")
lire(A)
B ← 2*A
écrire("le double de est :", B)
écrire("le double de ", A, "est :", B)
Fin
12
Algorithme AffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez votre nom")
lire(Nom)
écrire("entrez votre prénom")
lire(Prenom)
Nom_Complet ← Nom & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin
Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et qui affiche ensuite votre nom complet
Exercice
Exercice
13
14
Ecrire un algorithme permettant de saisir un nombre entier au clavier et d’afficher le carré
d'un nombre saisie par un utilisateur
Variables a, Entier
Début
écrire("entrer un nombre ")
lire(a)
b ← a^2 oubien b a*a
écrire("le carée du nombre saisie est :", b) ou bien écrire("le carré de ", a, "est :", b)
Fin
Exercice
15
Instructions conditionnelles
Les instructions conditionnelles servent à n'exécuter une instruction ou une séquence d'instructions que
si une condition est vérifiée
On utilisera la forme suivante
Si (condition) alors
instruction ou suite d'instructions1
Finsi
Sinon
instruction ou suite d'instructions2
La partie Sinon n'est pas obligatoire,
quand elle n'existe pas et que la condition
est fausse, aucun traitement n'est réalisé
16
Instructions conditionnelles
Exemple : Ecrire un algorithme qui demande de saisir un nombre à l'utilisateur, puis qui calcule et affiche le triple de sa valeur si
le nombre est positif, sinon il affichera son double.
Algorithme Calcul
variables A, R : entier
Début
écrire("entrer le nombre ")
lire(A)
Si (A>=0)
R  3*A
sinon
R  2*A
finsi
Si (A>=0)
R  3*A
écrire("le Résultat est :", R)
sinon
R  2*A
écrire("le Résultat est :", R)
finsi
Fin
écrire("le Résultat est :", R)
17
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et affiche s'il est divisible par 3
Algorithme Divsible_par3
Variable n : entier
Début
Ecrire " Entrez un entier : "
Lire (n)
Si (n%3=0) alors
Ecrire (n," est divisible par 3")
Sinon
Ecrire (n," n'est pas divisible par 3")
Finsi
Fin
Instructions conditionnelles
18
Instructions conditionnellesConditions composées
• Une condition composée est une condition formée de plusieurs conditions
simples reliées par des opérateurs logiques:
ET, OU, OU exclusif (XOR) et NON
• Exemples :
• x compris entre 2 et 6 : (x > 2) ET (x < 6)
• n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)
• deux valeurs et deux seulement sont identiques parmi a, b et c :
(a=b) XOR (a=c) XOR (b=c)
• L'évaluation d'une condition composée se fait selon des règles présentées
généralement dans ce qu'on appelle tables de vérité
19
Instructions conditionnellesConditions composées
C1 C2 C1 ET C2
VRAI VRAI VRAI
VRAI FAUX FAUX
FAUX VRAI FAUX
FAUX FAUX FAUX
C1 C2 C1 OU C2
VRAI VRAI VRAI
VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX
C1 C2 C1 XOR C2
VRAI VRAI FAUX
VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX
C1 NON C1
VRAI FAUX
FAUX VRAI
ET OU
XOR
NON
20
Instructions conditionnellesTests imbriqués
Les tests peuvent avoir un degré quelconque d'imbrications
Si (condition1) alors
Sinon
Finsi
Si (condition2) alors
instructionsA
Sinon
instructionsB
Finsi
Si (condition3) alors
instructionsC
Finsi
21
Instructions conditionnellesTests imbriqués
Exemple : savoir si un nombre est nul, négatif ou bien positif
Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n) Si (n < 0) alors
Ecrire ("Ce nombre est négatif")
Finsi
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Finsi
Si (n > 0) alors
Ecrire ("Ce nombre est positif")
Finsi
Si (n < 0) alors
Ecrire ("Ce nombre est négatif")
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin
22
Instructions conditionnelles
Le prix de photocopies dans un centre de copie varie selon le nombre demandé: 0,5 DH la copie pour un nombre de
copies inférieur à 10, 0,4DH pour un nombre compris entre 10 et 20 et 0,3DH au-delà.
Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées, qui calcule et affiche le prix
à payer
Exercice
23
Instructions conditionnelles
Variables Nb_copies : entier
prix : réel
Début
Ecrire (« Saisir le nombre de photocopies : ")
Lire (Nb_copies)
Si (Nb_opies < 10) Alors
prix ← Nb_opies *0.5
Sinon Si (Nb_opies < 20) Alors
prix ← Nb_opies *0.4
Sinon
prix ← Nb_opies *0.3
Finsi
Finsi
Ecrire (“Le prix à payer est : ”, prix)
Fin
24
Instructions itératives: les boucles
• Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain nombre de fois
• On distingue trois sortes de boucles en langages de programmation :
• Les boucles tant que : on y répète des instructions tant qu'une certaine condition est réalisée
• Les boucles pour ou avec compteur : on y répète des instructions en faisant évoluer un compteur
(variable particulière) entre une valeur initiale et une valeur finale
25
Les boucles Tant que
TantQue (condition)
instructions
FinTantQue
condition instructions
Fausse
Vrai
la condition (dite condition de contrôle de la boucle) est évaluée avant chaque itération
si la condition est vraie, on exécute instructions (corps de la boucle), puis, on retourne tester la
condition. Si elle est encore vraie, on répète l'exécution, …
si la condition est fausse, on sort de la boucle et on exécute l'instruction qui est après FinTantQue
26
Algorithme
1 sur 26

Recommandé

Ch2-Notions de base & actions élémentaires.pdf par
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
44 vues32 diapositives
01 correction-td smia-s2-info2 par
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2L’Université Hassan 1er Settat
5.7K vues37 diapositives
Exercices_Python_Fenni_2023 -corrigé.pdf par
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
4.3K vues86 diapositives
Devoirs Algorithme + correction pour 4 si par
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
41.3K vues165 diapositives
02 correction-td smi-s3-algo2 par
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2L’Université Hassan 1er Settat
1.5K vues20 diapositives
algorithme tronc commun lycée par
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycéeKayl Mido
31.9K vues5 diapositives

Contenu connexe

Tendances

Algorithme & structures de données Chap I par
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap IInes Ouaz
4.5K vues27 diapositives
Ch1-Généralités.pdf par
Ch1-Généralités.pdfCh1-Généralités.pdf
Ch1-Généralités.pdfFadouaBouafifSamoud
32 vues15 diapositives
Travaux dirigés 1: algorithme & structures de données (corrigés) par
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)Ines Ouaz
75.7K vues9 diapositives
Cours : les listes chainées Prof. KHALIFA MANSOURI par
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
8.9K vues67 diapositives
bac info : série récursivité par
bac info : série récursivitébac info : série récursivité
bac info : série récursivitéĂmîʼndǿ TrànCè
8K vues2 diapositives
Chapitre 4 récursivité par
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
5.6K vues62 diapositives

Tendances(20)

Algorithme & structures de données Chap I par Ines Ouaz
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
Ines Ouaz4.5K vues
Travaux dirigés 1: algorithme & structures de données (corrigés) par Ines Ouaz
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)
Ines Ouaz75.7K vues
Cours : les listes chainées Prof. KHALIFA MANSOURI par Mansouri Khalifa
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
Mansouri Khalifa8.9K vues
Chapitre 4 récursivité par Sana Aroussi
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
Sana Aroussi5.6K vues
Projet de programmation la conversion entre les bases par Tunisie collège
Projet de programmation   la conversion entre les bases Projet de programmation   la conversion entre les bases
Projet de programmation la conversion entre les bases
Chapitre 3 structures séquentielles par Sana Aroussi
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
Sana Aroussi9.6K vues
Exercices en turbo pascal sur la récursivité par salah fenni
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivité
salah fenni8.3K vues
Cours algorithme par badr zaimi
Cours algorithmeCours algorithme
Cours algorithme
badr zaimi9.7K vues
Tp1 compte rendu en langage c par Ebrima NJIE
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage c
Ebrima NJIE8.2K vues
Algorithmique programmation2018 par salah fenni
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
salah fenni2.4K vues
cours algorithme et structure de données 1er année par Missaoui Abdelbaki
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
Cours structures des données (langage c) par rezgui mohamed
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
rezgui mohamed8.1K vues

En vedette

I found a_few_pictures_of_you_growing_up par
I found a_few_pictures_of_you_growing_upI found a_few_pictures_of_you_growing_up
I found a_few_pictures_of_you_growing_uplyago
627 vues43 diapositives
Grande par
GrandeGrande
Grandelyago
632 vues47 diapositives
Burtin force vitesse et kinésithérapie JFK2011 par
Burtin force vitesse et kinésithérapie JFK2011Burtin force vitesse et kinésithérapie JFK2011
Burtin force vitesse et kinésithérapie JFK2011Pierre Trudelle
652 vues41 diapositives
UCC Labs marque-et-web social v11 par
UCC Labs marque-et-web social v11UCC Labs marque-et-web social v11
UCC Labs marque-et-web social v11nouvelle MARQUE
1.2K vues104 diapositives
Conference Marketing En Recession par
Conference Marketing En RecessionConference Marketing En Recession
Conference Marketing En RecessionBenoit Grenier
467 vues13 diapositives
34 Robertson La Robotique Pour La RééDucation par
34 Robertson La Robotique Pour La RééDucation34 Robertson La Robotique Pour La RééDucation
34 Robertson La Robotique Pour La RééDucationPierre Trudelle
564 vues13 diapositives

En vedette(20)

I found a_few_pictures_of_you_growing_up par lyago
I found a_few_pictures_of_you_growing_upI found a_few_pictures_of_you_growing_up
I found a_few_pictures_of_you_growing_up
lyago627 vues
Grande par lyago
GrandeGrande
Grande
lyago632 vues
Burtin force vitesse et kinésithérapie JFK2011 par Pierre Trudelle
Burtin force vitesse et kinésithérapie JFK2011Burtin force vitesse et kinésithérapie JFK2011
Burtin force vitesse et kinésithérapie JFK2011
Pierre Trudelle652 vues
Conference Marketing En Recession par Benoit Grenier
Conference Marketing En RecessionConference Marketing En Recession
Conference Marketing En Recession
Benoit Grenier467 vues
34 Robertson La Robotique Pour La RééDucation par Pierre Trudelle
34 Robertson La Robotique Pour La RééDucation34 Robertson La Robotique Pour La RééDucation
34 Robertson La Robotique Pour La RééDucation
Pierre Trudelle564 vues
El cerebro y su relacion con lo conocido par Euler
El cerebro y su relacion con lo conocidoEl cerebro y su relacion con lo conocido
El cerebro y su relacion con lo conocido
Euler745 vues
Le E-commerce et LabelHabitation en quelques chiffres par LabelHabitation
Le E-commerce et LabelHabitation en quelques chiffresLe E-commerce et LabelHabitation en quelques chiffres
Le E-commerce et LabelHabitation en quelques chiffres
LabelHabitation524 vues
Estrategias de comunicación digital ¿pensadas en el usuario? par Paulo Saavedra
Estrategias de comunicación digital ¿pensadas en el usuario?Estrategias de comunicación digital ¿pensadas en el usuario?
Estrategias de comunicación digital ¿pensadas en el usuario?
Paulo Saavedra671 vues
Rédiger pour un blogue institutionnel par leclercconseil
Rédiger pour un blogue institutionnelRédiger pour un blogue institutionnel
Rédiger pour un blogue institutionnel
leclercconseil549 vues
Journauxdeclasse.be par HWolteche
Journauxdeclasse.beJournauxdeclasse.be
Journauxdeclasse.be
HWolteche2.4K vues
EspaceRDV - gérer ses horaires par Julien Audran
EspaceRDV - gérer ses horairesEspaceRDV - gérer ses horaires
EspaceRDV - gérer ses horaires
Julien Audran422 vues
Diaporama.m.kessler.fev2010.v.2 par lifeiseasy
Diaporama.m.kessler.fev2010.v.2Diaporama.m.kessler.fev2010.v.2
Diaporama.m.kessler.fev2010.v.2
lifeiseasy1.1K vues

Similaire à Algorithmique

algorithmique par
algorithmiquealgorithmique
algorithmiqueABID Mehdi
891 vues15 diapositives
Cours-ALGORITHMIQUE-03.pdf par
Cours-ALGORITHMIQUE-03.pdfCours-ALGORITHMIQUE-03.pdf
Cours-ALGORITHMIQUE-03.pdfadeljaouadi
8 vues108 diapositives
syntax-matlab.pdf par
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdfYasmineChihab
112 vues13 diapositives
Algorithmique seconde (corrigés et commentaires) par
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
2.6K vues40 diapositives
exercices-corriges-dalgorithmique par
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiquefast xp
25.6K vues24 diapositives
Chapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdf par
Chapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdfChapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdf
Chapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdfC00LiMoUn
41 vues29 diapositives

Similaire à Algorithmique(20)

Algorithmique seconde (corrigés et commentaires) par DriNox NordisTe
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
DriNox NordisTe2.6K vues
exercices-corriges-dalgorithmique par fast xp
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
fast xp25.6K vues
Chapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdf par C00LiMoUn
Chapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdfChapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdf
Chapitre 2 Les strucutures conditionnelles_18-19.ppt [Mode de compatibilité].pdf
C00LiMoUn41 vues
Conception de base_de_l_algorithme par mustapha4
Conception de base_de_l_algorithmeConception de base_de_l_algorithme
Conception de base_de_l_algorithme
mustapha41.2K vues
Les structures de données.pptx par PROFPROF11
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
PROFPROF1171 vues
algorithme chapitre 1 et 2 (1).pptx par Hathat10
algorithme chapitre 1 et 2 (1).pptxalgorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptx
Hathat1012 vues
Coursalgorithmique par nicodeff
CoursalgorithmiqueCoursalgorithmique
Coursalgorithmique
nicodeff7.3K vues
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup par Karla Adamson
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSupALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup
Karla Adamson18 vues
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf par adeljaouadi
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdfALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf
adeljaouadi63 vues
Cours - TC - Histoire Algorithmique.pdf par adeljaouadi
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdf
adeljaouadi9 vues
Formation en Python_Niveau1_2023.pptx par betalab
Formation en Python_Niveau1_2023.pptxFormation en Python_Niveau1_2023.pptx
Formation en Python_Niveau1_2023.pptx
betalab12 vues
PHP : les fondamentaux (1ère partie) par CodeFormation
PHP : les fondamentaux (1ère partie)PHP : les fondamentaux (1ère partie)
PHP : les fondamentaux (1ère partie)
CodeFormation20 vues

Dernier

ONU.pdf par
ONU.pdfONU.pdf
ONU.pdfChristopheFontaine13
25 vues2 diapositives
Newsletter SPW Agriculture en province de LIEGE du 28-11-23 par
Newsletter SPW Agriculture en province de LIEGE du 28-11-23Newsletter SPW Agriculture en province de LIEGE du 28-11-23
Newsletter SPW Agriculture en province de LIEGE du 28-11-23BenotGeorges3
23 vues21 diapositives
Abréviations et symboles (1).pdf par
Abréviations et symboles (1).pdfAbréviations et symboles (1).pdf
Abréviations et symboles (1).pdfStagiaireLearningmat
25 vues2 diapositives
Julia Margaret Cameron par
Julia Margaret CameronJulia Margaret Cameron
Julia Margaret CameronTxaruka
65 vues20 diapositives
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2... par
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...BenotGeorges3
24 vues18 diapositives
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de... par
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...M2i Formation
6 vues36 diapositives

Dernier(15)

Newsletter SPW Agriculture en province de LIEGE du 28-11-23 par BenotGeorges3
Newsletter SPW Agriculture en province de LIEGE du 28-11-23Newsletter SPW Agriculture en province de LIEGE du 28-11-23
Newsletter SPW Agriculture en province de LIEGE du 28-11-23
BenotGeorges323 vues
Julia Margaret Cameron par Txaruka
Julia Margaret CameronJulia Margaret Cameron
Julia Margaret Cameron
Txaruka65 vues
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2... par BenotGeorges3
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...
BenotGeorges324 vues
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de... par M2i Formation
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...
M2i Formation6 vues
MNGTCOUT PROJET 04112023.pptx par HAIDI2
MNGTCOUT PROJET 04112023.pptxMNGTCOUT PROJET 04112023.pptx
MNGTCOUT PROJET 04112023.pptx
HAIDI26 vues
Cours Audit General 2019 (1).prof tatouti .pdf par Abdelghani19
Cours Audit  General 2019 (1).prof tatouti .pdfCours Audit  General 2019 (1).prof tatouti .pdf
Cours Audit General 2019 (1).prof tatouti .pdf
Abdelghani195 vues
Présentation de lancement SAE105 par JeanLucHusson
Présentation de lancement SAE105Présentation de lancement SAE105
Présentation de lancement SAE105
JeanLucHusson20 vues
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 par BenotGeorges3
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23Newsletter SPW Agriculture en province du Luxembourg du 13-11-23
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23
BenotGeorges36 vues
Formation M2i - Augmenter son impact en communication et en management grâce... par M2i Formation
Formation M2i - Augmenter son impact en communication et en management grâce...Formation M2i - Augmenter son impact en communication et en management grâce...
Formation M2i - Augmenter son impact en communication et en management grâce...
M2i Formation41 vues
Julia Margaret Cameron par Txaruka
Julia Margaret Cameron Julia Margaret Cameron
Julia Margaret Cameron
Txaruka5 vues

Algorithmique

  • 1. 1 Algorithmique Département de Mathématiques et d’Informatique Presented by: Mehdi Abid
  • 2. Le terme algorithme vient du nom du mathématicien arabe Al-Khawarizmi (820 après J.C.) Un algorithme est une description complète et détaillée des actions à effectuer et de leur séquencement pour arriver à un résultat donné. Algorithme = suite d’actions que devra effectuer un automate pour arriver à partir d’un état initial, en un temps fini, à un résultat. 2 Définition
  • 3. 1) Apprendre les concepts de base de l'algorithmique et de la programmation 2) Etre capable de mettre en œuvre ces concepts pour analyser des problèmes simples et écrire les programmes correspondants Ce que vous devez savoir sur l'algorithmique Enoncé du problème Cahier des charges Algorithme Programme source Programme exécutable Version finale et résultats 3 Spécification Analyse Traduction en langage Compilation Tests et modifications
  • 4. 4 Notion de variable 3+4= 3+4 = 7 Problème : Effectuer le calcule de 3+4 Chez un humain Chez une Machine (Téléphone – Ordinateur – calculatrice…) A ← 3 B ← 4 C ← A+B on stocke la valeur 3 dans une variable A Et 4 dans une variable B On affiche la valeur de la variable C ???7
  • 5. 5 Notion de variable Dans les langages de programmation une variable sert à stocker la valeur d’une donnée Une variable désigne en fait un emplacement mémoire dont le contenu peut changer au cours d’un programme (d’où le nom variable) Règle : Les variables doivent être déclarées avant d’être utilisées, elle doivent être caractérisées par : • un nom (Identificateur) • un type (entier, réel, caractère, chaîne de caractères, …) Identificateur : A,B, Totale ,Prix_TTC, Prix_HT, Test, ch1…….. Type : entier, réel, booléen, chaîne de caractères Variables A, B, C: Entier Début A ← 3 B ← 7 C ← A + B Fin Notion de variable
  • 6. 6 L’instruction d’affectation A ← 3 L’affectation consiste à attribuer une valeur à une variable (ça consiste en fait à remplir où à modifier le contenu d'une zone mémoire) En pseudo-code, l'affectation se note avec le signe ← Var← e: attribue la valeur de e à la variable Var • e peut être une valeur, une autre variable ou une expression • Var et e doivent être de même type ou de types compatibles • l’affectation ne modifie que ce qui est à gauche de la flèche (var) Ex valides: A ←3 B ←4 C ←A+B x ←10,5 Test ←FAUX LP ← "ESE" LF←LP x ←4 x ←C Question : Quelle est la valeur de x ? la valeur de LF ? Affectation
  • 7. 7 Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ? Variables A, B, C: Entier Début A ← 2 B ← 4 A ← B B ← A+5 C ← A + B C ← B – A Fin Exercice Instructions A B C A ← 2 B ← 4 A ← B B ← A+5 C ← A + B C ← B – A 2 2 5 44 4 9 94 4 9 4 13
  • 8. 8 Donnez les valeurs des variables A et B après exécution des instructions suivantes ? Variables A, B : Entier Début A ← 1 B ← 2 A ← B B ← A Fin Exercice Les deux dernières instructions permettent-elles d’échanger les valeurs de A et B ? Instructions A B A ← 1 B ← 2 A ← B B ← A 1 1 2 2 2 2 2
  • 9. 9 Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B Variables A, B,C : Entier Début A ← 1 B ← 2 C ← A A ← B B  C Fin Exercice
  • 10. 10 Expressions et opérateurs Les opérateurs dépendent du type de l'opération, ils peuvent être : des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance) des opérateurs logiques: NON, OU, ET des opérateurs relationnels: ==, , <, >, <=, >= des opérateurs sur les chaînes: & (concaténation) Une expression est évaluée de gauche à droite mais en tenant compte de priorités Priorité des opérateurs Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant ^ : (puissance) * , / (multiplication, division) % (modulo) + , - (addition, soustraction) exemple: 2 + 3 * 7 vaut 23 En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en priorité exemple: (2 + 3) * 7 vaut 35
  • 11. 11 Les instructions d'entrées-sorties: lecture et écriture Les instructions de lecture et d'écriture permettent à la machine de communiquer avec l'utilisateur L'écriture permet d’écrire dans un fichier ou d'afficher des résultats à l'écran NB : Avant de lire une variable, il est fortement conseillé d’écrire des messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit frapper écrire (var) écrire("entrer un nombre ") écrire("le nombre saisi est ",a) La lecture permet d'entrer des donnés à partir du clavier lire (var) la machine met la valeur entrée au clavier var dans la zone mémoire nommée var lire(A)
  • 12. Les instructions d'entrées-sorties: lecture et écriture Exemple : Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule et affiche le double de ce nombre Algorithme Calcul_double variables A, B : entier Début écrire("entrer le nombre ") lire(A) B ← 2*A écrire("le double de est :", B) écrire("le double de ", A, "est :", B) Fin 12
  • 13. Algorithme AffichageNomComplet variables Nom, Prenom, Nom_Complet : chaîne de caractères Début écrire("entrez votre nom") lire(Nom) écrire("entrez votre prénom") lire(Prenom) Nom_Complet ← Nom & Prenom écrire("Votre nom complet est : ", Nom_Complet) Fin Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et qui affiche ensuite votre nom complet Exercice Exercice 13
  • 14. 14 Ecrire un algorithme permettant de saisir un nombre entier au clavier et d’afficher le carré d'un nombre saisie par un utilisateur Variables a, Entier Début écrire("entrer un nombre ") lire(a) b ← a^2 oubien b a*a écrire("le carée du nombre saisie est :", b) ou bien écrire("le carré de ", a, "est :", b) Fin Exercice
  • 15. 15 Instructions conditionnelles Les instructions conditionnelles servent à n'exécuter une instruction ou une séquence d'instructions que si une condition est vérifiée On utilisera la forme suivante Si (condition) alors instruction ou suite d'instructions1 Finsi Sinon instruction ou suite d'instructions2 La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition est fausse, aucun traitement n'est réalisé
  • 16. 16 Instructions conditionnelles Exemple : Ecrire un algorithme qui demande de saisir un nombre à l'utilisateur, puis qui calcule et affiche le triple de sa valeur si le nombre est positif, sinon il affichera son double. Algorithme Calcul variables A, R : entier Début écrire("entrer le nombre ") lire(A) Si (A>=0) R  3*A sinon R  2*A finsi Si (A>=0) R  3*A écrire("le Résultat est :", R) sinon R  2*A écrire("le Résultat est :", R) finsi Fin écrire("le Résultat est :", R)
  • 17. 17 Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et affiche s'il est divisible par 3 Algorithme Divsible_par3 Variable n : entier Début Ecrire " Entrez un entier : " Lire (n) Si (n%3=0) alors Ecrire (n," est divisible par 3") Sinon Ecrire (n," n'est pas divisible par 3") Finsi Fin Instructions conditionnelles
  • 18. 18 Instructions conditionnellesConditions composées • Une condition composée est une condition formée de plusieurs conditions simples reliées par des opérateurs logiques: ET, OU, OU exclusif (XOR) et NON • Exemples : • x compris entre 2 et 6 : (x > 2) ET (x < 6) • n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0) • deux valeurs et deux seulement sont identiques parmi a, b et c : (a=b) XOR (a=c) XOR (b=c) • L'évaluation d'une condition composée se fait selon des règles présentées généralement dans ce qu'on appelle tables de vérité
  • 19. 19 Instructions conditionnellesConditions composées C1 C2 C1 ET C2 VRAI VRAI VRAI VRAI FAUX FAUX FAUX VRAI FAUX FAUX FAUX FAUX C1 C2 C1 OU C2 VRAI VRAI VRAI VRAI FAUX VRAI FAUX VRAI VRAI FAUX FAUX FAUX C1 C2 C1 XOR C2 VRAI VRAI FAUX VRAI FAUX VRAI FAUX VRAI VRAI FAUX FAUX FAUX C1 NON C1 VRAI FAUX FAUX VRAI ET OU XOR NON
  • 20. 20 Instructions conditionnellesTests imbriqués Les tests peuvent avoir un degré quelconque d'imbrications Si (condition1) alors Sinon Finsi Si (condition2) alors instructionsA Sinon instructionsB Finsi Si (condition3) alors instructionsC Finsi
  • 21. 21 Instructions conditionnellesTests imbriqués Exemple : savoir si un nombre est nul, négatif ou bien positif Variable n : entier Début Ecrire ("entrez un nombre : ") Lire (n) Si (n < 0) alors Ecrire ("Ce nombre est négatif") Finsi Si (n = 0) alors Ecrire ("Ce nombre est nul") Finsi Si (n > 0) alors Ecrire ("Ce nombre est positif") Finsi Si (n < 0) alors Ecrire ("Ce nombre est négatif") Sinon Si (n = 0) alors Ecrire ("Ce nombre est nul") Sinon Ecrire ("Ce nombre est positif") Finsi Finsi Fin
  • 22. 22 Instructions conditionnelles Le prix de photocopies dans un centre de copie varie selon le nombre demandé: 0,5 DH la copie pour un nombre de copies inférieur à 10, 0,4DH pour un nombre compris entre 10 et 20 et 0,3DH au-delà. Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées, qui calcule et affiche le prix à payer Exercice
  • 23. 23 Instructions conditionnelles Variables Nb_copies : entier prix : réel Début Ecrire (« Saisir le nombre de photocopies : ") Lire (Nb_copies) Si (Nb_opies < 10) Alors prix ← Nb_opies *0.5 Sinon Si (Nb_opies < 20) Alors prix ← Nb_opies *0.4 Sinon prix ← Nb_opies *0.3 Finsi Finsi Ecrire (“Le prix à payer est : ”, prix) Fin
  • 24. 24 Instructions itératives: les boucles • Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain nombre de fois • On distingue trois sortes de boucles en langages de programmation : • Les boucles tant que : on y répète des instructions tant qu'une certaine condition est réalisée • Les boucles pour ou avec compteur : on y répète des instructions en faisant évoluer un compteur (variable particulière) entre une valeur initiale et une valeur finale
  • 25. 25 Les boucles Tant que TantQue (condition) instructions FinTantQue condition instructions Fausse Vrai la condition (dite condition de contrôle de la boucle) est évaluée avant chaque itération si la condition est vraie, on exécute instructions (corps de la boucle), puis, on retourne tester la condition. Si elle est encore vraie, on répète l'exécution, … si la condition est fausse, on sort de la boucle et on exécute l'instruction qui est après FinTantQue