mise à jour
This commit is contained in:
0
representation_base/chapitre_1/TP/.gitkeep
Normal file
0
representation_base/chapitre_1/TP/.gitkeep
Normal file
207
representation_base/chapitre_1/TP/COULEURS.ipynb
Normal file
207
representation_base/chapitre_1/TP/COULEURS.ipynb
Normal file
@@ -0,0 +1,207 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Un peu de couleurs\n",
|
||||
"\n",
|
||||
"## Contexte\n",
|
||||
"\n",
|
||||
"Le codage informatique le plus simple de la couleur consiste à donner, pour chaque pixel, c'est-à-dire pour tout élément de l'image, trois valeurs chacune sur un octet, correspondant directement à la luminosité. \n",
|
||||
"\n",
|
||||
"Un pixel d'une image, d'un écran est constitué de 3 composantes de luminophore:\n",
|
||||
"\n",
|
||||
"<center>\n",
|
||||
"<span style='background-color: rgb(255, 0, 0);'> </span><span style='background-color: rgb(0, 255, 0);'> </span><span style='background-color: rgb(0, 0, 255);'> </span>\n",
|
||||
"</center>\n",
|
||||
"\n",
|
||||
"## Codage en RGB\n",
|
||||
"\n",
|
||||
"HTML et CSS acceptent la notation RGB `rgb(24,255,12)` où les nombres représentent la valeur en pourcentage pour le rouge, le vert et le bleu.\n",
|
||||
"\n",
|
||||
"Chaque nombre représente la valeur de la luminosité sur un octet (8 bits)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### À Faire\n",
|
||||
"\n",
|
||||
"1. Combien y a-t-il de valeurs possibles pour le rouge, vert et le bleu ? \n",
|
||||
"2. Combien de couleurs totales peut-on coder avec 3 octets ?\n",
|
||||
"3. Dans le code, modifier la valeur des composantes rgb pour changer la couleur du <span style='background-color: rgb(255, 255, 255);'>Fond du texte</span>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Codage condensé\n",
|
||||
"\n",
|
||||
"HTML et CSS acceptent également la notation condensée `#08A12C`, où le code après # agglutine trois valeurs hexadécimales qui sont directement celle des octets de commande des luminophores.\n",
|
||||
"\n",
|
||||
"Exemple : \n",
|
||||
"\n",
|
||||
"Le fond du texte suivant est en <span style='background-color: #808080;'>couleur grise</span>. \n",
|
||||
"\n",
|
||||
"En regardant le code source, on s'aperçoit que notation condensée de la couleur est : `#808080`. \n",
|
||||
"\n",
|
||||
"Il correspond à au codage RGB `rgb(128, 128, 128)` : <span style='background-color: rgb(128, 128, 128);'>couleur grise</span>\n",
|
||||
"\n",
|
||||
"### À Faire\n",
|
||||
"\n",
|
||||
"1. Convertir $80_{16}$ en base 10\n",
|
||||
"2. Quel lien existe-t-il entre une composante RGB et le codage condensé d'une couleur ?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Couleurs de l'arc-en-ciel\n",
|
||||
"\n",
|
||||
"Un arc-en-ciel est un phénomène optique se produisant dans le ciel, visible dans la direction opposée au Soleil quand il brille pendant la pluie. C'est un arc de cercle coloré d'un dégradé de couleurs continu du rouge, à l'extérieur, au jaune au vert et au bleu, jusqu'au violet à l'intérieur.\n",
|
||||
"\n",
|
||||
"L'objectif est de reconstituer les couleurs d'un arc en ciel !\n",
|
||||
"\n",
|
||||
"En analysant le code source, les couleurs de fond sont manquantes, vous devez modifiez les codes pour afficher les couleurs correspondantes.\n",
|
||||
"\n",
|
||||
"<table>\n",
|
||||
"<tr>\n",
|
||||
" <td style=\"background-color : rgb(255, 255, 255); color: black;\">Violet</td>\n",
|
||||
" <td style=\"background-color : #ffffff; color: black;\">Indigo</td>\n",
|
||||
" <td style=\"background-color : rgb(255, 255, 255); color: black;\">Bleu</td>\n",
|
||||
" <td style=\"background-color : #ffffff; color: black;\">Vert</td>\n",
|
||||
" <td style=\"background-color : rgb(255, 255, 255); color: black;\">Jaune</td>\n",
|
||||
" <td style=\"background-color : #ffffff; color: black;\">Orangé</td>\n",
|
||||
" <td style=\"background-color : rgb(255, 255, 255); color: black;\">Rouge</td>\n",
|
||||
"</tr>\n",
|
||||
"</table>\n",
|
||||
"\n",
|
||||
"Pour cela, vous disposez de la liste des valeurs des couleurs...en binaire :\n",
|
||||
"\n",
|
||||
"| Couleur | Valeur binaire |\n",
|
||||
"| :--: | :--: |\n",
|
||||
"| Violet | `10000000 00000000 10000000` |\n",
|
||||
"| Indigo | `00110011 01100110 11111111` |\n",
|
||||
"| Bleu | `00000000 11001100 11111111` |\n",
|
||||
"| Vert | `10011001 11001100 00000000` |\n",
|
||||
"| Jaune | `11111111 11001100 00000000`|\n",
|
||||
"| Orangé | `11111111 01100110 00000000`|\n",
|
||||
"| Rouge | `11111111 00000000 00000000`|\n",
|
||||
"\n",
|
||||
"### À Faire\n",
|
||||
"\n",
|
||||
"1. Convertir les valeurs binaires en décimales\n",
|
||||
"2. Programmer les blocs d'instructions permettant de :\n",
|
||||
" 1. convertir une couleur RGB en condensé,\n",
|
||||
" 2. convertir une couleur condensé en RGB.\n",
|
||||
"3. Modifier les codes couleurs du tableau pour afficher les couleurs de l'arc-en-ciel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Conversion RGB $\\rightarrow$ condensé\n",
|
||||
"\n",
|
||||
"Ci-dessous, l'aide de la fonction `hex`, obtenue en exécutant `help(hex)`\n",
|
||||
"\n",
|
||||
"```python\n",
|
||||
">>>help(hex)\n",
|
||||
"Help on built-in function hex in module builtins:\n",
|
||||
"\n",
|
||||
"hex(number, /)\n",
|
||||
" Return the hexadecimal representation of an integer.\n",
|
||||
" \n",
|
||||
" >>> hex(12648430)\n",
|
||||
" '0xc0ffee'\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"Écrire les instructions qui permettent de convertir la valeur d'un RGB en condensé"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 51,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"la composante condensé de ( 0 , 0 , 0 ) est : None\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# Conversion Codage RGB vers Codage condensé\n",
|
||||
"\n",
|
||||
"rouge = 0\n",
|
||||
"vert = 0\n",
|
||||
"bleu = 0 \n",
|
||||
"\n",
|
||||
"condense = None # valeur calculée du condensé de la couleur \n",
|
||||
"\n",
|
||||
"print(\"la composante condensé de (\", rouge, \",\", vert, \",\", bleu, \") est :\", condense)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Conversion condensé $\\rightarrow$ RGB\n",
|
||||
"\n",
|
||||
"Écrire les instructions qui permettent de convertir la valeur d'un condensé en RGB"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 46,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"la composante RGB de None est : 0 0 0\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# Conversion Codage condensé vers Codage RGB\n",
|
||||
"\n",
|
||||
"condense = None # valeur condensé de la couleur \n",
|
||||
"\n",
|
||||
"rouge = 0 # Extraire la valeur rouge de condense et la convertir en décimale\n",
|
||||
"vert = 0 # Extraire la valeur verte de condense et la convertir en décimale\n",
|
||||
"bleu = 0 # Extraire la valeur bleue de condense et la convertir en décimale\n",
|
||||
"\n",
|
||||
"print(\"la composante RGB de\", condense, \"est :\", rouge, vert, bleu)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.9.7"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
140
representation_base/chapitre_1/TP/README.md
Normal file
140
representation_base/chapitre_1/TP/README.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# Exercices : Représentation des nombres naturels
|
||||
|
||||
|
||||
|
||||
## Manipulation
|
||||
|
||||
__Question 1 :__ Écrire une fonction `est_valide(binaire)` qui retourne :
|
||||
|
||||
* **True** si le nombre est valide
|
||||
* **False** si le nombre est invalide.
|
||||
Le paramètre de la fonction sera une chaîne de caractères représentant un nombre écrit en base 2.
|
||||
|
||||
``` python
|
||||
>>> est_valide("100010101")
|
||||
True
|
||||
>>> est_valide("1010401034")
|
||||
False
|
||||
```
|
||||
|
||||
|
||||
|
||||
__Question 2 :__ Écrire une fonction ``est_pair(binaire)`` qui retourne :
|
||||
|
||||
* **True** si le nombre passé en paramètre est pair
|
||||
* **False** si le nombre passé en paramètre est impair.
|
||||
Le paramètre de la fonction sera une chaîne de caractères représentant un nombre écrit en base 2.
|
||||
|
||||
```python
|
||||
>>> est_paire('1001')
|
||||
False
|
||||
>>> est_paire('1010')
|
||||
True
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Conversion Binaire - Décimal
|
||||
|
||||
__Question 3 :__ Écrire une fonction ``deux_puissance(rang)`` qui retourne la puissance de 2 associée au rang passé en paramètre. Vous n'utiliserez pas les fonctions Python déjà existantes.
|
||||
|
||||
``` python
|
||||
>>> deux_puissance(0)
|
||||
1
|
||||
>>> deux_puissance(1)
|
||||
2
|
||||
>>> deux_puissance(2)
|
||||
4
|
||||
```
|
||||
|
||||
|
||||
|
||||
__Question 4 :__ A l'aide des fonctions précédentes, écrire une fonction ``binaire_en_decimal(binaire)`` qui retourne la valeur décimale du nombre passé en paramètre. Le paramètre sera une chaîne de caractères représentant un nombre binaire. On vérifiera que ce nombre binaire est valide.
|
||||
|
||||
``` python
|
||||
>>> binaire_en_decimal("1")
|
||||
1
|
||||
>>> binaire_en_decimal("1010")
|
||||
10
|
||||
>>> binaire_en_decimal("1001")
|
||||
9
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Conversion Décimal - Binaire
|
||||
|
||||
__Question 5 :__ Écrire une fonction ``division_euclidienne(nombre, diviseur)`` qui retourne le quotient et le reste obtenu lorsque l'on divise le paramètre *nombre* par le paramètre *diviseur*.
|
||||
|
||||
``` python
|
||||
>>> division_euclidienne(6,3)
|
||||
(2,0)
|
||||
>>> division_euclidienne(10,4)
|
||||
(2,2)
|
||||
>>> reste(6, 0)
|
||||
None
|
||||
```
|
||||
|
||||
|
||||
|
||||
__Question 6 :__ A l'aide de l'algorithme de la division euclidienne et des fonctions précédentes, écrire une fonction ``decimal_en_binaire(*decimal*)`` qui retourne une chaîne de caractères correspondant à la représentation binaire du nombre passé en paramètre.
|
||||
|
||||
|
||||
``` python
|
||||
>>> decimal_en_binaire(16)
|
||||
"10000"
|
||||
>>> decimal_en_binaire(31)
|
||||
"11111"
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Conversion Décimal - Hexadécimal
|
||||
|
||||
__Question 7 :__ Écrire une fonction ``symbole_hexa(decimal)`` qui retourne le symbole correspondant au paramètre dans la base 16.
|
||||
|
||||
```python
|
||||
>>> symbole_hexa(1)
|
||||
"1"
|
||||
>>> symbole_hexa(10)
|
||||
"A"
|
||||
```
|
||||
|
||||
|
||||
|
||||
__Question 8 :__ En s'inspirant des questions précédentes, écrire une fonction ``decimal_en_hexa(decimal)`` qui retourne une chaîne de caractères correspondant à la représentation en base 16 du nombre passé en paramètre.
|
||||
|
||||
``` python
|
||||
>>> decimal_en_hexa(21)
|
||||
"15"
|
||||
>>> decimal_en_hexa(2019)
|
||||
"7E3"
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Conversion Hexadécimal - Décimal
|
||||
|
||||
__Question 9 :__ écrire une fonction ``hexa_en_decimal(hexa)`` qui retourne le nombre correspondant à la représentation en base 10 du nombre passé en paramètre.
|
||||
|
||||
```python
|
||||
>>> hexa_en_decimal("A")
|
||||
10
|
||||
>>> decimal_en_hexa("E10F")
|
||||
57615
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Conversion en base $$n$$
|
||||
|
||||
__Question 10 :__ En s'inspirant des fonctions 8 et 10, écrire une fonction ``decimal_en_base_n(decimal, base)`` qui retourne une chaîne de caractères correspondant à la représentation en base *n* du nombre passé en paramètre.
|
||||
|
||||
```python
|
||||
>>> decimal_en_base_n(10,2)
|
||||
"1010"
|
||||
>>> decimal_en_base_n(10,16)
|
||||
"A"
|
||||
>>> decimal_en_base_n(10,5)
|
||||
"20"
|
||||
```
|
||||
101
representation_base/chapitre_1/TP/SHADOK.md
Normal file
101
representation_base/chapitre_1/TP/SHADOK.md
Normal file
@@ -0,0 +1,101 @@
|
||||
---
|
||||
title : TD - Les Shadoks
|
||||
author : M. BODDAERT, M. MIESZCZAK
|
||||
license : CC-BY-NC-SA
|
||||
---
|
||||
# Les Shadoks
|
||||
|
||||
## Contexte
|
||||
|
||||
Les Shadoks réussissent à compter avec seulement 4 mots de leur bien maigre vocabulaire : __GA BU ZO__ et __MEU__.
|
||||
|
||||
Dans cette [vidéo](https://youtu.be/lP9PaDs2xgQ), le professeur Shadoko explique simplement la méthode employée par les Shadoks.
|
||||
|
||||
Ci dessous, l'explication du professeur Shadoko:
|
||||
|
||||
_"Notez bien. Quand il n'y a pas de Shadok, on dit __GA__ et on écrit __O__.
|
||||
Quand il y a un Shadok en plus on dit __BU__ et on écrit __I__.
|
||||
Quand il y a un Shadok en plus on dit __ZO__ et on écrit __L__.
|
||||
Quand il y a un Shadok en plus on dit __MEU__ et on écrit __◺__._
|
||||
|
||||
_Quand il y a un Shadok en plus on se rend compte qu'on ne peut plus compter._
|
||||
|
||||
_On met tous les Shadoks dans une poubelle et on a __BU__ poubelle et __GA__ Shadok._
|
||||
|
||||
_Et on continue: __BUGA__; __BUBU__; __BUZO__...Et on continue_
|
||||
|
||||
_Les Shadoks applaudirent sauf un. Le devin plombier s'écria et disait qu'on n'avait pas idée des mettre des dessins sur des poubelles et des Shadoks et que la meilleure chose à faire, c'était de brûler Shadoko. Les Shadoks applaudirent aussi._
|
||||
|
||||
## Question 1
|
||||
|
||||
Complétez le tableau suivant en comptant jusqu'à 20 en _Shadoks_.
|
||||
|
||||
| Nombre | Shadok |
|
||||
| ---- | ---- |
|
||||
| 0 | GA |
|
||||
| 1 | BU |
|
||||
| 2 | ZO |
|
||||
| 3 | MEU |
|
||||
| 4 | |
|
||||
| 5 | |
|
||||
| 6 | |
|
||||
| 7 | |
|
||||
| 8 | |
|
||||
| 9 | |
|
||||
| 10 | |
|
||||
| 11 | |
|
||||
| 12 | |
|
||||
| 13 | |
|
||||
| 14 | |
|
||||
| 15 | |
|
||||
| 16 | |
|
||||
| 17 | |
|
||||
| 18 | |
|
||||
| 19 | |
|
||||
| 20 | |
|
||||
|
||||
## Question 2
|
||||
|
||||
1. Nous, humains, utilisons le système décimale. Quel est le système de numération utilisé par les Shadoks ?
|
||||
2. Quelle méthode permet de convertir un nombre décimal en shadok ? et inversement ?
|
||||
|
||||
## Question 3
|
||||
|
||||
Sachant que **ZO MEU GA** _shadoks_ correspond à $`(44)_{10}`$, convertissez les nombres shadoks suivants en décimal :
|
||||
|
||||
1. BUBUZO
|
||||
2. MEUGABU
|
||||
|
||||
Saurez vous sauver le professeur du bûcher,même si brûler le professeur est intéressant aussi faut dire, en révélant le nombre écrit sur le panneau ?
|
||||
|
||||
3. BUZOGAMEU
|
||||
|
||||
## Question 4
|
||||
|
||||
Plus difficile maintenant, le professeur a dénombré 21 shadoks hostiles à son système de numération et 94 shadoks favorables. Saurez vous écrire ces 2 entiers en écriture shadok ?
|
||||
|
||||
1. 21
|
||||
2. 94
|
||||
|
||||
## Question 5
|
||||
|
||||
Les shadoks parlent mais écrivent également !!
|
||||
|
||||
Convertissez les entiers écrits en shadoks, en décimale :
|
||||
|
||||
1. II0◺
|
||||
2. ◺I◺O
|
||||
3. IOIOIO
|
||||
|
||||
## Question 6
|
||||
|
||||
Le Professeur Shadoko s'étant enfui, les shadoks ont besoin d'un traducteur officiel décimal / shadok.
|
||||
|
||||
Convertissez en _écriture_ shadok, les nombres suivants :
|
||||
|
||||
1. 33
|
||||
2. 3210
|
||||
2. Votre jour / mois et année de naissance ! Les Shadoks vous souhaiteront un bon anniversaire prochainement.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user