Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 413 minDébutant

Traduire le langage courant en langage mathématique

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • traduire une phrase française en formule, avec connecteurs et quantificateurs ;
  • éviter les pièges du « et », du « ou » et du « seulement si » ;
  • exprimer une règle de gestion sous forme de condition en Python ou en SQL ;
  • lire une formule et la reformuler en français naturel.

5 exercices corrigés

Traduire une phrase en langage mathématique, c'est la découper en propositions élémentaires, nommer chacune par une lettre, puis relier ces lettres par les connecteurs et les quantificateurs qui correspondent aux mots de liaison du français. Le programme du BTS demande de savoir le faire dans les deux sens, et la plupart des exercices de logique de l'E3 commencent par là : on te donne une règle en français, tu dois l'écrire avec des variables, ou l'inverse.

La méthode en quatre étapes

  1. Repérer les propositions élémentaires. Ce sont les morceaux de phrase qui sont vrais ou faux à eux seuls, sans négation : « le client est abonné », « la commande dépasse 100 € ». Donne à chacune une lettre et écris la correspondance.
  2. Repérer les mots de liaison (et, ou, sauf, si, ni…) et les traduire avec le dictionnaire ci-dessous. Une négation (« n'est pas », « sans ») devient ¬ devant la lettre.
  3. Placer les parenthèses en te demandant ce que chaque mot de liaison relie. C'est l'étape où se font les erreurs.
  4. Vérifier sur deux ou trois cas concrets : choisis des valeurs, lis la phrase de départ et ta formule, et compare.

Exemple. « Un client bénéficie de la livraison gratuite s'il est abonné ou si sa commande dépasse 100 €, sauf s'il habite hors de France métropolitaine. »

  1. A : « le client est abonné » ; C : « la commande dépasse 100 € » ; H : « le client habite hors de France métropolitaine ». La livraison gratuite est notée L.
  2. « ou » donne ∨, « sauf si » donne « et non ».
  3. « sauf si » porte sur toute la règle qui précède : L ≡ (A ∨ C) ∧ ¬H.
  4. Vérification : un abonné qui habite en Martinique (A = V, C = F, H = V) : (V ∨ F) ∧ ¬V = V ∧ F = F, pas de livraison gratuite, comme le dit la phrase.

Sans parenthèses, A ∨ C ∧ ¬H se lirait A ∨ (C ∧ ¬H) : un abonné ultramarin aurait la livraison gratuite, ce qui contredit la règle.

Le dictionnaire des mots de liaison

En françaisEn logiqueRemarque
et ; mais ; ainsi que ; à la fois… et…P ∧ Q« mais » ajoute une nuance d'opposition, pas de sens logique
ou ; ou bien (inclusif)P ∨ QLe « ou » mathématique accepte les deux
soit… soit… ; ou… ou… (exclusif) ; l'un ou l'autre mais pas les deuxP ⊕ QLis le contexte : le français ne précise pas toujours
ne… pas ; non ; sans¬P« sans Q » se traduit par ∧ ¬Q
ni P ni Q¬P ∧ ¬Q≡ ¬(P ∨ Q), par De Morgan
pas à la fois P et Q¬(P ∧ Q)≡ ¬P ∨ ¬Q
P sauf si Q ; P à moins que QP ∧ ¬QParfois (P ∧ ¬Q) ∨ … selon le contexte
si P alors Q ; Q si P ; P suffit pour QP ⇒ Q
P seulement si Q ; il faut Q pour PP ⇒ QLe sens de la flèche piège souvent
P si et seulement si Q ; P exactement quand QP ⇔ Q
tous les x ; chaque x ; n'importe quel x∀x
au moins un x ; il y a un x ; certains x∃x« certains » veut dire « au moins un »
aucun x ne… ; pas un seul x∀x, ¬p(x)≡ ¬(∃x, p(x))
pas tous les x∃x, ¬p(x)≡ ¬(∀x, p(x))
un seul x ; exactement un x∃!x

Les pièges du français

Le « et » qui veut dire « ou ». « La salle est réservée aux étudiants de SIO1 et de SIO2. » Aucun étudiant n'est à la fois en première et en deuxième année : la condition d'accès est x ∈ SIO1 ou x ∈ SIO2. En français, « les A et les B » désigne souvent la réunion des deux groupes, donc un « ou » sur chaque individu.

Le « ou » du menu. « Fromage ou dessert » est exclusif, alors que « carte bancaire ou espèces acceptées » est inclusif. En mathématiques, « ou » est inclusif sauf mention contraire : si un sujet veut un ou exclusif, il le dit (« soit… soit… », « mais pas les deux »).

Le « si » qui veut dire « si et seulement si ». « Tu auras ton diplôme si tu as au moins 10 de moyenne » est compris par tout le monde comme une équivalence (et sans 10, pas de diplôme). Logiquement, la phrase n'affirme que l'implication. Dans un sujet, traduis ce qui est écrit, sauf si l'énoncé précise « et seulement dans ce cas ».

« Tous les… ne… pas ». « Tous les postes ne sont pas à jour » est ambigu en français. Le plus souvent, on veut dire « pas tous les postes sont à jour » (∃x, ¬j(x)), pas « aucun poste n'est à jour » (∀x, ¬j(x)). Sur une copie, évite cette tournure et écris « au moins un poste n'est pas à jour » ou « aucun poste n'est à jour ».

La double négation. « Il n'est pas impossible que le serveur redémarre » veut dire « il est possible que le serveur redémarre ». ¬¬P ≡ P.

« Ne… que ». « Le pare-feu n'autorise que le port 443 » veut dire : pour tout port x, si x est autorisé alors x = 443. C'est une implication cachée, ∀x, a(x) ⇒ x = 443, et elle ne dit même pas que 443 est autorisé.

Exprimer une condition avec des connecteurs

Le programme demande aussi d'« utiliser des connecteurs logiques pour exprimer une condition », compétence mise en œuvre en algorithmique. Une règle de gestion décrite en français devient une condition if ou une clause WHERE.

Exemple : l'accès au VPN. « Un salarié peut se connecter au VPN s'il fait partie du service informatique, ou s'il est en télétravail ce jour-là et que son poste est à jour. Un compte suspendu n'a jamais accès. »

  • I : « le salarié est au service informatique » ; T : « il est en télétravail ce jour-là » ; J : « son poste est à jour » ; S : « son compte est suspendu ».
  • Accès ≡ (I ∨ (T ∧ J)) ∧ ¬S.

En Python :

python
def acces_vpn(info: bool, teletravail: bool, a_jour: bool, suspendu: bool) -> bool:
    return (info or (teletravail and a_jour)) and not suspendu

print(acces_vpn(False, True, True, False))   # True : télétravail et poste à jour
print(acces_vpn(True, False, False, True))   # False : compte suspendu

En SQL, sur une table salarie qui aurait les colonnes correspondantes :

sql
SELECT nom
FROM salarie
WHERE (service = 'INFO' OR (teletravail = 1 AND poste_a_jour = 1))
  AND suspendu = 0;

Les parenthèses sont indispensables dans les trois écritures, pour la raison vue au chapitre 1 : sans elles, and passerait avant or.

Du langage mathématique au français

Le chemin inverse demande de lire une formule et d'en faire une phrase naturelle, pas une transcription mot à mot. Méthode : lis d'abord les quantificateurs de gauche à droite, puis le prédicat, et reformule.

FormuleLecture mot à motPhrase naturelle
∀u ∈ U, ∃g ∈ G, m(u, g)Pour tout u de U, il existe g de G tel que u est membre de gChaque utilisateur appartient à au moins un groupe
∃g ∈ G, ∀u ∈ U, m(u, g)Il existe g de G tel que pour tout u de U, u est membre de gUn groupe contient tous les utilisateurs
∀x ∈ P, ¬w(x) ⇒ l(x)Pour tout x de P, si non w(x) alors l(x)Tout poste qui n'est pas sous Windows est sous Linux
¬(∃t ∈ T, o(t) ∧ ¬a(t))Il n'existe pas de t de T tel que o(t) et non a(t)Tout ticket ouvert est affecté (aucun ticket ouvert sans technicien)

Pour la dernière ligne, on peut passer par le calcul : ¬(∃t, o(t) ∧ ¬a(t)) ≡ ∀t, ¬(o(t) ∧ ¬a(t)) ≡ ∀t, ¬o(t) ∨ a(t) ≡ ∀t, o(t) ⇒ a(t).

Exercices

Exercice 1 sur 5 Traduire une règle Réussi À revoir

On note A : « le candidat a le BTS », E : « le candidat a deux ans d'expérience », P : « le candidat parle anglais ». Traduis chaque règle de recrutement par une formule.

  1. Le candidat doit avoir le BTS et parler anglais.
  2. Le candidat doit avoir le BTS ou deux ans d'expérience, et dans tous les cas parler anglais.
  3. Le candidat ne doit avoir ni le BTS ni d'expérience (poste de stagiaire).
  4. Le candidat a soit le BTS, soit deux ans d'expérience, mais pas les deux.
  5. Si le candidat n'a pas le BTS, il doit avoir deux ans d'expérience.
Voir la réponseMasquer la réponse de l'exercice 1
  1. A ∧ P
  2. (A ∨ E) ∧ P
  3. ¬A ∧ ¬E, ou ¬(A ∨ E) par De Morgan.
  4. A ⊕ E, c'est-à-dire (A ∨ E) ∧ ¬(A ∧ E), ou encore (A ∧ ¬E) ∨ (¬A ∧ E).
  5. ¬A ⇒ E. Comme ¬A ⇒ E ≡ ¬¬A ∨ E ≡ A ∨ E, cette règle dit simplement « le BTS ou deux ans d'expérience (ou les deux) ».

Tu avais trouvé ?

Exercice 2 sur 5 Le bon sens de la flèche Réussi À revoir

Traduis chaque phrase par une implication entre C : « le compte est activé » et M : « l'utilisateur a changé son mot de passe provisoire ».

  1. Le compte est activé seulement si l'utilisateur a changé son mot de passe provisoire.
  2. Il suffit que l'utilisateur change son mot de passe provisoire pour que son compte soit activé.
  3. Il faut que l'utilisateur change son mot de passe provisoire pour que son compte soit activé.
  4. Le compte est activé dès que l'utilisateur a changé son mot de passe provisoire.
Voir la réponseMasquer la réponse de l'exercice 2
  1. C ⇒ M (« seulement si » introduit la conclusion).
  2. M ⇒ C (« il suffit » introduit l'hypothèse).
  3. C ⇒ M (« il faut » introduit la conclusion : changer le mot de passe est nécessaire).
  4. M ⇒ C (« dès que » introduit l'hypothèse).

Les phrases 1 et 3 disent la même chose ; les phrases 2 et 4 aussi. Si les deux groupes sont vrais, on a C ⇔ M.

Tu avais trouvé ?

Exercice 3 sur 5 Avec des quantificateurs Réussi À revoir

On note E l'ensemble des employés, L l'ensemble des logiciels, et u(e, l) : « l'employé e utilise le logiciel l ». Traduis en symboles :

  1. Chaque employé utilise au moins un logiciel.
  2. Il y a un logiciel utilisé par tous les employés.
  3. Aucun employé n'utilise tous les logiciels.
  4. Certains logiciels ne sont utilisés par personne.
Voir la réponseMasquer la réponse de l'exercice 3
  1. ∀e ∈ E, ∃l ∈ L, u(e, l)
  2. ∃l ∈ L, ∀e ∈ E, u(e, l)
  3. ¬(∃e ∈ E, ∀l ∈ L, u(e, l)), ce qui équivaut à ∀e ∈ E, ∃l ∈ L, ¬u(e, l) : « chaque employé a au moins un logiciel qu'il n'utilise pas ».
  4. ∃l ∈ L, ∀e ∈ E, ¬u(e, l)

Tu avais trouvé ?

Exercice 4 sur 5 Lire une formule Réussi À revoir

Avec les notations de l'exercice précédent, et s(l) : « le logiciel l est sous licence libre », écris une phrase naturelle pour chaque formule.

  1. ∀l ∈ L, s(l)
  2. ∃l ∈ L, ¬s(l) ∧ (∀e ∈ E, u(e, l))
  3. ∀e ∈ E, ∀l ∈ L, u(e, l) ⇒ s(l)
Voir la réponseMasquer la réponse de l'exercice 4
  1. « Tous les logiciels sont sous licence libre. »
  2. « Il existe un logiciel non libre que tous les employés utilisent. »
  3. « Les employés n'utilisent que des logiciels libres » (tout logiciel utilisé par un employé est libre).

Tu avais trouvé ?

Exercice 5 sur 5 Une condition d'alerte Réussi À revoir

Un outil de supervision envoie une alerte quand l'espace disque libre est inférieur à 10 %, ou quand la charge processeur dépasse 90 % pendant plus de 5 minutes, sauf pendant la fenêtre de maintenance.

  1. Définis les propositions élémentaires et écris la condition d'alerte.
  2. Écris la condition « pas d'alerte » sous une forme sans négation devant une parenthèse.
  3. Écris la condition d'alerte en Python, avec les variables disque_libre (en %), cpu (en %), duree_cpu (en minutes) et maintenance (booléen).
Voir la réponseMasquer la réponse de l'exercice 5
  1. D : « l'espace disque libre est inférieur à 10 % » ; C : « la charge processeur dépasse 90 % » ; T : « cette charge dure plus de 5 minutes » ; M : « on est dans la fenêtre de maintenance ». Alerte ≡ (D ∨ (C ∧ T)) ∧ ¬M.
  2. Par De Morgan : ¬((D ∨ (C ∧ T)) ∧ ¬M) ≡ ¬(D ∨ (C ∧ T)) ∨ M ≡ (¬D ∧ ¬(C ∧ T)) ∨ M ≡ (¬D ∧ (¬C ∨ ¬T)) ∨ M. En français : pas d'alerte si l'on est en maintenance, ou si le disque a au moins 10 % libre et que la charge ne dépasse pas 90 % ou pas depuis plus de 5 minutes.
  3. Une seule expression suffit :
python
alerte = (disque_libre < 10 or (cpu > 90 and duree_cpu > 5)) and not maintenance

Tu avais trouvé ?

Chapitre terminé !

Fais les 5 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Langage ensembliste : inclusion, intersection, réunionRevoir le sommaire du cours