Skip to content
Snippets Groups Projects
Verified Commit 15b531de authored by orestis.malaspin's avatar orestis.malaspin
Browse files

updated for 2022

parent fe528ef5
Branches
No related tags found
No related merge requests found
...@@ -50,6 +50,8 @@ date: "2022-11-02" ...@@ -50,6 +50,8 @@ date: "2022-11-02"
## Réusiner votre couverture de la reine avec des `enum` ## Réusiner votre couverture de la reine avec des `enum`
A faire à la maison comme exercice!
# Représentation des nombres (1/2) # Représentation des nombres (1/2)
* Le nombre `247`. * Le nombre `247`.
...@@ -124,7 +126,7 @@ $$ ...@@ -124,7 +126,7 @@ $$
```C ```C
num = 247 num = 247
while (2^N < num) { tant que (2^N < num) {
N += 1 N += 1
} }
``` ```
...@@ -134,7 +136,7 @@ $$ ...@@ -134,7 +136,7 @@ $$
2. Boucle 2. Boucle
```C ```C
while (N >= 0) { tant que (N >= 0) {
bit = num / 2^N bit = num / 2^N
num = num % 2^N num = num % 2^N
N += 1 N += 1
...@@ -194,7 +196,7 @@ $$ ...@@ -194,7 +196,7 @@ $$
. . . . . .
$$ $$
4294967295 2^{32}-1=4'294'967'295
$$ $$
...@@ -202,7 +204,7 @@ $$ ...@@ -202,7 +204,7 @@ $$
Que donne la multiplication de `1101` avec `0110`? Que donne la multiplication de `1101` avec `0110`?
* L'addition est la même que dans le système décimal * La mutliplication est la même que dans le système décimal
``` ```
1101 13 1101 13
...@@ -335,7 +337,7 @@ Pas de nombres négatifs encore... ...@@ -335,7 +337,7 @@ Pas de nombres négatifs encore...
11111110 => 00000001 + 00000001 = 00000010 = 2. 11111110 => 00000001 + 00000001 = 00000010 = 2.
``` ```
# Le complément à 2 (1/2) # Le complément à 2 (2/2)
## Quels sont les entiers représentables en 8 bits? ## Quels sont les entiers représentables en 8 bits?
...@@ -543,8 +545,8 @@ $$ ...@@ -543,8 +545,8 @@ $$
. . . . . .
* 24 bits ($23 + 1$) sont utiles pour la mantisse, soit $2^{24}-1$: * 24 bits ($23 + 1$) sont utiles pour la mantisse, soit $2^{24}-1$:
* La mantisse fait $\sim2^{24}\sim 10^7$, ou encore * La mantisse fait $\sim2^{24}\sim 10^7$,
* Ou encore $\sim \log_{10}(2^{24})\sim 7$, * Ou encore $\sim \log_{10}(2^{24})\sim 7$.
* Environ **sept** chiffres significatifs. * Environ **sept** chiffres significatifs.
# Nombres à virgule flottante double précision (64bits) # Nombres à virgule flottante double précision (64bits)
...@@ -670,8 +672,11 @@ Soit une erreur de près de 1/5e! ...@@ -670,8 +672,11 @@ Soit une erreur de près de 1/5e!
. . . . . .
## Le même phénomène se produit (à plus petite échelle) avec les `float` ou ## Le même phénomène se produit (à plus petite échelle) avec les `float` ou `double`.
`double`.
# And now for something completely different
\Huge La récursivité
# Exemple de récursivité (1/2) # Exemple de récursivité (1/2)
...@@ -781,6 +786,10 @@ int factorial(int n) { ...@@ -781,6 +786,10 @@ int factorial(int n) {
. . . . . .
Rappelez-vous vous l'avez fait en style **impératif** plus tôt.
. . .
```C ```C
double epsilon_machine(double eps) { double epsilon_machine(double eps) {
if (1.0 + eps != 1.0) { if (1.0 + eps != 1.0) {
...@@ -793,6 +802,8 @@ double epsilon_machine(double eps) { ...@@ -793,6 +802,8 @@ double epsilon_machine(double eps) {
# La récursivité (4/4) # La récursivité (4/4)
\footnotesize
## Exercice: que fait ce code récursif? ## Exercice: que fait ce code récursif?
```C ```C
...@@ -810,10 +821,14 @@ recurse(13); ...@@ -810,10 +821,14 @@ recurse(13);
. . . . . .
```C ```C
binaire(13): n = 13, n % 2 = 1, n / 2 = 6, recurse(13): n = 13, n % 2 = 1, n / 2 = 6,
binaire(6): n = 6, n % 2 = 0, n / 2 = 3, recurse(6): n = 6, n % 2 = 0, n / 2 = 3,
binaire(3): n = 3, n % 2 = 1, n / 2 = 1, recurse(3): n = 3, n % 2 = 1, n / 2 = 1,
binaire(1): n = 1, n % 2 = 1, n / 2 = 0. recurse(1): n = 1, n % 2 = 1, n / 2 = 0.
// affiche: 1 1 0 1 // affiche: 1 1 0 1
``` ```
. . .
Affiche la représentation binaire d'un nombre!
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment