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
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
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
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
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,…
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
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