Éléments de base de l’algorithmique
Année universitaire 2020/2021 – Semestre 1
1
Éléments de contenu
Les objets algorithmiques
Structure générale d’un algorithme
Instructions élémentaires
2
Les objets algorithmiques
Pour chaque algorithme, on a besoin de données pour fournir des résultats.
Données et résultats sont appelés des objets algorithmiques. On distingue :
Les objets en entrée : Ce sont les données fournies à l'algorithme.
Les objets en sortie : Ce sont les résultats produits par l'algorithme.
Les objets internes ou intermédiaires : Ce sont les objets de manœuvre de
l'algorithme servant aux manipulations internes (compteurs, objets
intermédiaires de stockage,...).
Exemple : On se propose de permuter le contenu de deux objets A et B. Pour ce
faire, on aura besoin des objets A et B en entrée et d'un troisième objet
intermédiaire C puis on procédera comme suit :
On met le contenu de A dans C.
On met le contenu de B dans A.
On met le contenu de C dans B.
Les objets A et B serviront aussi pour objets de sortie.
3
Les objets algorithmiques
Les objets algorithmiques, traités par l’ordinateur, sont stockés dans
des cases mémoires dont la gestion est prise en charge par
l’ordinateur.
En mémoire, les cases sont reconnues à l’aide de leurs adresses, on
parle d’adresse mémoire.
Pour définir un objet algorithmique, on doit préciser son:
Son nom (identificateur),
Sa nature: Il s'agit de préciser si un objet est une constante (Const) ou
une variable (Var).
Son type
4
Identificateurs (1)
Un identificateur est un mot constitué d’un nombre quelconque de
caractères pris dans la liste suivante :
tous les caractères minuscules de a à z
tous les caractères majuscules de A à Z
tous les chiffres de 0 à 9
le caractère _
Pour être valable, un identificateur ne doit pas contenir d’autres
caractères que cette liste, et ne doit commencer par un chiffre.
Remarque : Pour la lisibilité des programmes, il faut opter à des
choix qui doivent être simples et significatifs. Ainsi, MONT est un
meilleur choix que X pour désigner le montant d’une facture.
5
Identificateurs (2)
Exemples :
Les identificateurs suivants sont valables :
Hellow , Ma_Procedure, _1, Numero2
Ceux-ci ne le sont pas :
1var (commence par un chiffre)
Question ? (caractère ? interdit)
Arrêt (commence ê interdit)
Demi-mot (caractère - interdit)
Deux mots (espace interdit)
6
Nature
Constante
Une constante est une donnée dont la valeur ne peut pas varier.
Une constante ne peut être initialisée qu’à la déclaration.
Variables
Les variables contiennent les données, les résultats et, en cours de
programme, certaines valeurs intermédiaires.
Comme son nom l'indique, le contenu d'une variable peut être modifié au
cours d'un même programme.
Une variable est une zone mémoire qui possède:
un nom (identificateur) + un type
7
Exemple d’objets algorithmiques
les objets algorithmiques utilisés dans un problème de
résolution d'une équation du premier degré à une seule
inconnue: ax + b =0.
Nom
Sens
Type
Utilisation Nature
Advertisement
a
b
x
Premier coefficient de l'équation Réel non nul
Deuxième
l'équation
coefficient
de
Solution de l'équation
Réel
Réel
E
E
S
Var
Var
Var
8
Structure générale d’un algorithme
9
Structure générale d’un algorithme
-- Auteur
-- Date d’écriture
-- Fonction
: Nom de l’auteur
: Date d’écriture de l’algorithme
: Ce que doit faire l’algorithme
En-tête
Algorithme Nom_algorithme
Const
Liste des constantes avec leurs valeurs
Var
Liste des variables avec leurs types
--…
--…
Debut
Instruction 1
--…
Instruction 2
--…
...
Instruction n
--…
Fin
Ligne
commentaire
Partie
déclarative
Corps de
l’algorithme
10
Partie déclarative
Avant d'utiliser n'importe quel objet algorithmique, il
faut le déclarerau niveau de la partie déclarative de
l'algorithme.
Ces objets peuvent être de deux natures à savoir :
constante ou variable.
11
Définition des constantes
Const
identificateur (Type) = valeur
Exemple :
a (Entier) = 5
b (Réel) = 2.5
12
Définition des variables
sert à déclarer les différentes variables utilisées dans
l'algorithme.
Var
identificateur (Type)
Exemple :
Var
x (Entier)
y (Entier)
z (Réel)
r (Entier)
-- Dividende.
-- Diviseur différent de zéro.
-- Quotient.
-- Reste de la division.
Advertisement
13
Corps de l’algorithme
Contient l’ensemble des instructions applicables sur l’ensemble
des objets algorithmiques déjà déclarés au niveau de la partie
divisent
précédente
essentiellement en trois catégories :
(déclarative). Ces
instructions
se
Les instructions simples : Entrée de données, sortie de
résultats, affectation.
Les structures décisionnelles (conditionnelles) : Ce sont des
structures de contrôle permettant de choisir entre les
traitements.
Les structures itératives (répétitives) : Ce sont structures de
contrôle permettant de répéter un ensemble de traitements
autant de fois qu’on veut.
14
Les types de données simples
15
Types simples
Les types indiquent l'ensemble de valeurs que peut prendre une variable,
ainsi que les opérations qui sont autorisées.
Type
Valeurs possibles
Entier
Réel ou décimal
(l'ensemble des entiers relatifs )
-12 ; 0 ; 125 ; etc.
sous-ensemble de l'ensemble des nombres
rationnels
12.36 ; 8 ; 14.52 ; etc.
Booléen ou Logique
Vrai ou Faux
Caractère (pour les données alpha-
numériques)
les chiffres, les lettres minuscules et
majuscules et les symboles spéciaux
Chaîne de caractères
l’ensemble des chaînes de caractères que l’ont
peut former en juxtaposant des caractères
"Test + examen" "note"
16
Opérateurs
Une variable n’est complètement définie qu’après avoir
défini
l’ensemble de ses valeurs et les opérateurs qui
peuvent être appliqués sur ces valeurs. Généralement, il
y a un ensemble d’opérateurs pour chaque type de
données. Nous citons :
les opérateurs arithmétiques,
les opérateurs logiques,
les opérateurs relationnels.
opérateurs de chaînes de caractères
17
Opérateurs arithmétiques
Les opérateurs arithmétiques opèrent sur les données numériques
(entières ou réelles)
+
-
*
/
-
Addition
Soustraction
Multiplication
Division
Puissance
Moins unaire
(signe)
A+B
A-B
A*B
A/B
A**B
-A
18
Opérateurs Logiques (1)
Advertisement
Les opérateurs logiques opèrent sur des données logiques:
NON - ET - OU - XOR
C
V
F
NON C
F
V
C1
C2
C1 ET C2
C1 OU C2
C1 XOR C2
V
V
F
F
V
F
V
F
V
F
F
F
V
V
V
F
F
V
V
F
19
Opérateurs Logiques (2)
Exercice :
Soient 3 variables logiques x, y et z. On suppose que ces variables ont
respectivement les valeurs vrai, faux, vrai. Quelle est la valeur de vérité
des expressions suivantes:
Non (x et y)
(x ou z) et ( y et z)
((x et non y) ou z) xor y
Non ((x xor y) ou z)
20
Opérateurs relationnels
Les opérateurs relationnels servent à comparer deux variables et à
fournir un résultat vrai ou faux
<
<=
>
>=
=
<>
Inférieur à
Inférieur ou égal à
Supérieur à
Supérieur ou égal à
égal à
Différent de
21
Opérateurs relationnels
Exercice : Soient 3 variables entières x, y et z. On suppose que ces variables
ont respectivement les valeurs 2, 3 et 5. Quelle est la valeur de vérité des
expressions suivantes:
•
•
(x < y) ou (non (z<>x))
(x >= y) xor (x <> y)
22
Opérateurs de chaînes de caractères
<Chaine1> Concat <chaine2>
La concaténation de deux chaînes de caractères revoie une nouvelle chaîne
obtenue en juxtaposant ces deux chaînes
Exemple:
"ordinateur" concat "portable" = "ordinateurportable"
Longueur(<chaîne>)
renvoie le nombre de caractères contenus dans la chaîne
Remarque: il ne faut pas oublier le caractère ESPACE
23
Priorité des opérateurs
Advertisement
Pour éviter les ambiguïtés, les opérateurs sont munis de priorités
suivant l'ordre ci-dessous:
Priorité 1 (la plus forte) : ()
Priorité 2
: Non
Priorité 3 : **
Priorité 4
Priorité 5
Priorité 6 (la plus faible) : < <= > >= <> =
: * / Mod div ET
: + - OU XOR
24
Les instructions simples
25
Instruction d'affectation (1)
L'opération d’affectation consiste à affecter une valeur à un objet.
<identificateur> <valeur>
où valeur peut désigner :
Une constante : mais qui a le même type que l'identificateur.
Une variable : Exemple: Montant Montant_Initial
Une expression : Dont l'expression d'évaluation produit un résultat de
même type que l'identificateur. Exemple : Somme 5 + 10
Exemple: Nom "ALKHAWARISMI"
Avant l'exécution de cette opération, la valeur de la variable nom est la
chaîne vide
après l'exécution de cette instruction la valeur de la variable nom
devient "ALKHAWARISMI".
26
Instruction d'affectation (2)
Exemple :
Écrire un algorithme permettant de calculer le nombre de caractères d'un
mot donné
Solution:
Algorithme calcul_du_nombre_de_caractères
Var
Nom (chaîne de caractères)
Nb_car (entier)
Debut
Nom '"Mourad"
Nb_car Longueur (Nom)
Fin
Pourquoi cet Algorithme est limité ?
• Il travaille toujours sur le même nom.
• Le résultat n'est pas affiché sur l'écran.
On a donc besoin d'instructions de saisie et d'affichage (Lecture/Écriture).
27
Instructions d'entrée et de sortie
Instruction de saisie (entrée d'information): permet de
récupérer une valeur sur un périphérique (clavier)
Lire <identificateur1, identificateur2,..>
Instruction d'affichage: permet l'édition d'une valeur sur un
périphérique de sortie (l'écran, l'imprimante).
Ecrire <expression1, expression2,...>
Exemples
• Lire (Nom) : L'ordinateur attend l'entrée du nom à partir du clavier.
• Ecrire (Nb_car): L'ordinateur affiche le contenu de la variable Nb_car.
28
Exemple
A partir de la saisie de 3 nombres écrire l'algorithme permettant de calculer
leur somme, leur produit et leur moyenne.
Algorithme Math
Var
N1, N2, N3, Som, Pro, Moy (Réel)
Début
écrire (''Entrer le premier nombre'')
lire (N1)
écrire (''Entrer le deuxième nombre'')
lire (N2)
écrire (''Entrer le troisième nombre'')
lire (N3)
Som N1 + N2 + N3
Pro N1 N2 N3
Moy Som / 3 --ou Moy (N1+N2+N3) /3
écrire ('' La somme est: '',Som)
écrire ('' Le produit est : '', Pro)
écrire ('' la moyenne est : '', Moy)
Fin
29