Ajoute TD1 Python et représentation des nombres + slides

This commit is contained in:
Alexis Fourmaux 2025-07-29 17:01:58 +02:00
parent e6a1d36ffd
commit 68a8c00624
13 changed files with 590 additions and 6 deletions

View file

@ -0,0 +1,150 @@
# TD - Représentation des nombres et Python
1. Écrire un programme qui demande à lutilisateurice dentrer le nom et lâge.
Il affichera ensuite la phrase `"Bonjour <nom>, vous aurez 30 ans en <année>"`
```python
nom = input("Entrer votre nom : ")
age = int(input("Entrer votre age : "))
print(f"Bonjour {nom}, vous aurez 30 ans en {30 - age + 2025}")
```
2. Écrire un programme qui demande à lutilisatrice dentrer la largeur et la longueur dun rectangle. Le programme calcule et affiche la surface et le périmètre.
*Utilisez des variables de type `float`*
```python
largeur = float(input("Largeur (m) : "))
longueur = float(input("Longueur (m) : "))
surface = largeur * longueur
perimetre = 2*(largeur + longueur)
print(f"Surface : {surface} m²")
print(f"Périmètre : {perimetre} m")
```
2. Écrire un programme qui demande à l'utilisatrice d'entrer un rayon et une hauteur de cône. Le programme calculera le volume du cône. Pour rappel, la formule de calcul du volume d'un cône est : $V = \frac{1}{3}.\pi.r^2.h$
```python
from math import pi
rayon = float(input("Rayon du cône (m) :"))
hauteur = float(input("Hauteur du cône (m) :"))
volume = (pi * hauteur * rayon ** 2) / 3.0
print("Volume du cône =", volume, "m3")
```
3. Écrire un programme qui demande à l'utilisateur de saisir 3 notes et d'en faire la moyenne. *Utilisez des variables de type `float`*
```python
note_1 = float(input("1ere note : "))
note_2 = float(input("2e note : "))
note_3 = float(input("3e note : "))
moyenne = (note_1 + note_2 + note_3)/3
print(f"Moyenne : {moyenne}")
```
4. Écrire un programme qui demande à l'utilisatrice de saisir deux nombres. Le programme comparera les deux nombres de façon à afficher une comparaison avec les symboles `<, > ou =`, comme dans l'exemple :
```
1er nombre : 14
2nd nombre : 12
14 > 12
```
```python
nombre_1 = float(input("1er nombre : "))
nombre_2 = float(input("2nd nombre : "))
if nombre_1 > nombre_2 :
print(f"{nombre_1} > {nombre_2}")
elif nombre_1 < nombre_2 :
print(f"{nombre_1} < {nombre_2}")
else:
print(f"{nombre_1} = {nombre_2}")
```
5. Écrire un programme indiquant si un nombre saisi par l'utilisateur est pair ou impair
```python
nombre = int(input("Nombre : "))
if nombre % 2:
print(f"{nombre} est impair")
else:
print(f"{nombre} est pair")
```
6. Écrire un programme qui demande à l'utilisatrice d'entrer un nombre. Le programme affichera les 10 nombres suivants **sur une seule ligne**. *Utilisez une boucle `for`*
```python
nombre = int(input("Entrez un nombre : "))
for i in range (1, 11):
print(nombre + i, end=" ")
```
7. Faire le même exercice mais avec une boucle `while` cette fois.
```python
nombre = int(input("Entrez un nombre : "))
nombre_affiche = nombre
while nombre_affiche != nombre + 10:
nombre_affiche += 1
print(nombre_affiche, end=" ")
```
10. Écrire un script python permettant de convertir en base 10 (décimal) un nombre écrit en binaire sous forme d'une chaîne de caractères. Vous demanderez à l'utilisateur ou l'utilisatrice le nombre à convertir, et vous afficherez le résultat.
```python
base = 2
nombre_binaire = input("Saisissez le nombre à convertir")
nombre_decimal = 0
puissance = len(nombre_binaire) - 1
for a in nombre_binaire:
nombre_decimal += int(a) * base ** puissance
puissance -= 1
print(f"{nombre_binaire}b = {nombre_decimal}")
```
10. Écrire un programme permettant d'afficher les 15 premiers termes de la suite de Fibonacci. Pour rappel, la suite de Fibonacci est une suite de nombres dont chaque nombre est la somme des deux précédents. Elle commence par 0 et 1.
```python
n0 = 0
n1 = 1
print(n0, n1, end=" ")
for i in range(0, 13):
n2 = n0 + n1
n0 = n1
n1 = n2
print(n2, end=" ")
```
11. Écrire un programme qui permet d'afficher le résultat de l'opération factorielle d'un nombre. Pour rappel, factorielle de $n$ s'écrit $n!$ et vaut le produit de tous les nombres entiers de 1 à n.
Par exemple : $5! = 1\times2\times3\times4\times5 = 120$
```python
nombre = int(input("Nombre : "))
resultat = 1
for i in range(1, nombre + 1):
resultat = resultat * i
print(f"{nombre}! = {resultat}")
```

