Algorithmique
Mr. A. KHALD
1
Génie Civil
1ière année
Année 2022/2023
Plan du cours
 Partie 1: Résolution des problèmes
 Partie 2 : Représentation de données.
 Partie 3 : Exécution de programmes
 Partie 4: Introduction à l’algorithmique
 Partie 5 : Langage de programmation
Partie 1: Introduction à
l’algorithmique
• Matériel et logiciel
• Etapes de conception de logiciels
• Définitions
• Exemples d’algorithmes
• Exemples d’opérations
• Exemple de calcul de volume d’un sphère
• Critères de qualité d’algorithmes
• Composants d’un algorithme
• Langages de Programmation
3
Le materiel
4
Le logiciel
5
Conception de logiciels
1. Résolution du problème
• Étude des besoins (orientée clients)
• Analyse (intrants, traitement, extrants, autres informations)
• Conception de l’algorithme (architecture interne,
interfaces)
6
Conception de logiciels
2. Mise en oeuvre
• Codification, programmation: traduction de l’algorithme
• Jeu de tests, test unitaires, test systèmes
7
Conception de logiciels
3. Exploitation
• Déploiement (installation, documentation, formation)
• Maintenance (mises à jour)
8
L'algorithmique | Origine
L’algorithmique est un terme d’origine arabe,
hommage à Al Khawarizmi
(780-850) auteur d’un ouvrage décrivant des méthodes
de calculs algébriques.
9
Quelques définitions
 En informatique, Un algorithme est une suite finie et
non ambiguë d’opérations ou d'instructions
permettant de résoudre une classe de problèmes.
 Un algorithme prend des données en entrée, exprime
un traitement particulier et fournit des données en
sortie.
10
 C’est un ensemble de règles opératoires rigoureuses,
ordonnant à un processeur d’exécuter dans un ordre
déterminé un nombre fini d’opérations élémentaires ; il
oblige à une programmation structurée.
 Un algorithme est écrit en utilisant un langage de
description d’algorithme (LDA).
 L’algorithme ne doit pas être confondu avec le
programme proprement dit.
11
Exemples d’algorithmes #1
Recette de cuisine
 Nous voulons préparer une recette dans
la cuisine, nous aurons besoin :
➢ Des ingrédients et du matériels
(ces sont des entrées ).
➢ D’une méthode de préparation ou
d’exécution d’opérations.
➢ D’un certain temps.
 Nous aurons finalement la recette prête d’être utilisée.
12
Introduction
 Indication routière est un algorithme.
 Méthode : Il s’agit ici de décrire
une suite ordonnée d’instructions
(aller tout droit, prenez la troisième
à droite. . . ) qui manipulent des
données (carrefours, rues. . . )
pour réaliser la tâche
désirée (aller au restaurant ).
13
Exemples d’opérations
Parmi les opérations que peut réaliser un algorithme :
➢ Lire un nombre du clavier
➢ Effectuer une opération mathématique
➢ Copier une valeur en mémoire
➢ Afficher une réponse à l’écran
14
Entrées/Sorties d’un
algorithme
Un algorithme accepte entrées et produit des sorties :
Entrées : tous les données qui défissent le problème;
Sorties : tous les données <résultat ou solution> que
produit l’algorithme
15
Algorithme
Entrées Sorties
Exemple #1 : La sphère
 Problème :
 Besoin d’un outil pour calculer le volume de sphères de
dimension variable
 Etapes de réalisation de cet outil de calcul :
 Analyse
 Conception
 Codification
 Mise au point
16
Analyse du problème
 Quelles sont les Entrée(s)?
 Le rayon en mètre
 Constante π = 3,1415926535897932384
 Quelles sont les Sortie(s)?
 Le volume en mètre cube
 Quelles sont les Opérations ?
 Demander le rayon à l’utilisateur <<saisie>>
 Calculer le volume avec la formule :
 Volume = 4/3 π Rayon3
 Afficher le volume
17
Conception de l’algorithme
 Dans cette phase, on peut choisir entre deux
