--- title: Logique combinatoire subject: Cours export: - format: pdf template: courstex kernelspec: name: python3 display_name: Python 3 --- # Vocabulaire :::{prf:definition} Variable logique :nonumber: true Une **variable logique** est une variable qui ne peut prendre que deux valeurs, dites **états logiques** : 0 et 1. ::: :::{prf:definition} Table de vérité :nonumber: true Une **table de vérité** permet de renseigner les états logiques des sorties du système en fonction de ses entrées (exemple : @tab:verite). ::: :::{csv-table} Table de vérité :label: tab:verite :header-rows: 1 a,b,S 0,0,1 0,1,0 1,0,0 1,1,1 ::: :::{prf:definition} Chronogramme :nonumber: true Un **chronogramme** permet de représenter l'évolution des états logiques d'un système en fonction du temps (exemple : @fig:chronogramme). ::: ::::{figure} :label: fig:chronogramme :::{code-cell} python :tag: [remove-input] import matplotlib.pyplot as plt import numpy as np rng = np.random.default_rng(25) fig, [ax_a, ax_b, ax] = plt.subplots(3, figsize=(10, 4), sharex=True, sharey=True) ax.set(xlim=(0, 16), xticks=np.arange(0, 16), ylim=(-0.5, 1.5), yticks=(0, 1)) ax.set(xlabel="Temps (s)", ylabel="Signal logique") a = rng.integers(2, size=16) b = rng.integers(2, size=16) S = np.equal(a, b) ax_a.stairs(a, lw=3, baseline=None) ax_a.set_ylabel("a") ax_b.stairs(b, lw=3, baseline=None) ax_b.set_ylabel("b") ax.stairs(S, lw=3, baseline=None) ax.set_ylabel("S"); ::: Chronogramme :::: # Fonctions logiques Une fonction logique donne un résultat en fonction des valeurs d'entrée. Les fonctions logiques usuelles sont ET ($a\cdot{}b$), OU ($a+b$), NON ($\bar a$) et OU exclusif (XOR, $a\oplus{}b$). Les symboles et tables de vérité sont donnés sur la [page Wikipédia des fonctions logiques](https://fr.wikipedia.org/wiki/Fonction_logique#Repr%C3%A9sentation_graphique).