View file

@ -0,0 +1,39 @@
# TD - Représentation des nombres et Python
1. Écrire un programme qui demande à lutilisateurice dentrer le nom et lâge.
Il affichera ensuite la phrase `"Bonjour <nom>, vous aurez 30 ans en <année>"`
2. Écrire un programme qui demande à lutilisatrice dentrer la largeur et la longueur dun rectangle. Le programme calcule et affiche la surface et le périmètre.
*Utilisez des variables de type `float`*
2. Écrire un programme qui demande à l'utilisatrice d'entrer un rayon et une hauteur de cône. Le programme calculera le volume du cône. Pour rappel, la formule de calcul du volume d'un cône est : $V = \frac{1}{3}.\pi.r^2.h$
3. Écrire un programme qui demande à l'utilisateur de saisir 3 notes et d'en faire la moyenne. *Utilisez des variables de type `float`
4. Écrire un programme qui demande à l'utilisatrice de saisir deux nombres. Le programme comparera les deux nombres de façon à afficher une comparaison avec les symboles `<, > ou =`, comme dans l'exemple :
```
1ere valeur : 14
2nde valeur : 12
14 > 12
```
5. Écrire un programme indiquant si un nombre saisi par l'utilisateur est pair ou impair
6. Écrire un programme qui demande à l'utilisatrice d'entrer un nombre. Le programme affichera les 10 nombres suivants **sur une seule ligne**. *Utilisez une boucle `for`*
7. Faire le même exercice mais avec une boucle `while` cette fois.
10. Écrire un script python permettant de convertir en base 10 (décimal) un nombre écrit en binaire sous forme d'une chaîne de caractères. Vous demanderez à l'utilisateur ou l'utilisatrice le nombre à convertir, et vous afficherez le résultat.
10. Écrire un programme permettant d'afficher les 15 premiers termes de la suite de Fibonacci. Pour rappel, la suite de Fibonacci est une suite de nombres dont chaque nombre est la somme des deux précédents. Elle commence par 0 et 1.
11. Écrire un programme qui permet d'afficher le résultat de l'opération factorielle d'un nombre. Pour rappel, factorielle de $n$ s'écrit $n!$ et vaut le produit de tous les nombres entiers de 1 à n.
Par exemple : $5! = 1\times2\times3\times4\times5 = 120$

View file

@ -0,0 +1,22 @@
# TD Python
Ecrire un script python permettant de convertir en binaire un nombre entier écrit en base 10. Vous demanderez à l'utilisateur ou l'utilisatrice le nombre à convertir, et vous afficherez le résultat.
```python
nombre_decimal = input("Saisissez le nombre à convertir : ")
nombre_binaire = ""
quotient = int(nombre_decimal)
resultat = ""
while quotient != 0:
reste = quotient % 2
quotient = quotient // 2
resultat += str(reste)
resultat = resultat[::-1]
print(resultat)
```

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Before After
Before After

View file

@ -59,7 +59,7 @@ Exemples:
Chaque symbole est appelé un **bit** (**Bi**nary dig**it*) pour les distinguer des chiffres du système décimal.
On regroupe souvent les bits en paquets de 8 que l'on va appeler **octets** (bytes en anglais).
On regroupe souvent les bits en paquets de 8 que l'on va appeler **octets** (bytes en anglais). Un octet permet de représenter 256 nombres (de 0 à 255)
### MSB et LSB

View file