façons de conception de l’algorithme:
Pseudo-code
 Pi  3,14159
 Lire Rayon
 Volume  4/3 * Pi * Rayon ^ 3
 Écrire Volume
18
Conception de l’algorithme
 Lors de la conception, la qualité de l’algorithme peut
être discutée:
 ex: Un logiciel rapide est couteux qu’un logiciel lent.
 Il existe trois fondamentaux critères d’un bon
algorithme :
➢ Correct: Il faut que le programme exécute
correctement ses tâches pour lesquelles il a été conçu.
➢ Complet: Il faut que le programme considère tous les
cas possibles et donne un bon résultat dans chaque cas.
➢ Efficace: Il faut que le programme exécute sa tâche
avec efficacité de telle sorte qu’il se déroule en un
temps minimal et qu’il consomme un minimum de
ressources
19
Mise au point
 Réalisation des tests pour s’assurer de la qualité du
programme.
 Exemple de jeu de tests
20
Entrée(s) Sortie(s)
Rayon Volume
1 4,1887
2 33,5103
0 0
-1 Erreur
Le langage de description
d’algorithme
 Ce langage utilise un ensemble de mots clés et de structures
permettant de décrire de manière complète, claire, l’ensemble des
opérations à exécuter sur des données pour obtenir des résultats.
 L’avantage d’un tel langage est de pouvoir être facilement transcrit
dans un langage de programmation structuré (Pascal, C…).
Représentation d’un
algorithme
 Historiquement, deux façons pour représenter un
algorithme:
 L’Organigramme [Morphogramme]: représentation
graphique avec des symboles (carrés, losanges, etc.)
+ offre une vue d’ensemble de l’algorithme
représentation quasiment abandonnée aujourd'hui
 Le pseudo-code: représentation textuelle avec une série
de conventions ressemblant à un langage de
programmation (sans les problèmes de syntaxe)
+ plus pratique pour écrire un algorithme
+ représentation largement utilisée
22
Représentation d’un
algorithme
 Exemple #1 pseudo-code et organigramme
23
Algorithme #test
LIRE Nom, Numero, TotHeures
SI TotHeures > 40 ALORS
HeuresSup <- TotHeures - 40
ÉCRIRE Nom, Numero, HeuresSup
FINSI
Fin
TotHeures > 40? Oui
Non
HeuresSup <- TotHeures - 40
Écrire Nom, Numero,
HeuresSup
Lire Nom, Numero,
TotHeures
Début
Structure d’un algorithme
 Pour résumer, la structure générale d’un algorithme
écrit en pseudo-code est comme suit :
24
Algorithme : Nom d’algorithme
Entrées : Données du problème
Sorties : Données résultat du problème
DEBUT
…
Opérations
…..
FIN
Entête
Corps
Structure d’un algorithme
 L’en-tête : Il permet tout simplement d’identifier un
algorithme.
 Les déclarations : C’est une liste exhaustive des
objets, grandeurs utilisés et manipulés dans le corps
de l’algorithme : cette liste est placée en début
d’algorithme.
 Le corps : Dans cette partie de l’algorithme, sont
placées les tâches (instructions, opérations…) à
exécuter.
 Les commentaires : Pour permettre une
interprétation aisée de l’algorithme (l’utilisation de
commentaires est vivement conseillée).
Exemple : puissance d’un
nombre
 Ex: calcul de x2k, Le problème est bien décrit dès
qu’on connaît les valeurs de x et de k (deux variables).
 Le problème est résolu après l’exécution d’une suite
d’instructions du type
 puissance←puissance2
 Le résultat est décrit par la valeur courante de la variable
puissance. !
 Les interactions avec l’utilisateur sont également décrites
par l’algorithme grâce à des instructions d’entrée/sortie
(ex: entrée de x et k par l’utilisateur et sortie de
puissance).
26
Exemple : puissance d’un
nombre
27
Composants d’un
algorithme
28
Langage de programmation
 Pourquoi un langage de programmation ?
➢ L’ordinateur ne sait exécuter qu’un certain nombre d’opérations
élémentaires.
➢ L’ordinateur ne comprend que le langage machine.
➢ Tout type d’ordinateur a son propre langage machine
 Nécessité d’un langage commun entre le programmeur et
l’ordinateur
➢ Utilisable sur n’importe quel ordinateur.
➢ Destiné à formuler un algorithme.
➢ Comporte une syntaxe et une sémantique.
➢ Exemples : C, C++, Pascal, Delphi, Fortran, Java, PHP, …
29
Langage de programmation
 Quel que soit le langage de programmation, il est
nécessaire de le traduire en langage machine
1. Compilation :
o L’ensemble du programme ( écrit en langage de programmation)
est traduit en langage machine.
o La suite d’instructions ainsi obtenue est exécutée par l’ordinateur.
2. Interprétation :
 Les instructions (en langage de programmation) sont traduites
l’une après l’autre en langage machine et exécutées
directement.
 Traduction et exécution à la volée.
30
Langage de programmation
 Algorithme :
 Une suite finie d’instructions élémentaires.
 Est écrit dans un langage universel ‘pseudo-code’.
 Est indépendant de langage de programmation.
 Sert à résoudre un problème informatique.
 Programme :
 Vient en aval de l’algorithme.
 Est écrit dans un langage de programmation.
 Résultat de la traduction de l’algorithme.
 Est indépendant de l’architecture de l’ordinateur.
31
Partie 2: Concepts de variable et affectation
• Eléments de base
• Notion de variable
• Règles de nomination
• Types de variables
• Déclaration de variables
• Notion de Constante
• Notion d’affectation
• Travaux dirigés
32
Eléments de base
 Un algorithme est formé de quatre types
d’instructions considérées comme des petites briques
de base :
l’affectation de variables
 la lecture et/ou l’écriture
 les tests
 les boucles
33
Variables
34
Mémoire vive
❑ La mémoire vive stocke les logiciels en cours
d’exécution
❑ La mémoire contient des cases mémoires stockant les
données.
35
Notion de variable
❑ Une variable désigne une case (emplacement)
mémoire dont le contenu peut changer au cours
d’exécution d’un algorithme/logiciel (d’où le nom de
variable)
❑ Une variable est définit par :
❖un nom (i.e., Identificateur)
❖un type
❖Une valeur
36
Règles de nominations(1)
Le choix du nom d’une variable est soumis à des règles qui
varient
selon le langage, mais en général:
❑ Le nom doit commencer par une lettre alphabétique
❑ Exemples : « E1 » (« 1E » n’est pas valide)
❑ Le nom doit être constitué uniquement de lettres, de
chiffres et du soulignement (« _ ») (Éviter les caractères
de ponctuation et les espaces)
❑ Exemples corrects: « EMG2022», « EMG_2022»
❑ Exemples incorrects : « EMG 2022 » , « EMG;2022 »
37
Règles de nominations(2)
❑ Le nom doit être différent des mots réservés (par
exemple en C: int, float, double, switch, case, for,
main, return, …)
❑ La longueur du nom doit être inférieure à la taille
maximale spécifiée par le langage utilisé
38
Règles de nominations(3)
❑ Pour que le code soit lisible , il faut choisir des noms
significatifs qui décrivent les données manipulées
❑ Exemples :
❑ NoteEtudiant, Prix_TTC, Prix_HT
❑ NE , PTTC, PHT
39
Types(1)
❑ Le type d’une variable détermine l’ensemble -intervalle des
valeurs qu’elle peut prendre.
❑ Les types offerts par la plus part des langages sont:
1. Type numérique (entier ou réel) :
➢ Byte (codé sur 1octet): si nombre est signé [-27,27[ sinon [0, 28
[
➢ Entier court (codé sur 2 octets) :si nombre est signé [-215,215[
➢ Entier long (codé sur 4 octets): si le nombre est signé [-231,231[
➢ Réel simple précision (codé sur 4 octets)
➢ Réel double précision (codé sur 8 octets)
40
Types (2)
❑ Les types offerts par la plus part des langages sont:
 Logique ou booléen: deux valeurs VRAI ou
FAUX
 Caractère: lettres majuscules, minuscules,
chiffres, symboles,..
Exemples : ’A’, ’b’, ’1’, ’?’, …
 Chaîne de caractère: toute suite de
caractères
Exemples: " " , " Nom, Prénom", "code
postale: 1000", …
41
Déclaration de variables
❑ toute variable utilisée dans un programme doit avoir
fait l’objet d’une déclaration préalable.
❑ En pseudo-code, la déclaration de variables est
effectuée par la forme suivante :
❑ Exemple:
42
Variables nomVariable1, nomVariable2 : type
Variables i, j, k : entier
x, y : réel
OK: booléen
Ch1, ch2 : chaîne de
caractères
Constantes
43
Constantes(1)
❑ Une constante est une variable dont la valeur ne
change pas au cours de l'exécution du programme.
❑ Pour déclarer une constante, on utilise la forme
suivante :
❑ Par convention les noms de constantes sont en majuscules
44
Constante NOM_CONSTANTE = valeur : type,…
Constantes (2)
❑ Exemples :
 Constante PI=3.14 : réel
 MAX = 100 : entier
 MIN = -123 : entier signé
45
Affectation
46
Affectation
 L’affectation est une opération qui consiste à attribuer
une valeur à une variable (c’est-à-dire remplir ou
modifier le contenu d'une zone mémoire)
 En pseudo-code, l'affectation est notée par le signe ←
 On dit « Var reçoit la valeur de e », « la valeur de e est
affecté à Var »
 Caractéristiques :
 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
47
Var← e : attribue la valeur de e à la variable Var
Affectation (2)
 Exemple 1
Variable A en Entier
Début
A ← 34
A ← 12
Fin
 Exemple 2
Variable A en Entier
Début
A ← 12
A ← 34
Fin
Affectation (3)
Exemples d’affectation :
 Soient i, j, k : entier; x :réel; ok :booléen; ch1,ch2
:chaine de caractères
 Que doit contenir les variables à la fin d’éxecution ?
49
i ←1
j ←i
k ←i+j
x ←10.3
OK ←FAUX
ch1 ← " IMBT"
ch2 ←ch1
x ←4
x ←j
Affectation (4)
Exemples d’affectation :
 Soient
 i, j, k : entier;
 x :réel;
 ok :booléen;
 ch1,ch2 :chaine de caractères
 Ces exemples ci-dessus sont invalides
50
i ←10.3
OK ← "IMBT"
j ←x
Affectation (5)
Remarques :
❑ Lors d’une affectation, la valeur de droite est affectée
à la variable de gauche. Ainsi, A←B est différente de
B←A
❑ l'affectation est différente d'une équation
mathématique :
Les opérations x ← x+1 et x ← x-1 sont différents des
équations
 x = x-1 et x = x-1
A+1 ← 3 n'est pas possible en langages de
programmation et n'est pas équivalente à A ← 2
❑ Certains langages donnent des valeurs par défaut aux
variables déclarées. Pour éviter tout problème il est
préférable d'initialiser les variables déclarées.
51
TD Exercices
52
Affectation : exercice #1
Donnez les valeurs des variables A, B et C après
exécution des instructions
suivantes ?
53
Variables A, B, C: Entier
Début
A ← 7
B ← 17
A ← B
B ← A+5
C ← A + B
C ← B – A
Fin
Affectation : exercice #2
Donnez les valeurs des variables A et B après exécution des
instructions suivantes ?
Les deux dernières instructions permettent-elles d’échanger les
valeurs de A et B ?
54
Variables A, B : Entier
Début
A ← 6
B ← 2
A ← B
B ← A
Fin
Affectation : exercice #3
Donnez les valeurs des variables A et B après exécution
des instructions suivantes ?
55
Variables A, B, C : Entier
Début
A ← 3
B ← 10
C ← A + B
B ← A + B
A ← C
Fin
Affectation: échange de
chandails
56
Affectation : Exercice#4
Écrire un algorithme permettant
d’échanger les valeurs de deux
variables A et B ?
57

Algorithmique Partie...............................

  • 1.
    Algorithmique Mr. A. KHALD 1 GénieCivil 1ière année Année 2022/2023
  • 2.
    Plan du cours Partie 1: Résolution des problèmes  Partie 2 : Représentation de données.  Partie 3 : Exécution de programmes  Partie 4: Introduction à l’algorithmique  Partie 5 : Langage de programmation
  • 3.
    Partie 1: Introductionà l’algorithmique • Matériel et logiciel • Etapes de conception de logiciels • Définitions • Exemples d’algorithmes • Exemples d’opérations • Exemple de calcul de volume d’un sphère • Critères de qualité d’algorithmes • Composants d’un algorithme • Langages de Programmation 3
  • 4.
  • 5.
  • 6.
    Conception de logiciels 1.Résolution du problème • Étude des besoins (orientée clients) • Analyse (intrants, traitement, extrants, autres informations) • Conception de l’algorithme (architecture interne, interfaces) 6
  • 7.
    Conception de logiciels 2.Mise en oeuvre • Codification, programmation: traduction de l’algorithme • Jeu de tests, test unitaires, test systèmes 7
  • 8.
    Conception de logiciels 3.Exploitation • Déploiement (installation, documentation, formation) • Maintenance (mises à jour) 8
  • 9.
    L'algorithmique | Origine L’algorithmiqueest un terme d’origine arabe, hommage à Al Khawarizmi (780-850) auteur d’un ouvrage décrivant des méthodes de calculs algébriques. 9
  • 10.
    Quelques définitions  Eninformatique, Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre une classe de problèmes.  Un algorithme prend des données en entrée, exprime un traitement particulier et fournit des données en sortie. 10
  • 11.
     C’est unensemble de règles opératoires rigoureuses, ordonnant à un processeur d’exécuter dans un ordre déterminé un nombre fini d’opérations élémentaires ; il oblige à une programmation structurée.  Un algorithme est écrit en utilisant un langage de description d’algorithme (LDA).  L’algorithme ne doit pas être confondu avec le programme proprement dit. 11
  • 12.
    Exemples d’algorithmes #1 Recettede cuisine  Nous voulons préparer une recette dans la cuisine, nous aurons besoin : ➢ Des ingrédients et du matériels (ces sont des entrées ). ➢ D’une méthode de préparation ou d’exécution d’opérations. ➢ D’un certain temps.  Nous aurons finalement la recette prête d’être utilisée. 12
  • 13.
    Introduction  Indication routièreest un algorithme.  Méthode : Il s’agit ici de décrire une suite ordonnée d’instructions (aller tout droit, prenez la troisième à droite. . . ) qui manipulent des données (carrefours, rues. . . ) pour réaliser la tâche désirée (aller au restaurant ). 13
  • 14.
    Exemples d’opérations Parmi lesopérations que peut réaliser un algorithme : ➢ Lire un nombre du clavier ➢ Effectuer une opération mathématique ➢ Copier une valeur en mémoire ➢ Afficher une réponse à l’écran 14
  • 15.
    Entrées/Sorties d’un algorithme Un algorithmeaccepte entrées et produit des sorties : Entrées : tous les données qui défissent le problème; Sorties : tous les données <résultat ou solution> que produit l’algorithme 15 Algorithme Entrées Sorties
  • 16.
    Exemple #1 :La sphère  Problème :  Besoin d’un outil pour calculer le volume de sphères de dimension variable  Etapes de réalisation de cet outil de calcul :  Analyse  Conception  Codification  Mise au point 16
  • 17.
    Analyse du problème Quelles sont les Entrée(s)?  Le rayon en mètre  Constante π = 3,1415926535897932384  Quelles sont les Sortie(s)?  Le volume en mètre cube  Quelles sont les Opérations ?  Demander le rayon à l’utilisateur <<saisie>>  Calculer le volume avec la formule :  Volume = 4/3 π Rayon3  Afficher le volume 17
  • 18.
    Conception de l’algorithme Dans cette phase, on peut choisir entre deux façons de conception de l’algorithme: Pseudo-code  Pi  3,14159  Lire Rayon  Volume  4/3 * Pi * Rayon ^ 3  Écrire Volume 18
  • 19.
    Conception de l’algorithme Lors de la conception, la qualité de l’algorithme peut être discutée:  ex: Un logiciel rapide est couteux qu’un logiciel lent.  Il existe trois fondamentaux critères d’un bon algorithme : ➢ Correct: Il faut que le programme exécute correctement ses tâches pour lesquelles il a été conçu. ➢ Complet: Il faut que le programme considère tous les cas possibles et donne un bon résultat dans chaque cas. ➢ Efficace: Il faut que le programme exécute sa tâche avec efficacité de telle sorte qu’il se déroule en un temps minimal et qu’il consomme un minimum de ressources 19
  • 20.
    Mise au point Réalisation des tests pour s’assurer de la qualité du programme.  Exemple de jeu de tests 20 Entrée(s) Sortie(s) Rayon Volume 1 4,1887 2 33,5103 0 0 -1 Erreur
  • 21.
    Le langage dedescription d’algorithme  Ce langage utilise un ensemble de mots clés et de structures permettant de décrire de manière complète, claire, l’ensemble des opérations à exécuter sur des données pour obtenir des résultats.  L’avantage d’un tel langage est de pouvoir être facilement transcrit dans un langage de programmation structuré (Pascal, C…).
  • 22.
    Représentation d’un algorithme  Historiquement,deux façons pour représenter un algorithme:  L’Organigramme [Morphogramme]: représentation graphique avec des symboles (carrés, losanges, etc.) + offre une vue d’ensemble de l’algorithme représentation quasiment abandonnée aujourd'hui  Le pseudo-code: représentation textuelle avec une série de conventions ressemblant à un langage de programmation (sans les problèmes de syntaxe) + plus pratique pour écrire un algorithme + représentation largement utilisée 22
  • 23.
    Représentation d’un algorithme  Exemple#1 pseudo-code et organigramme 23 Algorithme #test LIRE Nom, Numero, TotHeures SI TotHeures > 40 ALORS HeuresSup <- TotHeures - 40 ÉCRIRE Nom, Numero, HeuresSup FINSI Fin TotHeures > 40? Oui Non HeuresSup <- TotHeures - 40 Écrire Nom, Numero, HeuresSup Lire Nom, Numero, TotHeures Début
  • 24.
    Structure d’un algorithme Pour résumer, la structure générale d’un algorithme écrit en pseudo-code est comme suit : 24 Algorithme : Nom d’algorithme Entrées : Données du problème Sorties : Données résultat du problème DEBUT … Opérations ….. FIN Entête Corps
  • 25.
    Structure d’un algorithme L’en-tête : Il permet tout simplement d’identifier un algorithme.  Les déclarations : C’est une liste exhaustive des objets, grandeurs utilisés et manipulés dans le corps de l’algorithme : cette liste est placée en début d’algorithme.  Le corps : Dans cette partie de l’algorithme, sont placées les tâches (instructions, opérations…) à exécuter.  Les commentaires : Pour permettre une interprétation aisée de l’algorithme (l’utilisation de commentaires est vivement conseillée).
  • 26.
    Exemple : puissanced’un nombre  Ex: calcul de x2k, Le problème est bien décrit dès qu’on connaît les valeurs de x et de k (deux variables).  Le problème est résolu après l’exécution d’une suite d’instructions du type  puissance←puissance2  Le résultat est décrit par la valeur courante de la variable puissance. !  Les interactions avec l’utilisateur sont également décrites par l’algorithme grâce à des instructions d’entrée/sortie (ex: entrée de x et k par l’utilisateur et sortie de puissance). 26
  • 27.
    Exemple : puissanced’un nombre 27
  • 28.
  • 29.
    Langage de programmation Pourquoi un langage de programmation ? ➢ L’ordinateur ne sait exécuter qu’un certain nombre d’opérations élémentaires. ➢ L’ordinateur ne comprend que le langage machine. ➢ Tout type d’ordinateur a son propre langage machine  Nécessité d’un langage commun entre le programmeur et l’ordinateur ➢ Utilisable sur n’importe quel ordinateur. ➢ Destiné à formuler un algorithme. ➢ Comporte une syntaxe et une sémantique. ➢ Exemples : C, C++, Pascal, Delphi, Fortran, Java, PHP, … 29
  • 30.
    Langage de programmation Quel que soit le langage de programmation, il est nécessaire de le traduire en langage machine 1. Compilation : o L’ensemble du programme ( écrit en langage de programmation) est traduit en langage machine. o La suite d’instructions ainsi obtenue est exécutée par l’ordinateur. 2. Interprétation :  Les instructions (en langage de programmation) sont traduites l’une après l’autre en langage machine et exécutées directement.  Traduction et exécution à la volée. 30
  • 31.
    Langage de programmation Algorithme :  Une suite finie d’instructions élémentaires.  Est écrit dans un langage universel ‘pseudo-code’.  Est indépendant de langage de programmation.  Sert à résoudre un problème informatique.  Programme :  Vient en aval de l’algorithme.  Est écrit dans un langage de programmation.  Résultat de la traduction de l’algorithme.  Est indépendant de l’architecture de l’ordinateur. 31
  • 32.
    Partie 2: Conceptsde variable et affectation • Eléments de base • Notion de variable • Règles de nomination • Types de variables • Déclaration de variables • Notion de Constante • Notion d’affectation • Travaux dirigés 32
  • 33.
    Eléments de base Un algorithme est formé de quatre types d’instructions considérées comme des petites briques de base : l’affectation de variables  la lecture et/ou l’écriture  les tests  les boucles 33
  • 34.
  • 35.
    Mémoire vive ❑ Lamémoire vive stocke les logiciels en cours d’exécution ❑ La mémoire contient des cases mémoires stockant les données. 35
  • 36.
    Notion de variable ❑Une variable désigne une case (emplacement) mémoire dont le contenu peut changer au cours d’exécution d’un algorithme/logiciel (d’où le nom de variable) ❑ Une variable est définit par : ❖un nom (i.e., Identificateur) ❖un type ❖Une valeur 36
  • 37.
    Règles de nominations(1) Lechoix du nom d’une variable est soumis à des règles qui varient selon le langage, mais en général: ❑ Le nom doit commencer par une lettre alphabétique ❑ Exemples : « E1 » (« 1E » n’est pas valide) ❑ Le nom doit être constitué uniquement de lettres, de chiffres et du soulignement (« _ ») (Éviter les caractères de ponctuation et les espaces) ❑ Exemples corrects: « EMG2022», « EMG_2022» ❑ Exemples incorrects : « EMG 2022 » , « EMG;2022 » 37
  • 38.
    Règles de nominations(2) ❑Le nom doit être différent des mots réservés (par exemple en C: int, float, double, switch, case, for, main, return, …) ❑ La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé 38
  • 39.
    Règles de nominations(3) ❑Pour que le code soit lisible , il faut choisir des noms significatifs qui décrivent les données manipulées ❑ Exemples : ❑ NoteEtudiant, Prix_TTC, Prix_HT ❑ NE , PTTC, PHT 39
  • 40.
    Types(1) ❑ Le typed’une variable détermine l’ensemble -intervalle des valeurs qu’elle peut prendre. ❑ Les types offerts par la plus part des langages sont: 1. Type numérique (entier ou réel) : ➢ Byte (codé sur 1octet): si nombre est signé [-27,27[ sinon [0, 28 [ ➢ Entier court (codé sur 2 octets) :si nombre est signé [-215,215[ ➢ Entier long (codé sur 4 octets): si le nombre est signé [-231,231[ ➢ Réel simple précision (codé sur 4 octets) ➢ Réel double précision (codé sur 8 octets) 40
  • 41.
    Types (2) ❑ Lestypes offerts par la plus part des langages sont:  Logique ou booléen: deux valeurs VRAI ou FAUX  Caractère: lettres majuscules, minuscules, chiffres, symboles,.. Exemples : ’A’, ’b’, ’1’, ’?’, …  Chaîne de caractère: toute suite de caractères Exemples: " " , " Nom, Prénom", "code postale: 1000", … 41
  • 42.
    Déclaration de variables ❑toute variable utilisée dans un programme doit avoir fait l’objet d’une déclaration préalable. ❑ En pseudo-code, la déclaration de variables est effectuée par la forme suivante : ❑ Exemple: 42 Variables nomVariable1, nomVariable2 : type Variables i, j, k : entier x, y : réel OK: booléen Ch1, ch2 : chaîne de caractères
  • 43.
  • 44.
    Constantes(1) ❑ Une constanteest une variable dont la valeur ne change pas au cours de l'exécution du programme. ❑ Pour déclarer une constante, on utilise la forme suivante : ❑ Par convention les noms de constantes sont en majuscules 44 Constante NOM_CONSTANTE = valeur : type,…
  • 45.
    Constantes (2) ❑ Exemples:  Constante PI=3.14 : réel  MAX = 100 : entier  MIN = -123 : entier signé 45
  • 46.
  • 47.
    Affectation  L’affectation estune opération qui consiste à attribuer une valeur à une variable (c’est-à-dire remplir ou modifier le contenu d'une zone mémoire)  En pseudo-code, l'affectation est notée par le signe ←  On dit « Var reçoit la valeur de e », « la valeur de e est affecté à Var »  Caractéristiques :  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 47 Var← e : attribue la valeur de e à la variable Var
  • 48.
    Affectation (2)  Exemple1 Variable A en Entier Début A ← 34 A ← 12 Fin  Exemple 2 Variable A en Entier Début A ← 12 A ← 34 Fin
  • 49.
    Affectation (3) Exemples d’affectation:  Soient i, j, k : entier; x :réel; ok :booléen; ch1,ch2 :chaine de caractères  Que doit contenir les variables à la fin d’éxecution ? 49 i ←1 j ←i k ←i+j x ←10.3 OK ←FAUX ch1 ← " IMBT" ch2 ←ch1 x ←4 x ←j
  • 50.
    Affectation (4) Exemples d’affectation:  Soient  i, j, k : entier;  x :réel;  ok :booléen;  ch1,ch2 :chaine de caractères  Ces exemples ci-dessus sont invalides 50 i ←10.3 OK ← "IMBT" j ←x
  • 51.
    Affectation (5) Remarques : ❑Lors d’une affectation, la valeur de droite est affectée à la variable de gauche. Ainsi, A←B est différente de B←A ❑ l'affectation est différente d'une équation mathématique : Les opérations x ← x+1 et x ← x-1 sont différents des équations  x = x-1 et x = x-1 A+1 ← 3 n'est pas possible en langages de programmation et n'est pas équivalente à A ← 2 ❑ Certains langages donnent des valeurs par défaut aux variables déclarées. Pour éviter tout problème il est préférable d'initialiser les variables déclarées. 51
  • 52.
  • 53.
    Affectation : exercice#1 Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ? 53 Variables A, B, C: Entier Début A ← 7 B ← 17 A ← B B ← A+5 C ← A + B C ← B – A Fin
  • 54.
    Affectation : exercice#2 Donnez les valeurs des variables A et B après exécution des instructions suivantes ? Les deux dernières instructions permettent-elles d’échanger les valeurs de A et B ? 54 Variables A, B : Entier Début A ← 6 B ← 2 A ← B B ← A Fin
  • 55.
    Affectation : exercice#3 Donnez les valeurs des variables A et B après exécution des instructions suivantes ? 55 Variables A, B, C : Entier Début A ← 3 B ← 10 C ← A + B B ← A + B A ← C Fin
  • 56.
  • 57.
    Affectation : Exercice#4 Écrireun algorithme permettant d’échanger les valeurs de deux variables A et B ? 57