Cours 1
Cours 1
F IGURE 1 – f (x) = x3 − 1
Chacune des étapes constitue une action complexe qu’il faut décomposer en une sé-
quence finie d’opérations élémentaires.
Phase 2. La conception d’un algorithme, qui décompose une méthode de résolution en une sé-
quence finie d’opérations élémentaires.
Définition d’un algorithme : un algorithme est une suite finie d’opérations non am-
bigües prenant éventuellement une ou des données en entrée et fournissant une ou des
données en sortie. Les algorithmes manipulent des données provenant de sources diffé-
rentes : utilisateurs (saisie au clavier), bases de données, web...
Pour décrire un algorithme, on utilise un pseudo-code (ou pseudo-langage ou langage
algorithmique) qui utilise des mots du langage naturel. Ce n’est pas un langage informa-
tique. Nous suivrons néanmoins une norme stricte.
Schéma général de présentation d’un algorithme :
ALGO
VARIABLES
...pour décrire les données et variables
1. Introduction et premières instructions (cours) 3
DEBUT
...pour décrire les opérations élémentaires
FIN
Un processeur est dénué d’intelligence : il exécute parfaitement les instructions mais n’en
comprend pas le sens ; il est également incapable de détecter tout seul des incohérences dans les
données, il faudra inclure une vérification explicite.
— Un programme devra spécifier intégralement et sans ambiguïté les tâches à effectuer.
Écrire un programme revient donc à expliquer en détail à une machine ce qu’elle doit
faire, et ceci dans un langage très précis (au niveau des mots et de la syntaxe).
— Tous les cas devront être envisagés et prévus dans le programme (cas standards, cas
particuliers, cas d’erreur...).
— On ne peut pas compter sur le processeur pour nous signaler des incohérences non pré-
vues par le programme.
En pseudo-code nous allons considérer pour le moment deux types de base : NOMBRE et
CHAINE. Une valeur de type CHAINE est une suite de caractères encadrée par des guillemets
comme par exemple "Nom :". Un caractère peut être une lettre (majuscule ou minuscule), un
chiffre, un symbole de ponctuation, une espace, et bien d’autres choses encore. Nous introdui-
rons au fur et à mesure des types supplémentaires.
Le type d’une valeur est inféré (déduit) automatiquement par Python. On parle de typage
dynamique. Une valeur composé de chiffres et ne comportant pas de . est un int ; si elle com-
porte un point, c’est un float.
Sur les données de type NOMBRE, on peut appliquer les opérateurs arithmétiques usuels
(listés par priorité croissante) :
- négation (changement de signe) ;
+ et - addition et soustraction ;
* et / multiplication et division ;
// et % division entière et reste de la division entière 1 ;
** puissance.
1. Étant donné deux nombres entiers a et b, si on note q le quotient de la division entière de a par b et r son
reste, on peut écrire : a = q ∗ b + r
1. Introduction et premières instructions (cours) 5
Remarque à propos de la division entière Si on souhaite effectuer une division entière d’un
nombre a par un nombre b, on écrira en python : a//b pour obtenir le quotient et a%b pour
obtenir le reste.
Sur un ordinateur, tout calcul effectué sur des nombres entiers est garanti exact. En revanche,
les calculs effectués sur des flottants peuvent être entachés d’erreurs.
En voici un exemple, si on réalise le calcul suivant
1.1 + 2.2 - 3.3
on n’obtient pas 0.0 mais un nombre très proche de 0.0 à savoir 4.440892098500626e-16.
La différence peut sembler insignifiante, mais combinée à d’autres calculs, elle peut devenir
très significative.
En Python, une donnée de type CHAINE s’appelle une str (pour string). Les chaînes de
caractères sont écrites en les encadrant soit de deux simples apostrophes ' (appelées quotes),
soit de guillemets " (appelés doubles quotes). Ce sont des délimiteurs de chaîne. Vous noterez
que la présence des délimiteurs permet de distinguer la valeur numérique 2 du caractère '2'
(ou de manière équivalente "2").
Aucune limitation n’existe sur le nombre de caractères que contient une chaîne. Ce nombre
est appelé la longueur de la chaîne.
Une chaîne de caractères peut ne contenir aucun caractère. On parle alors de la chaîne vide.
Littéralement, la chaîne vide s’écrit avec deux quotes ou deux doubles quotes : '' ou "".
Le choix des délimiteurs (' ou ") est en général indifférent. Mais si une chaîne de caractères
doit contenir l’un de ces deux symboles, il faut choisir l’autre comme délimiteur.
Introduisons une première opération sur les chaînes de caractères : la concaténation. Cette
opération consiste à construire une chaîne de caractères à partir de deux chaînes données en les
mettant bout à bout. L’opération de concaténation est réalisée par l’opérateur +. Par exemple, la
chaîne 'bonjour' peut s’obtenir avec l’opération de concaténation suivante :
'bon' + 'jour'
En Python la fonction type donne le type de la valeur qu’on lui donne entre parenthèses.
En voici un exemple :
>>> type(100)
<class 'int'>
>>> type(100.)
<class 'float'>
>>> type('100')
<class 'str'>
1.3.1 En pseudo-code
En pseudo-code, une variable désigne une boite dans laquelle on range une valeur. Une
variable porte un nom : il s’agit de son identificateur. Toutes les variables utilisées dans l’algo-
rithme doivent être déclarées au préalable suivant la syntaxe :
6 1. Introduction et premières instructions (cours)
L’affectation est l’instruction qui permet de ranger une valeur dans une variable. En pseudo-
code, on la notera avec une flèche ← ce qui signifie « prend la valeur » :
L’affectation se déroule comme suit : l’expression est évaluée et la valeur renvoyée lors de
cette évaluation est « rangée » dans la variable. La valeur antérieure éventuelle de la variable
identificateur_variable est alors écrasée et remplacée par la valeur renvoyée par l’expression.
Exemple
ALGO
VARIABLES
x, y TYPE NOMBRE
DEBUT
x <- 6
y <- 2*x
FIN
1.3.2 En Python
Une variable permet de référencer une zone mémoire (ici la boite du pseudo-code corres-
pond concrètement à une zone mémoire de l’ordinateur). L’affectation est l’instruction qui per-
met d’associer une variable à une valeur stockée dans une zone mémoire. La syntaxe de l’affec-
tation est :
identificateur = expression
1. Introduction et premières instructions (cours) 7
L’évaluation d’une variable consiste à accéder à la valeur qu’elle référence : on dit qu’elle
renvoie la valeur contenue dans la zone mémoire.
Contrairement à d’autres langages de programmation, un programme Python ne comporte
pas une partie explicite de déclaration de variables : la déclaration d’une variable et son initiali-
sation (c’est-à-dire la première valeur que l’on va stocker dans cette variable) se font en même
temps. Une variable n’a pas de type, c’est la valeur qu’elle référence qui est typée !
Ainsi l’algorithme du début de section se traduit en Python comme suit :
x = 6
y = 2*x
À l’issue de la première instruction, une zone mémoire contenant la valeur 6 est créée (dans
l’espace des valeurs), son type nombre entier, int en Python, est automatiquement déduit par
l’interpréteur. Puis, dans la liste des variables, la variable x est créée et un lien (une référence)
entre x et 6 est établi. C’est alors par la variable x qu’on peut atteindre la zone mémoire conte-
nant la valeur 6.
x 6
Concernant la deuxième instruction, l’expression 2*x est en premier lieu évaluée : on ac-
cède à la valeur de type int référencée par x (on dit aussi contenue dans x) et on multiplie
cette valeur par 2, la valeur renvoyée est alors 12 qui est aussi de type int (en multipliant un
int par un int on obtient un int !). Dans un deuxième temps, l’espace mémoire contenant
12 va être référencé par la variable y qui va donc être créée dans la liste des variables.
x 6
y 12
8 1. Introduction et premières instructions (cours)
Une nouvelle affectation ne change pas le contenu de la case mémoire référencée mais
change le lien entre la variable et une nouvelle zone mémoire. Ainsi, si l’on effectue une nou-
velle affectation
x = 7
x 6
y 12
Dans une affectation, ce que vous placez à la gauche du signe égal doit donc toujours être
une variable, et non une expression, car il s’agit de référencer une valeur (espace des valeurs)
par une variable (espace des variables). Ainsi par exemple, l’instruction x + 1 = y n’est pas
légale et n’a pas de sens en Python.
Attention. Dans une instruction d’affectation, l’opérateur = n’est pas ici l’opérateur égalité
de l’arithmétique. Si a = a + 1 est faux en mathématique, cette affectation a un sens en
programmation et est très fréquente. L’instruction a = a + 1 signifie « prend la valeur de
a, l’augmente de 1 et remet cette valeur dans a », ou encore : « incrémenter a ».
L’identificateur d’une variable en Python peut être constitué de lettres minuscules (a à z),
de lettres majuscules (A à Z), de nombres ou du caractère _. Mais l’identificateur ne doit pas dé-
buter par un nombre (et éviter de la faire commencer par _) et il est conseillé qu’il ne contienne
pas de caractère accentué. L’identificateur ne peut pas commencer par des guillemets ou quotes
pour ne pas être considéré comme une valeur de type str. L’identificateur ne doit pas être choisi
parmi les mots réservés du langage. Python est sensible à la casse, ce qui signifie que les va-
riables nb, NB, nB sont différentes. Enfin, on n’utilise jamais d’espace dans un nom de variable
puisque l’espace est un séparateur d’instructions. Le choix de l’identificateur est important pour
rendre vos instructions le plus compréhensibles possibles. Par exemple, dans le problème de la
billeterie automatique, le nom de la variable qui référence la ville de départ pourrait être v mais
c’est beaucoup plus clair de choisir ville_depart comme identificateur.
En plus des opérateurs déjà mentionnés, il existe des opérateurs, dit combinés, qui réalisent
à la fois une opération arithmétique et une affectation :
a += 2 est equivalent à a = a + 2
a -= 2 est equivalent à a = a - 2
a *= 2 est equivalent à a = a * 2
a /= 2 est equivalent à a = a / 2
1. Introduction et premières instructions (cours) 9
Type des expressions : si dans une même expression, les opérandes sont de type int et
float, la valeur renvoyée sera de type float car ce type est plus général.
En Python, on peut affecter une valeur à plusieurs variables simultanément. Par exemple,
l’instruction
x = y = 7
x
7
y
On peut aussi effectuer des affectations parallèles à l’aide d’une seule instruction.
Par exemple, l’instruction
a, b = 4, 8.33
x = 2.6
y = int(x)
z = float(y) # z vaut 2.0
w = int('2')
Après la première affectation, x référence la valeur 2.6 de type float. Le type float est in-
féré par Python car la valeur est composée de chiffres et contient un point. Après la deuxième
affectation, y référence la valeur 2 de type int : une troncature est réalisée et la partie frac-
tionnaire est supprimée. Après la troisième affectation, z référence la valeur de type float 2.0.
Après la quatrième affectation, w référence la valeur de type int 2. L’expression int(’2.0’)
n’est pas valide : il n’est pas possible de demander deux conversions successives (dont l’une est
implicite) : str -> float -> int. Il faut écrire :
t = float('2.0')
t = int(t) ou bien t = int(float('2.0'))
Après avoir présenté l’affectation, il s’agit d’expliciter deux autres instructions élémentaires
permettant d’interagir avec un utilisateur : l’instruction d’écriture pour afficher des données
(résultats) à l’écran et l’instruction de lecture pour stocker/enregistrer des données en mémoire
de l’ordinateur.
10 1. Introduction et premières instructions (cours)
pseudo-code
Traduction en Python
ALGO
VARIABLES
x TYPE CHAINE
DEBUT
print(x)
ECRIRE x
FIN
En Python, x est une expression qui est d’abord évaluée, la valeur renvoyée est ensuite
affichée à l’écran. Si c’est une chaîne de caractères, c’est la chaîne qui est affichée (sans que ne
soient affichés les délimiteurs de chaînes). Par exemple,
print('Hello')
La fonction print() peut afficher les valeurs de plusieurs expressions passées en argument.
Dans ce cas, on sépare les différentes expressions à afficher par une virgule. Par exemple :
>>> var = 2
>>> print("2*var=", 2*var)
2*var = 4
Par défaut, les affichages des différentes expressions passées en argument sont sur une même
ligne séparés par une espace. L’affichage termine par un passage à la ligne (le caractère \n).
Deux arguments optionnels du print() permettent de modifier ce comportement par défaut.
Le premier, sep, indique ce qui doit séparer les différentes valeurs affichées. On l’utilise en
ajoutant sep = valeur à la liste des arguments (après les valeurs à afficher), où valeur
est de type chaîne de caractères. Par exemple :
>>> var = 2
>>> print(var, 2*var, 4*var)
2 4 8
>>> print(var, 2*var, 4*var, sep = ",")
2,4,8
>>> print(var, 2*var, 4*var, sep = "\n")
2
4
8
Le second argument optionnel est end qui indique la chaîne à ajouter à la fin de l’affichage
(par défaut, il s’agit d’un \n, le retour à la ligne). On l’utilise en ajoutant end = valeur à la
liste des arguments (après les valeurs à afficher), où valeur est de type chaîne de caractères.
Par exemple :
On peut bien évidemment affecter des valeurs aux deux arguments sep et end dans une
même instruction d’écriture :
En pseudo-code
Traduction en Python
ALGO
VARIABLES
x TYPE CHAINE
DEBUT
x = input()
LIRE x
FIN
En Python, c’est la fonction input() qui permet de créer en mémoire une valeur consti-
tuée des caractères saisis au clavier par l’utilisateur. Il suffit alors de référencer cette valeur par
une variable pour pouvoir l’utiliser dans un programme.
Pour changer le type de la valeur lue par la fonction input(), on doit faire une conversion
explicite de type. Dans l’exemple ci-dessous, on transforme la valeur lue de type str en une
valeur de type int :
x = input()
x = int(x)
Dans cet exemple, pour que l’exécution des instructions ne donne pas lieu à une erreur, il
faut bien évidemment que l’utilisateur saisisse uniquement des chiffres au clavier. Aucune véri-
fication n’est faite par l’instruction input(). Si l’utilisateur saisit autre chose que des chiffres
(par exemple deux), on aura une erreur à l’exécution (un bug) de la deuxième instruction.
Dans cet exemple, pour convertir en int la valeur de type str lue par input(), on a
écrit deux instructions distinctes. Il est possible de réunir ces deux instructions en une seule
en appliquant directement la conversion de type sur la sortie du input(), sans l’affecter au
préalable à x. On obtient alors une instruction équivalente :
12 1. Introduction et premières instructions (cours)
x = int(input())
L’exécution de l’instruction input() permet d’interrompre l’exécution d’un programme
pour permettre à un utilisateur de faire une saisie clavier mais aucune indication n’est donnée
à l’utilisateur pour l’informer de ce qu’on attend de lui. Pour l’informer, il faut ajouter une
instruction d’écriture préalable (on parle de message d’invite ou prompt). Par exemple :
print("Entrez une valeur entiere : ")
x = input()
x = int(x)
A l’exécution, c’est alors clair pour l’utilisateur : le message
Entrez une valeur entiere :
s’affiche. Puis le programme passe à la deuxième instruction et la fonction input() est exécu-
tée. Elle interrompt l’exécution du programme pour laisser la main à l’utilisateur qui peut saisir
une valeur. Cette valeur est créée par input() puis référencée par la variable x. La troisième
instruction permet alors de convertir le type de cette valeur en int.
Il est possible de spécifier un message d’invite dans le input() directement (sans passer
explicitement par la fonction print()). Une autre version du programme précédent est :
La seule différence est ici que le message "Entrez une valeur entiere : " ne sera pas suivi
d’un passage à la ligne. L’autre différence est que vous ne pouvez donner qu’une valeur au
input() alors que vous pouvez en spécifier plusieurs pour le print(). On peut écrire :
inf = 10
sup = 20
print("Valeur comprise entre", inf, 'et', sup, ':')
x = input()
x = int(x)
On peut néanmoins contourner cette limite en concaténant les chaînes de caractères à écrire.
En effet, l’expression
'Valeur comprise entre' + str(inf) + 'et' + str(sup) + ':'
est valide et, lors de son évaluation, cette expression renvoie une et une seule valeur de type
str. Il est alors possible d’écrire :
1. Introduction et premières instructions (cours) 13
inf = 10
sup = 20
x = input('Valeur comprise entre' + str(inf) + 'et' + str(sup) + ':')
x = int(x)
à cette unique instruction équivalente (on a ajouté un passage à la ligne après le message
d’invite) :
SI (Condition) ALORS
DEBUT
BlocInstructions
FIN
où B LOC I NSTRUCTIONS est une suite d’instructions qui sera exécutée uniquement si la condi-
tion est vérifiée. Si la condition n’est pas vérifiée, alors il ne se passera rien.
Une condition est une expression logique qui fournit un résultat dont le type est BOOLEEN.
Le type BOOLEEN est un ensemble de 2 valeurs : VRAI ou FAUX. Par exemple, (D < 0) renvoie
vrai lorsque D = −4 et renvoie faux lorsque D = 6.
Les opérateurs de comparaison qui peuvent être utilisés pour écrire les expressions logiques
peuvent être : >, <, ==, !=, ≤, ≥.
Attention : pour tester si 2 éléments sont égaux il faut doubler le signe "=" pour ne pas faire
à la place une affectation. Nous reviendrons plus en détail dans une section ultérieure sur la
définition et la construction d’expressions logiques plus complexes.
14 1. Introduction et premières instructions (cours)
Exemple
Voici un algorithme en pseudo-code qui, étant donnée une équation du second degré, détermine
si elle n’admet aucune solution réelle.
Rappel : l’équation ax2 + bx + c = 0 n’admet aucune solution réelle si ∆ = b2 − 4ac est < 0.
L’équation étant entièrement définie par les paramètres a, b et c, ils seront demandés à l’uti-
lisateur et c’est le programme qui compte tenu de ces paramètres calculera ∆ et fournira la
réponse.
ALGO
VARIABLES
a TYPE NOMBRE
b TYPE NOMBRE
c TYPE NOMBRE
D TYPE NOMBRE
DEBUT
ECRIRE "Quel est le parametre a?"
LIRE a
ECRIRE "Quel est le parametre b?"
LIRE b
ECRIRE "Quel est le parametre c?"
LIRE c
D <- (b*b - 4*a*c)
SI (D<0) ALORS
DEBUT
ECRIRE "L'equation n'admet aucune racine reelle"
FIN
FIN
SI (Condition) ALORS
DEBUT
BlocInstructions
FIN
SI (Condition) ALORS
DEBUT
BlocInstructions1
FIN
SINON
DEBUT
BlocInstructions2
FIN
1. Introduction et premières instructions (cours) 15
ALGO
VARIABLES
a TYPE NOMBRE
b TYPE NOMBRE
c TYPE NOMBRE
D TYPE NOMBRE
DEBUT
ECRIRE "Quel est le parametre a?"
LIRE a
ECRIRE "Quel est le parametre b?"
LIRE b
ECRIRE "Quel est le parametre c?"
LIRE c
D <- (b*b - 4*a*c)
SI (D<0) ALORS
DEBUT
ECRIRE "L'equation n'admet aucune racine reelle"
FIN
SINON
DEBUT
ECRIRE "L'equation a au moins une racine reelle"
FIN
FIN
ALGO
VARIABLES
a TYPE NOMBRE
DEBUT
ECRIRE "Quel est le parametre a?"
LIRE a
SI (a!=0) ALORS
DEBUT
SI (a%2==0) ALORS
DEBUT
SI (a>0) ALORS
DEBUT
ECRIRE "Un nombre pair positif"
16 1. Introduction et premières instructions (cours)
FIN
ECRIRE "Un nombre pair"
FIN
FIN
SINON
DEBUT
ECRIRE "Il est nul"
FIN
FIN
Si on applique l’algorithme précédent en prenant a = 4 que se passe-t-il ? et pour a = 5 ?
Attention
Ne pas oublier le ’:’ qui délimite le début du bloc et ne pas oublier l’indentation des instructions
à exécuter dans le cas où la condition est vérifiée. L’indentation doit être la même pour toutes les
instructions du bloc. Notez que les parenthèses autour de la condition ne sont pas obligatoires
en Python. Le BlocInstructions1 ne peut pas être vide.
Le type booléen est noté bool en Python.
En Python, la valeur VRAI se traduit par : True.
En Python, la valeur FAUX se traduit par : False.
Attention : True et False sont des mots clé pour Python ; si la majuscule est omise, ils ne
sont pas reconnus en tant que tel.
Les opérateurs de comparaison en Python sont : >, <, ==, !=, <=, >=.
Illustration
a = float(input("Donner le parametre a : "))
b = float(input("Donner le parametre b : "))
c = float(input("Donner le parametre c : "))
d = b*b - 4*a*c
if d < 0:
print("Votre equation n'admet aucune racine réelle")
Remarque : s’il n’y a qu’une seule instruction à exécuter, alors on peut l’écrire sur la même
ligne que les deux points.
Illustration
Que se passe-t-il lors de l’exécution du programme ci-dessous pour x = 4 ?
x = int(input("Donner l'inconnue x positive ou nulle : "))
if x >= 10:
print("x n'est pas constitue d'un unique chiffre")
print("parce qu'il est plus grand que 10")
1. Introduction et premières instructions (cours) 17
Illustration
a = float(input("Donner le parametre a : "))
b = float(input("Donner le parametre b : "))
c = float(input("Donner le parametre c : "))
d = b*b - 4*a*c
if d < 0:
print("Votre equation n'admet aucune racine reelle")
else:
print("Votre equation admet au moins une racine reelle")
Question
Que fait le programme Python suivant ?
if True:
print("Tout juste")
else:
print("Pas bon")
Illustration
Dans l’exemple précédent, il est possible d’affiner la réponse en précisant le nombre de racines
réelles quand il en existe.
E1 E1
VRAI FAUX
FAUX VRAI
Exemple
Pour D valant -3, l’expression D ̸= 0 est VRAI et par conséquent l’expression
N ON (D ̸= 0) est FAUX.
E1 E2 E1 OU E2
VRAI VRAI VRAI
VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX
Exemple
Soit l’expression E = (a ̸= 100) OU (b < 0). Pour a valant 6 et b valant −10, E aura la
valeur VRAI et pour a valant 100 et b valant 7, E prendra la valeur FAUX.
— ET (conjonction) : en logique souvent notée E1 ET E2 ou E1 ∧ E2, où E1 et E2 sont
toutes deux des expressions logiques. La table de vérité associée à l’opérateur ET est :
E1 E2 E1 ET E2
VRAI VRAI VRAI
VRAI FAUX FAUX
FAUX VRAI FAUX
FAUX FAUX FAUX
Exemple
Soit l’expression E = (a ̸= 100) ET (b < 0). Pour a valant 15 et b valant −10, E aura
la valeur VRAI et pour a valant 50 et b valant 20, E prendra la valeur FAUX.
1.7.2 Propriétés
Propriété 1
Exemple
NON(x1>=0 OU x2==4) est équivalent à NON(x1>=0) ET NON(x2==4) qui est équi-
valent à l’expression logique : (x1<0) ET (x2!=4).
Démonstration Propriété 1
En utilisant les tables de vérité et en montrant que les tables de vérité de chacune des expressions
logiques sont équivalentes.
Propriété 2
NON (A ET B) = NON (A) OU NON (B)
Exemple
NON(x3!=99 ET x4<8) est équivalent à NON(x3!=99) OU NON(x4<8), équivalent à
l’expression logique : (x3==99) OU (x4>=8).
La traduction en Python des opérateurs logiques est :
— NON : not
Exemple :
not(D!=0)
— OU (disjonction) : or
Exemple :
E1 = (a!=100) or (b<0)
— ET (conjonction) : and
Exemple :
E2 = (a!=100) and (b<0)
Les propriétés 1 et 2 sont particulièrement utiles pour les tests avec SINON dans le cas où la
condition initiale est du type (A ET B) ou (A OU B).
Remarques
La distributivité des opérateurs est la suivante :
A ET (B OU C) = (A ET B) OU (A ET C)
A OU (B ET C) = (A OU B) ET (A OU C)
En Python, sans parenthèse, l’opérateur and est prioritaire sur l’opérateur or et l’opérateur
not est prioritaire sur les opérateurs and et or.
Illustration - Exercice
Dans l’algorithme ci-dessous, le texte de "message2" peut-il être plus explicite quant à la
parité et au signe de a ?
ALGO
VARIABLES
a TYPE NOMBRE
DEBUT
ECRIRE "Quel est le parametre a?"
LIRE a
SI (a>0 ET a%2==0) ALORS
DEBUT
ECRIRE "C'est un nombre pair positif"
FIN
SINON
DEBUT
SI a%2==0 ALORS
DEBUT
ECRIRE "message2"
FIN
1. Introduction et premières instructions (cours) 21
FIN
FIN
L’utilisation des opérateurs NON , ET et OU permet d’écrire des algorithmes de façon plus simple
et en limitant les imbrications des tests. À titre d’illustration, faire exercice ci-dessous.
1. Écrire sans les 3 opérateurs NON, ET et OU un algorithme permettant de dire si une
variable a appartient à l’intervalle [0, 9].
2. Même question mais en utilisant l’opérateur and
3. Même question mais en utilisant l’opérateur or
22 1. Introduction et premières instructions (cours)