@ -0,0 +1,56 @@
# TD Représentation des nombres
1. Convertissez les nombres suivants en décimal
- $\mathrm{5B0F}_{|16}$
* $23311_{|10}$
- `0x1001`
* $4097_{|10}$
- $10011010_{|2}$
* $154_{|10}$
- `1001b`
* $9_{|10}$
2. Convertissez les nombres suivants en binaire
- $251_{|10}$ (utilisez les deux méthodes)
* 1111 1011b
- $3887_{|10}$ (utilisez les deux méthodes)
* 1111 0010 1111b
- $\mathrm{532}_{|16}$
* 0101 0011 0010b
- $\mathrm{5B0F}_{|16}$
* 0101 1011 0000 1111b
3. Convertissez les nombres suivants en hexadécimal
- $10011010_{|2}$
* 0x9A
- $100110101_{|2}$
* 0x135
- $111 1001 1100 1011 1101 0001_{|2}$
* 0x79CBD1
4. Combien de nombres un octet permet-il de représenter ? Justifier.
* 2⁸ = 256 -> 256 nombres
5. En admettant qu'un nombre entier naturel soit codé sur 32 bits, quelle est la valeur maximale que peut avoir un entier naturel ? À votre avis, dans un système informatique, que se passe-t-il si on augmente de 1 la valeur maximale d'un entier ?
* 2³² = 4 294967296 -> valeur max = 4 294967295 (Il ne faut pas oublier le zéro)
* Il repasse à zéro : on appelle ça un débordement (overflow en anglais). C'est une source de bugs courante. C'est pour cela qu'il faut être attentif à la valeur maximale qu'un nombre peut avoir dans vos programmes.
6. Mon ordinateur m'indique qu'un fichier fait 13 560 788 octets. Combien cela représente-t-il environ (1 chiffre après la virgule)
- en kio
* 13 560 788 / 2¹⁰ = 13243,0 kio
- en Mio
* 13 560 788 / 2²⁰ = 12,9 Mio
- en ko
* 13 560,8 ko
- en Mo
* 13,6 Mo
7. Quelle est la capacité d'un disque dur de 1To
- en Go
* 1000 Go
- en Mo
* 1 000 000 Mo
- en Gio
* 10¹² / 2³⁰ = 932,3 Gio
- en Mio
* 953 674,3 Mio

View file

@ -0,0 +1,34 @@
# TD Représentation des nombres
1. Convertissez les nombres suivants en décimal
- $\mathrm{5B0F}_{|16}$
- `0x1001`
- $10011010_{|2}$
- `1001b`
2. Convertissez les nombres suivants en binaire
- $251_{|10}$ (utilisez les deux méthodes)
- $3887_{|10}$ (utilisez les deux méthodes)
- $\mathrm{532}_{|16}$
- $\mathrm{5B0F}_{|16}$
3. Convertissez les nombres suivants en hexadécimal
- $10011010_{|2}$
- $100110101_{|2}$
- $111 1001 1100 1011 1101 0001_{|2}$
4. Combien de nombres un octet permet-il de représenter ? Justifier.
5. En admettant qu'un nombre entier naturel soit codé sur 32 bits, quelle est la valeur maximale que peut avoir un entier naturel ? À votre avis, dans un système informatique, que se passe-t-il si on augmente de 1 la valeur maximale d'un entier ?
7. Quelle est la capacité d'un disque dur de 1To
- en Go
- en Mo
- en Gio
- en Mio
8. Mon ordinateur m'indique qu'un fichier fait 13 560 788 octets. Combien cela représente-t-il environ (1 chiffre après la virgule)
- en Kio
- en Mio
- en Ko
- en Mo

View file

