Numérique et sciences informatiques (spécialité) · Première
Booléens et logique : exercices corrigés de NSI Première
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Un booléen est une valeur à deux états, vrai ou faux, qui sert à représenter une valeur de vérité 3.
- Le ET (conjonction) vaut VRAI si, et seulement si, ses deux opérandes valent VRAI ; sinon il vaut FAUX 4.
- VRAI et FAUX se codent par les bits 1 et 0, et le ET peut s'écrire avec le signe ∧ ou avec une multiplication 4.
- Selon le langage, la vérité n'est pas représentée de la même façon : en C, 0 est faux et toute autre valeur est vraie 3.
Comment utiliser ces exercices
Ces exercices te font manipuler les booléens et le ET logique comme on le fait en NSI : avec des tables de vérité, des conditions Python et quelques comparaisons avec d'autres langages. Ils sont classés du plus simple au plus délicat. Cherche d'abord seul(e), sur papier, puis ouvre les indices, et seulement après la correction pas à pas.
Le programme de NSI en Première est concret et passe par la programmation, le plus souvent en Python 2. Tu peux donc tester chaque réponse dans un interpréteur Python : c'est un bon réflexe pour vérifier un raisonnement, à condition d'avoir d'abord écrit ta prévision.
Les exercices
Exercice 1 La table de vérité du ET
On considère deux opérandes booléens et , chacun valant (faux) ou (vrai).
- Écris toutes les combinaisons possibles de .
- Pour chacune, donne la valeur de (le ET de et ).
- Combien de combinaisons donnent le résultat ?
Indice 1
Deux variables qui prennent chacune deux valeurs donnent combinaisons.
Indice 2
Le ET ne vaut vrai que dans un seul cas : relis sa définition.
Voir la correction pas à pas
On liste les quatre combinaisons : , , et .
On applique la règle : le ET retourne VRAI si, et seulement si, les deux opérandes sont VRAI 4. Seule la combinaison répond à cette condition.
On obtient donc : , , , .
On compte les lignes dont le résultat vaut : il y en a une seule.
Le ET est un opérateur exigeant : une seule opérande fausse le rend faux. Retiens la table : trois lignes à , une seule à .
Exercice 2 Évaluer des conditions en Python
En Python, la variable x vaut 7. On évalue trois conditions :
- C1 :
x > 5 and x < 10 - C2 :
x % 2 == 0 and x > 0 - C3 :
x != 3 and x <= 7
(x % 2 est le reste de la division de x par 2.)
- Donne la valeur booléenne de chaque condition.
- Combien de ces conditions sont vraies ?
Indice 1
Découpe chaque condition en deux comparaisons et évalue-les une par une.
Indice 2
Pour C2, calcule d'abord le reste de divisé par .
Voir la correction pas à pas
C1 :
7 > 5est vrai et7 < 10est vrai. Les deux opérandes sont vraies, donc C1 est vraie 4.C2 :
7 % 2vaut , donc7 % 2 == 0est faux. Une opérande fausse suffit : C2 est fausse, sans qu'il soit utile d'examinerx > 0.C3 :
7 != 3est vrai et7 <= 7est vrai (l'égalité suffit). C3 est vraie.Deux conditions sur trois sont vraies : C1 et C3.
Une comparaison produit une valeur booléenne, et le ET combine deux de ces valeurs. Attention à <= : il accepte l'égalité, ce qui rend C3 vraie.
Exercice 3 Des interrupteurs en série
On simule le ET avec des interrupteurs normalement ouverts montés en série : le courant ne passe que si tous sont fermés, et une lampe affiche le résultat. Un interrupteur fermé vaut , ouvert vaut .
- Avec deux interrupteurs et , que fait la lampe si et ?
- On ajoute un troisième interrupteur en série. Sur les huit combinaisons de , combien allument la lampe ?
Indice 1
Dans un montage en série, le courant traverse les interrupteurs l'un après l'autre.
Indice 2
Pour la question 2, cherche combien de combinaisons ont les trois interrupteurs fermés.
Voir la correction pas à pas
Le montage en série de deux interrupteurs simule la fonction ET, et la lampe représente le résultat 4.
Pour et : le second interrupteur est ouvert, le circuit est coupé, la lampe reste éteinte ().
Avec trois interrupteurs, on prolonge le raisonnement : le courant ne passe que si les trois sont fermés.
Il n'existe qu'une combinaison où , et valent tous , parmi les huit possibles : la lampe ne s'allume que dans ce cas.
Plus on ajoute d'opérandes dans un ET, plus il devient rare qu'il soit vrai : avec interrupteurs, une seule combinaison sur allume la lampe.
Exercice 4 Le ET comme multiplication
Le ET peut être noté par le signe de la multiplication. On pose , , et .
- Calcule le produit .
- Explique pourquoi ce produit donne bien le résultat du ET de ces quatre valeurs.
- Pour quelles valeurs de le produit vaut-il ?
Indice 1
Dans un produit, un facteur nul rend tout le produit nul.
Indice 2
Pour la question 3, demande-toi quelle valeur doit prendre chaque facteur pour que le produit ne soit pas nul.
Voir la correction pas à pas
Le ET est aussi représentable par le signe de la multiplication, avec VRAI codé et FAUX codé 4.
On calcule : .
Ce correspond à FAUX, ce qui est cohérent : une des opérandes (ici ) est fausse, donc le ET est faux.
Pour que le produit vaille , aucun facteur ne doit être nul, donc chacun doit valoir . Le produit vaut seulement si .
Sur les valeurs et , multiplier revient à appliquer le ET : le est « absorbant » et le ne change rien au produit. Cette équivalence est très pratique en programmation.
Exercice 5 Vrai ou faux dans le langage C
En langage C, les comparaisons et les opérateurs logiques donnent pour vrai et pour faux, et les tests considèrent toute valeur non nulle comme vraie. On déclare int i = 5, j = 3; puis :
int r1 = (i > j) && (i - 5);int r2 = (i > j) && j;
- Donne la valeur de chaque opérande de
r1puis celle der1. - Même question pour
r2. - Calcule .
Indice 1
Une expression entière est vraie si elle est différente de .
Indice 2
i - 5 n'est pas une comparaison : c'est un simple calcul entier.
Voir la correction pas à pas
En C, les opérateurs de comparaison renvoient pour vrai et pour faux, et le zéro est considéré comme faux tandis que toute autre valeur est vraie 3.
Pour
r1:i > jvaut (vrai). Puisi - 5vaut , donc il est faux. Le ET d'une opérande vraie et d'une opérande fausse est faux :r1vaut .Pour
r2:i > jvaut etjvaut , valeur non nulle donc vraie. Les deux opérandes sont vraies, doncr2vaut .On additionne : .
En C, un entier peut jouer le rôle d'un booléen : c'est une convention du langage, pas une propriété universelle. L'opérateur && donne toujours ou , même si ses opérandes sont d'autres entiers.
Exercice 6 Filtrer des élèves avec deux critères
Un professeur veut repérer les élèves majeurs ET ayant au moins 10 de moyenne. Il dispose de couples (âge, moyenne) :
[(17, 12), (18, 9), (18, 10), (19, 15), (16, 8), (20, 10)]
- Écris la condition Python qui teste un couple
(age, note). - Combien d'élèves satisfont cette condition ?
Indice 1
Majeur signifie ici que l'âge est supérieur ou égal à .
Indice 2
Teste chaque couple séparément : les deux critères doivent être vrais en même temps.
Voir la correction pas à pas
La condition s'écrit
age >= 18 and note >= 10. C'est un ET : les deux critères doivent être remplis 4.On teste chaque couple. : l'âge est insuffisant, faux. : la note est insuffisante, faux. : les deux vrais, valide.
: valide. : les deux sont faux, faux. : valide.
Trois élèves satisfont la condition.
Remarque que le choix de >= plutôt que > change le résultat : et seraient exclus avec des inégalités strictes. Les bornes sont la première source d'erreurs dans une condition.
Exercice 7 Table de vérité à trois variables
On considère l'expression Python (a and not b) or c, où a, b, c sont des booléens. Dans cet exercice, not inverse une valeur booléenne et or vaut vrai dès qu'au moins une de ses opérandes est vraie.
- Dresse la table de vérité complète de l'expression.
- Combien de lignes donnent le résultat vrai ?
- Quelle sous-expression est un ET, et à quel moment est-elle vraie ?
Indice 1
Il y a huit lignes : fais varier plus lentement que et pour t'organiser.
Indice 2
Si c est vrai, que vaut le or quel que soit le reste ?
Voir la correction pas à pas
On liste les huit combinaisons de en notant pour vrai et pour faux.
On calcule d'abord
not b, puisa and not b. Ce ET est vrai seulement si et 4.Si , le
orest vrai quelles que soient les valeurs de et : cela fait quatre lignes vraies.Si , le résultat est celui de
a and not b, vrai uniquement pour : une ligne de plus.Au total, cinq lignes sur huit donnent vrai.
Décompose toujours une expression complexe en petites parties. Ici, la sous-expression a and not b est un ET dont la seconde opérande est la négation de b : elle n'est vraie qu'avec et .
Exercice 8 La vérité en Lisp et en C
En Lisp, la valeur logique faux est représentée par la liste vide (), qui est aussi notée nil, et toute autre expression est traitée comme vraie. En C, zéro est faux et toute autre valeur est vraie.
On considère cinq valeurs Lisp : (), nil, (1 2), 0 et l'atome t.
- Combien de ces valeurs sont considérées comme vraies par une structure conditionnelle Lisp ?
- Parmi elles, laquelle change de statut si on la traite avec la convention du C ?
Indice 1
Repère d'abord les deux écritures qui désignent la liste vide.
Indice 2
Relis la convention du C : quelle valeur numérique y est fausse ?
Voir la correction pas à pas
En Lisp, les structures conditionnelles prennent la liste vide
(), équivalente à l'atomenil, comme valeur fausse ; tout le reste compte comme vrai 3.Les valeurs
()etnilsont donc fausses. Les valeurs(1 2),0ettsont vraies : il y en a trois.En C, le zéro est faux et toutes les autres valeurs sont vraies 3. La valeur
0est vraie en Lisp mais fausse en C.La valeur dont le statut change entre les deux conventions est donc
0.
Une même écriture, 0, est vraie dans un langage et fausse dans l'autre. Retiens que la représentation de la vérité est propre à chaque langage ; seul un type booléen explicite lève l'ambiguïté.
Exercice 9 Écrire une fonction ET
On représente les booléens par les entiers et .
- Écris en Python une fonction
et(a, b)qui renvoie le ET deaetb, sans utiliser le motand, en t'appuyant sur la multiplication. - Écris une seconde version de
et(a, b)avec une structureif, sans multiplication niand. - Donne les quatre appels qui testent complètement ta fonction et les résultats attendus.
Indice 1
Le ET peut s'écrire avec le signe de la multiplication.
Indice 2
Pour la version avec if, imbrique deux tests : le premier sur a, le second sur b.
Voir la correction pas à pas
Première version, par multiplication :
def et(a, b): return a * b. Elle est correcte car le ET est représentable par une multiplication sur les valeurs et 4.Seconde version, par tests imbriqués :
def et(a, b):puisif a == 1:suivi deif b == 1: return 1, et enfinreturn 0à la fin de la fonction. On ne renvoie que si les deux tests réussissent, ce qui reprend la règle : vrai si, et seulement si, les deux opérandes sont vraies 4.Les quatre appels :
et(0, 0)renvoie ,et(0, 1)renvoie ,et(1, 0)renvoie etet(1, 1)renvoie .On vérifie que les deux versions donnent les mêmes résultats sur ces quatre cas : comme il n'y a que quatre combinaisons, le test est exhaustif.
Quand une fonction n'a que quelques entrées possibles, on peut la tester sur tous les cas, ce qui vaut preuve. C'est un avantage propre aux booléens.
Les questions qu'on se pose
Pourquoi représente-t-on vrai et faux par 1 et 0 ?
Parce que ces deux états correspondent aux deux valeurs d'un bit. Les valeurs VRAI et FAUX peuvent être représentées par les valeurs binaires 0 et 1 4. Cela permet de manipuler la logique avec les mêmes circuits et les mêmes outils que les nombres en base 2, et de traduire le ET par une multiplication.
Tous les langages de programmation ont-ils un type booléen ?
Non. Certains langages n'ont pas de type de données booléen, comme C90 et Lisp, et représentent alors la vérité par un autre type de données 3. En C, on utilise des entiers : zéro est faux, toute autre valeur est vraie 3. En Python, les comparaisons donnent directement des booléens, ce qui rend les conditions plus lisibles.
Comment être sûr d'avoir bien rempli une table de vérité ?
Compte d'abord les lignes : variables donnent combinaisons. Évalue ensuite les sous-expressions une par une plutôt que d'un seul coup. Pour un ET, vérifie qu'il n'y a de résultat vrai que sur la ligne où toutes les opérandes sont vraies 4. Enfin, tu peux confirmer en Python en testant chaque ligne.
Sources
Programme visé : Programme officiel NSI Première - Représentation des données : types et valeurs de base · Ministère de l'Éducation nationale et de la Jeunesse
- Programme officiel NSI Première - Représentation des données : types et valeurs de base, Ministère de l'Éducation nationale et de la Jeunesse. Consulté le 6 novembre 2026.
- La spécialité Numérique et Sciences Informatiques au bac, Ministère de l'Éducation nationale et de la Jeunesse. Consulté le 6 novembre 2026.
- Booléen, Wikipédia. Consulté le 6 novembre 2026.
- Fonction logique ET, Wikipédia. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.