Numérique et Sciences Informatiques > Préparation aux Épreuves du Baccalauréat NSI > Révisions Thématiques > Représentation des données

Représentation des données : Exemples et exercices pratiques

Consolidez vos connaissances sur la représentation des données avec des exemples concrets et des exercices pratiques pour vous préparer au Baccalauréat NSI.

Conversion binaire - décimal

La conversion entre les systèmes binaires et décimaux est une compétence essentielle. Voici comment procéder :

Binaire vers Décimal : Multipliez chaque bit par sa puissance de 2 correspondante (en commençant par 20 pour le bit le plus à droite) et additionnez les résultats.

Exemple : 101102 = (1 * 24) + (0 * 23) + (1 * 22) + (1 * 21) + (0 * 20) = 16 + 0 + 4 + 2 + 0 = 2210

Décimal vers Binaire : Divisez le nombre décimal par 2 et notez le reste (0 ou 1). Continuez à diviser le quotient par 2 jusqu'à obtenir un quotient de 0. Les restes, lus de bas en haut, forment le nombre binaire.

Exemple : 2510

  1. 25 / 2 = 12 reste 1
  2. 12 / 2 = 6 reste 0
  3. 6 / 2 = 3 reste 0
  4. 3 / 2 = 1 reste 1
  5. 1 / 2 = 0 reste 1
Donc, 2510 = 110012

Manipulation de nombres flottants : Erreurs d'arrondi

En raison de la représentation finie des nombres flottants, des erreurs d'arrondi peuvent se produire lors des calculs.

Exemple : En Python, essayez d'additionner 0.1 et 0.2 :

>>> 0.1 + 0.2
0.30000000000000004
Le résultat n'est pas exactement 0.3. Cela est dû à la manière dont les nombres 0.1 et 0.2 sont représentés en binaire (ils ne peuvent pas être représentés de manière exacte).

Pour éviter ces problèmes, il est important de :
  1. Être conscient des limitations de la représentation des nombres flottants.
  2. Utiliser des fonctions d'arrondi si nécessaire.
  3. Éviter les comparaisons directes d'égalité entre nombres flottants. Utilisez plutôt une tolérance : abs(a - b) < tolerance

Exercice : Décodage de caractères Unicode

Supposons que vous ayez le code Unicode U+00E9. Quel est le caractère correspondant ?

U+00E9 correspond à la lettre 'é' (e accent aigu).

Vous pouvez utiliser une table Unicode ou un outil de conversion en ligne pour trouver le caractère correspondant à un code Unicode donné.

Essayez avec U+20AC. Vous trouverez que cela correspond au symbole de l'euro (€).

Représentation d'une image en niveaux de gris

Une image en niveaux de gris peut être représentée par une matrice de valeurs, où chaque valeur représente l'intensité du gris (0 pour le noir, 255 pour le blanc).

Exemple : Une image de 3x3 pixels pourrait être représentée par le tableau suivant :

[[0, 50, 100],
 [150, 200, 255],
 [200, 100, 50]]
Chaque valeur représente l'intensité du gris pour le pixel correspondant. Vous pouvez manipuler ces valeurs pour modifier l'image (par exemple, augmenter le contraste ou inverser les couleurs).

Exercice : Compression d'une chaîne de caractères (Run-Length Encoding)

Le Run-Length Encoding (RLE) est une technique de compression simple qui consiste à remplacer des séquences de caractères identiques par un seul caractère suivi du nombre de répétitions.

Exemple : La chaîne 'AAABBBCCCDD' peut être compressée en 'A3B3C3D2'.

Exercice : Écrivez un algorithme qui prend une chaîne de caractères en entrée et renvoie sa version compressée en utilisant RLE.

Solution possible (en pseudo-code) :

fonction compresser(chaine):
 resultat = ""
 compteur = 1
 pour i de 1 à longueur(chaine):
 si chaine[i] == chaine[i-1]:
 compteur = compteur + 1
 sinon:
 resultat = resultat + chaine[i-1] + compteur
 compteur = 1
 resultat = resultat + chaine[longueur(chaine) - 1] + compteur // Ajout du dernier groupe
 retourner resultat

Ce qu'il faut retenir

  • La conversion entre les systèmes binaires et décimaux est une compétence fondamentale.
  • Les erreurs d'arrondi sont inévitables avec les nombres flottants. Soyez-en conscient et utilisez des techniques pour les minimiser.
  • Unicode permet de représenter un large éventail de caractères.
  • Les images peuvent être représentées sous forme de matrices de valeurs.
  • Les techniques de compression comme RLE permettent de réduire la taille des données.
  • La pratique régulière avec des exercices et des exemples concrets est essentielle pour maîtriser la représentation des données.

FAQ

  • Comment puis-je minimiser les erreurs d'arrondi lors des calculs avec des nombres flottants ?

    Vous pouvez minimiser les erreurs d'arrondi en utilisant des fonctions d'arrondi, en évitant les comparaisons directes d'égalité et en étant conscient des limitations de la représentation des nombres flottants.
  • Quand est-il approprié d'utiliser la compression RLE ?

    La compression RLE est appropriée lorsque les données contiennent de longues séquences de caractères identiques. Elle est particulièrement efficace pour les images avec des zones de couleurs uniformes.