@ -3,8 +3,11 @@
- [Bases de l'algorithmique avec Python](./CIEL1/01-bases-python/algorithmique-python.md)
- [TP1 - Découverte de Python](./CIEL1/01-bases-python/tp/01_decouverte.md)
- [TP1 - Corrigé - Découverte de Python](./CIEL1/01-bases-python/tp/_01_decouverte.md)
- [L'adressage IP](./CIEL1/02-reseau/adressage-ip.md)
- [Représentation des nombres](./CIEL1/02-reseau/numeration.md)
- [TD1 - Bases de Python](./CIEL1/01-bases-python/td/td01-python.md)
- [TD2 - Python](./CIEL1/01-bases-python/td/td02.md)
- [L'adressage IP](./CIEL1/02-reseau/cours/adressage-ip.md)
- [Représentation des nombres](./CIEL1/02-reseau/cours/numeration.md)
- [TD1 - Représentation des nombres](./CIEL1/02-reseau/td/td01-numeration.md)
- [L'environnement de développement](./CIEL1/03-dev-env/dev-env.md)
- [Les conteneurs](./CIEL1/03-dev-env/conteneurs.md)
- [Git](./CIEL1/03-dev-env/git.md)

View file

@ -152,8 +152,8 @@ Exercice :
<!--
Capacité donnée : 512 Go = 512.10⁹ octets
⇒ Capacité en Gio : 512.10⁹ / 230 ≈ 476,84 Gio
⇒ Capacité en Tio : 512.10⁹ / 240 ≈ 0,46 Tio
⇒ Capacité en Gio : 512.10⁹ / 2³⁰ ≈ 476,84 Gio
⇒ Capacité en Tio : 512.10⁹ / 2⁴⁰ ≈ 0,46 Tio
-->
---
@ -247,7 +247,7 @@ Exercice: Convertir en binaire
Exemple avec le nombre $53_{|10}$ qui s'écrit $110101_{|2}$ en binaire :
![divisions successives](../cours/CIEL1/02-reseau/divisions_successives.jpg)
![divisions successives](../cours/CIEL1/02-reseau/cours/divisions_successives.jpg)
---
<style scoped>

View file

@ -0,0 +1,280 @@
---
marp: true
theme: catppuccin
paginate: true
size: 4:3
transition: coverflow
footer: ''
math: katex
---
<style>
section {
font-size: 28px;
}
</style>
# TD - Représentation des nombres et Python
---
## Représentation des nombres
---
1. Convertissez les nombres suivants en décimal
- $\mathrm{5B0F}_{|16}$
* $23311_{|10}$
- `0x1001`
* $4097_{|10}$
- $10011010_{|2}$
* $154_{|10}$
- `1001b`
* $9_{|10}$
---
2. Convertissez les nombres suivants en binaire
- $251_{|10}$ (utilisez les deux méthodes)
* 1111 1011b
- $3887_{|10}$ (utilisez les deux méthodes)
* 1111 0010 1111b
- $\mathrm{532}_{|16}$
* 0101 0011 0010b
- $\mathrm{5B0F}_{|16}$
* 0101 1011 0000 1111b
---
3. Convertissez les nombres suivants en hexadécimal
- $10011010_{|2}$
* 0x9A
- $100110101_{|2}$
* 0x135
- $111 1001 1100 1011 1101 0001_{|2}$
* 0x79CBD1
---
4. Combien de nombres un octet permet-il de représenter ? Justifier.
* 2⁸ = 256 -> 256 nombres
---
5.
1. En admettant qu'un nombre entier naturel soit codé sur 32 bits, quelle est la valeur maximale que peut avoir un entier naturel ?
* 2³² = 4 294967296
* Donc valeur max = 4 294967295 (Il ne faut pas oublier le zéro)
2. À votre avis, dans un système informatique, que se passe-t-il si on augmente de 1 la valeur maximale d'un entier ?
* Il repasse à zéro : on appelle ça un débordement (overflow en anglais). C'est une source de bugs courante. C'est pour cela qu'il faut être attentif à la valeur maximale qu'un nombre peut avoir dans vos programmes.
---
6. Mon ordinateur m'indique qu'un fichier fait 13 560 788 octets. Combien cela représente-t-il environ (1 chiffre après la virgule)
- en kio
* 13 560 788 / 2¹⁰ = 13243,0 kio
- en Mio
* 13 560 788 / 2²⁰ = 12,9 Mio
- en ko
* 13 560,8 ko
- en Mo
* 13,6 Mo
---
7. Quelle est la capacité d'un disque dur de 1To
- en Go
* 1000 Go
- en Mo
* 1 000 000 Mo
- en Gio
* 10¹² / 2³⁰ = 932,3 Gio
- en Mio
* 953 674,3 Mio
---
## Python
---
1. Écrire un programme qui demande à lutilisateurice dentrer le nom et lâge.
Il affichera ensuite la phrase :
`"Bonjour <nom>, vous aurez 30 ans en <année>"`
---
```python
nom = input("Entrer votre nom : ")
age = int(input("Entrer votre age : "))
print(f"Bonjour {nom}, vous aurez 30 ans en {30 - age + 2025}")
```
---
2. Écrire un programme qui demande à lutilisatrice dentrer la largeur et la longueur dun rectangle. Le programme calcule et affiche la surface et le périmètre.
*Utilisez des variables de type `float`*
---
```python
largeur = float(input("Largeur (m) : "))
longueur = float(input("Longueur (m) : "))
surface = largeur * longueur
perimetre = 2*(largeur + longueur)
print(f"Surface : {surface} m²")
print(f"Périmètre : {perimetre} m")
```
---
3. Écrire un programme qui demande à l'utilisatrice d'entrer un rayon et une hauteur de cône. Le programme calculera le volume du cône. Pour rappel, la formule de calcul du volume d'un cône est : $V = \frac{1}{3}.\pi.r^2.h$
---
```python
from math import pi
rayon = float(input("Rayon du cône (m) :"))
hauteur = float(input("Hauteur du cône (m) :"))
volume = (pi * hauteur * rayon ** 2) / 3.0
print("Volume du cône =", volume, "m3")
```
---
4. Écrire un programme qui demande à l'utilisateur de saisir 3 notes et d'en faire la moyenne. *Utilisez des variables de type `float`*
---
```python
note_1 = float(input("1ere note : "))
note_2 = float(input("2e note : "))
note_3 = float(input("3e note : "))
moyenne = (note_1 + note_2 + note_3)/3
print(f"Moyenne : {moyenne}")
```
---
5. Écrire un programme qui demande à l'utilisatrice de saisir deux nombres. Le programme comparera les deux nombres de façon à afficher une comparaison avec les symboles `<, > ou =`, comme dans l'exemple :
```
1er nombre : 14
2nd nombre : 12
14 > 12
```
---
```python
nombre_1 = float(input("1er nombre : "))
nombre_2 = float(input("2nd nombre : "))
if nombre_1 > nombre_2 :
print(f"{nombre_1} > {nombre_2}")
elif nombre_1 < nombre_2 :
print(f"{nombre_1} < {nombre_2}")
else:
print(f"{nombre_1} = {nombre_2}")
```
---
6. Écrire un programme indiquant si un nombre saisi par l'utilisateur est pair ou impair
---
```python
nombre = int(input("Nombre : "))
if nombre % 2:
print(f"{nombre} est impair")
else:
print(f"{nombre} est pair")
```
---
7. Écrire un programme qui demande à l'utilisatrice d'entrer un nombre. Le programme affichera les 10 nombres suivants **sur une seule ligne**. *Utilisez une boucle `for`*
---
```python
nombre = int(input("Entrez un nombre : "))
for i in range (1, 11):
print(nombre + i, end=" ")
```
---
8. Faire le même exercice mais avec une boucle `while` cette fois.
---
```python
nombre = int(input("Entrez un nombre : "))
nombre_affiche = nombre
while nombre_affiche != nombre + 10:
nombre_affiche += 1
print(nombre_affiche, end=" ")
```
---
9. Écrire un script python permettant de convertir en base 10 (décimal) un nombre écrit en binaire sous forme d'une chaîne de caractères. Vous demanderez à l'utilisateur ou l'utilisatrice le nombre à convertir, et vous afficherez le résultat.
---
```python
base = 2
nombre_binaire = input("Saisissez le nombre à convertir")
nombre_decimal = 0
puissance = len(nombre_binaire) - 1
for a in nombre_binaire:
nombre_decimal += int(a) * base ** puissance
puissance -= 1
print(f"{nombre_binaire}b = {nombre_decimal}")
```
---
10. Écrire un programme permettant d'afficher les 15 premiers termes de la suite de Fibonacci. Pour rappel, la suite de Fibonacci est une suite de nombres dont chaque nombre est la somme des deux précédents. Elle commence par 0 et 1.
---
```python
n0 = 0
n1 = 1
print(n0, n1, end=" ")
for i in range(0, 13):
n2 = n0 + n1
n0 = n1
n1 = n2
print(n2, end=" ")
```
---
11. Écrire un programme qui permet d'afficher le résultat de l'opération factorielle d'un nombre. Pour rappel, factorielle de $n$ s'écrit $n!$ et vaut le produit de tous les nombres entiers de 1 à n.
Par exemple : $5! = 1\times2\times3\times4\times5 = 120$
---
```python
nombre = int(input("Nombre : "))
resultat = 1
for i in range(1, nombre + 1):
resultat = resultat * i
print(f"{nombre}! = {resultat}")
```