Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
ALGORITHME
EFC - 2019
I. Qu’est-ce qu’un algorithme ?
De façon intuitive, un algorithme décrit un enchaînement d’opérations permettant, en un temps
fini, de résoudre toutes les instances d'un problème donné.
Partant d’une instance du problème (les données en entrée), il fournit un résultat correspondant
à la solution du problème sur cette instance.
L’algorithme est une suite d’instructions précises alignés les unes après les autres, conduisant
à un résultat. (C’est les étapes à suivre pour la résolution du problème donné).
Il n’y a pas d’algorithme si on n’a pas de problème.
Remarques :
Un algorithme décrit un traitement sur un nombre fini de données structurées. Ces données
peuvent avoir une structure élémentaire (nombres, caractères, etc.), ou une structure plus
élaborée (liste de nombres, annuaire, etc.).
Ainsi, un (vrai) algorithme doit être indépendant du langage de programmation utilisé par la
suite.
Il n’existe pas de langage universel dédié à l’écriture des algorithmes. En règle générale, on
utilisera donc un langage « communément accepté » permettant de décrire les opérations de
base et les structures de contrôle (qui précisent l’ordre dans lequel doivent s’enchaîner les
opérations) nécessaires à l’expression des algorithmes, et ce de façon rigoureuse.
Un algorithme se découpe en trois phases :
Son type : Un type est utilisé pour caractériser l’ensemble des valeurs qu’une variable peut
prendre. Par exemple le prix unitaire représente le prix d’un article exprimé en euros. On peut
considérer qu’il est représenté par un réel. Il ne peut alors prendre que ce type de valeurs.
Sa valeur : La variable contient une information qui peut varier au cours de l’exécution d’un
programme. C’est cette information que l’on appelle valeur de la variable.
La valeur d’une variable doit correspondre au type de la variable. Ainsi, une variable quantité
de type entier pourra prendre successivement les valeurs de 10, 25 et 3. La valeur d’une variable
n’existe que lorsque le programme est exécuté. Les autres informations (nom, rôle et type) sont
définies lors de la conception du programme, pendant la construction de l’algorithme.
IV. Expressions
Définition : Une expression est « quelque chose » qui a une valeur. Ainsi, en fonction de ce
qu’on a vu jusqu’à présent, une expression est une constante, une variable ou toute combinaison
d’expressions en utilisant les opérateurs arithmétiques, les opérateurs de comparaison ou les
opérateurs logiques.
V. Types fondamentaux
Définition : Un type caractérise les valeurs que peut prendre une variable. Il définit également
les opérations, généralement appelées opérateurs, qui pourront être appliquées sur les données
de ce type.
Les types ont deux intérêts principaux :
A B A Et B A Ou B Non A
Exemple :
Si je dois calculer l’âge de plusieurs personnes, je vais réaliser l’opération suivante :
annee_calcul = 2050;
annee_naissance = 2000;
prenom = "Pierre";
age= annee_calcul - annee_naissance;
Ecrire "En", annee_calcul,",", prenom, "aura",age,"ans !";
annee_calcul = 2050;
annee_naissance = 1991;
prenom = "Caroline";
age= annee_calcul - annee_naissance;
Ecrire "En", annee_calcul,",", prenom, "aura",age,"ans !";
retourner (a + b)
fin de fonction
La condition if (SI) :
La condition if permet d’exécuter une suite d’instructions uniquement si un test donné est
vérifié. Par exemple :
DEBUT
a = 5
SI ( a > 15 ) ALORS
ECRIRE a, "est supérieur à : ", 15
FINSI
FIN
Ce qui se trouve entre les parenthèses qui suivent le SI s’appelle le test de la condition.
Un test est une expression dont le calcul doit arriver soit à la valeur true, soit à la valeur false.
Tout ce qui se trouve dans les accolades suivant le SI sera traité uniquement si le test de la
condition est vérifié (sa valeur calculée vaut true).
Les instructions du bloc d’instructions suivant le SI seront soient toutes exécutées, soit aucune.
DEBUT
a = 5
SI ( a > 15 ) ALORS
ECRIRE a, "est supérieur à : ", 15
SINON
ECRIRE a, "est inferieur à : ", 15
FINSI
FIN
Conditions imbriquées
Il est tout à fait possible d’imbriquer les conditions mais en gardant à l’esprit que le premier
test SI (expression) ne se fera que si une condition SI (expression) est vérifiée.
DÉBUT
maxi = 0
x = 2
y = 5
z = 4
SI (x > y) ALORS
ECRIRE "x est supérieur à y"
SI (x > z) ALORS
ECRIRE "x est la plus grande valeur des trois"
maxi = x
SINON
ECRIRE "z est la plus grande valeur des trois"
maxi = z
FINSI
SINON
ECRIRE "y est supérieur à x"
SI (Y > z) ALORS
ECRIRE "y est la plus grande valeur des trois"
maxi = y
SINON
ECRIRE "z est la plus grande valeur des trois"
maxi = z
FINSI
FINSI
FIN
Remarque :
Lorsque beaucoup de SI et de SINON s’enchaînent, il est préférable d’utiliser des SINON SI
successifs plutôt que de multiplier les imbrications de blocs d’instructions.
C’est-à-dire, au lieu de :
DÉBUT
x = 500
DÉBUT
x = 5
Opérateurs de comparaison
Opérateur Signification
A === B vaut true ssi l’expression A a le même type et valeur calculée que B
Opérateur Signification
A xor B vaut true si A ou B ont la valeur true, mais pas les deux à la fois
A || B comme and
L’utilisation de && et || est déconseillée car moins facilement lisible, bien que courante.
Pour éviter tout problème de priorité entre les opérateurs, c’est-à-dire quels opérateurs agissent
en premier, il est conseillé d’entourer les expressions avec des parenthèses :
Par exemple :