0% ont trouvé ce document utile (0 vote)
69 vues5 pages

RepDonnées-codage Du Texte

Transféré par

arwenn7412
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
69 vues5 pages

RepDonnées-codage Du Texte

Transféré par

arwenn7412
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd

Nom / Prénom :

Représentation des données

Classe / Groupe : Séance 3 : Codage du texte cours/exo

1. L'ASCII (début des années 60)

Le code ASCII est l'un des plus anciens codes utilisés pour représenter du texte en informatique. ASCII
signifie (American Standard Code for Information Interchange).
Il se base sur un tableau contenant les caractères les plus utilisés en langue anglaise : les lettres de
l'alphabet en majuscule (de A à Z) et en minuscule (de a à z), les dix chiffres arabes (de 0 à 9), les signes de
ponctuation (point, virgule, point-virgule, guillemet, parenthèses, etc.), quelques symboles et certains
caractères spéciaux invisibles (espace, retour-chariot, tabulation, retour-arrière, etc.).
Les créateurs de ce code ont limité le nombre de ses caractères à 128, c'est-à-dire 2 7, pour qu'ils puissent
être codés avec seulement 7 bits : les ordinateurs utilisaient des cases mémoire de un octet, mais ils
réservaient toujours le 8e bit pour le contrôle de parité (c'est une sécurité pour éviter les erreurs, qui
étaient très fréquentes dans les premières mémoires électroniques).
Exemple : Le caractère A est codé en ASCII par le nombre 65 (dans notre système décimal habituel), qui
correspond en binaire au nombre 1000001.
Chaque caractère d'un texte codé en ASCII occupe alors un octet ; un texte de 5000 caractères occupe
donc 5 ko.
Exercice 1 :
1) Quel est la taille (en ko) d'un fichier texte contenant 75000 caractères ?

2) a) On tape la phrase "Bonjour à tous." dans un fichier créé avec un éditeur de texte comme
Notepad++ . Quelle est la taille (en octets) de ce fichier quand on le sauvegarde sur le disque dur ?

b) On tape la même phrase dans un fichier créé avec un logiciel de traitement de texte, comme
LibreOffice. Quelle est la taille (en octets) de ce fichier quand on le sauvegarde sur le disque dur ?
Comment expliquer ce résultat ?

Exercice 2 :
A l'aide d'une table ASCII, répondre aux questions suivantes.
1) Convertir en binaire la phrase suivante : L'an qui vient !
2) Que se cache derrière le code binaire suivant ? (vous pouvez aussi utiliser un des programmes faits
avec Python).
01101001 01101110 01100110 01101111 00100000 01100110 01101111 01110010 00100000
01100101 01110110 01100101 01110010 00100000 00100001
2. Normes ISO 8859
L'ASCII a tout de même un inconvénient : il ne code pas les caractères accentués par exemple.
Il a donc fallu étendre la table ASCII.
Pour remédier à ce problème, l'ISO (International Organization for Standardization) a proposé la norme
ISO 8859, une extension de l'ASCII qui utilise les huit bits de chaque octet pour représenter les caractères.
Combien a-t-on pu coder de caractères en plus ? ….............................................................................
Pour représenter le plus de caractères possible, la norme ISO 8859 définit plusieurs tables de
correspondances notées ISO-8859-n où n est le numéro de la table. Les premiers 128 caractères sont ceux
de la la norme ASCII : les 128 autres sont spécifiques à la table n.
En France, depuis l'apparition de l'euro, c'est le codage ISO-8859-15 qui permet d'écrire tout ce qu'on
veut dans notre langage.

3. Au niveau mondial : l'Unicode


La généralisation de l'utilisation d'internet dans le monde et des échanges interculturels a nécessité une
prise en compte d’un nombre beaucoup plus importants de caractères d’écriture (par exemple le
mandarin possède plus de 5000 caractères !). De plus certaines confusions étaient possibles, comme par
exemple lorsqu’il était prévu un caractère « signe monétaire », le même texte autorisant aux États-Unis
une dépense en dollars pouvait une fois transmis par courrier électronique au Royaume-Uni autoriser la
même dépense en livres sterling, sans que quoi que ce soit ait été modifié au texte... La norme Unicode a
été créée pour permettre le codage de textes écrits quelque soit le système d’écriture utilisé. On attribue
à chaque caractère un nom, une position normative et un bref descriptif qui seront les mêmes quelque
soit la plate-forme informatique ou le logiciel utilisés. Un consortium composé d’informaticiens, de
chercheurs, de linguistes, de personnalités du monde de la politique... s’occupe donc d’unifier toutes les
pratiques en un seul et même système : l’Unicode.
L’UTF-8 est l’encodage correspondant le plus répandu. Son codage de taille variable lui permet d'être en
moyenne moins coûteux en occupation mémoire. Maintenant, par défaut, les navigateurs Internet
utilisent le codage UTF-8 et les concepteurs de sites pensent de plus en plus à créer leurs pages web en
prenant en compte cette même norme. Voilà pourquoi il y a de moins en moins de problèmes de
compatibilité.

Exercice 3 :
Avant l'apparition de l'Unicode, il n'était pas rare de recevoir un courriel comme celui-ci :

1) Expliquer la raison pour laquelle ce message comporte des caractères non désirés.

2) A priori, quel est l'encodage du message original ?


Exercice 4 : CAPYTALE : bef6-4677464
1) Chercher les fonctions Python qui permettent :
- d'obtenir le code ASCII d'un caractère :
- d’obtenir le caractère correspondant à un entier n :
- de convertir un nombre décimal en binaire :
- de convertir un nombre décimal en base 16 :
- de convertir un nombre binaire en nombre décimal :
- de convertir un nombre en base 16 en base 10 :

Exercice 5 : Ecrire une fonction printASCIITable(c) qui renvoie pour un caractère c de la table ASCII une
ligne comportant :
le caractère ; le code en hexadécimal ; le code en décimal ; le code en binaire

Exercice 6 : Ecrire une fonction printASCII() qui affiche à l'écran les codes ASCII au format binaire d'une
chaîne de caractères.
Cette fonction prendra en paramètre une liste (qui contient le texte) ou une chaîne de caractères.
Par exemple printASCII(['B','O','N']) renvoie

Utiliser cette fonction pour vérifier vos réponses à l'exercice 2.

Exercice 7: Programmer une fonction qui convertit un texte en ASCII en remplaçant les caractères non
ASCII par un caractère donné en paramètre.
Paramètres : texte à convertir (string), caractère de remplacement
Retour : texte converti (string)
Et pour les plus rapides : Préparer les points importants d’un argumentaire à faire à l’oral sur la question
suivante :
« Quels sont les enjeux de l’encodage de caractères dans les échanges informatiques ? »
Exercice 5 :
Aujourd'hui, rendez-vous à la bibliothèque : en discutant avec un bibliothécaire, vous apprenez une information
capitale sur LE livre que vous cherchez au sein de la bibliothèque.
Pour savoir dans quel bâtiment il est, vous devez prendre la première lettre du nom de l'auteur et la convertir en un
entier (A donne 1, B donne 2, …).
Pour savoir dans quelle allée du bâtiment, on doit prendre l'âge de son fils aîné quand il a écrit le livre et le convertir en
un lettre (1 donne A, 2 donne B …)
Ecrire une fonction biblio() qui renvoie le numéro du bâtiment et la lettre correspondant à l'allée sur la même ligne,
sans espace entre les deux. La fonction doit "demander" à l'utilisateur le nom de l'auteur (la 1ère lettre étant en
majuscule) et l'âge de son fils aîné.
Par exemple avec les entrées Dopelgon et 6, la fonction renvoie 4F.

Exercice 6 :
Le dimanche, de nombreux enfants sont présents au sein de la bibliothèque avec leurs parents. La grande mode
ces derniers temps chez les enfants est de calculer leur « nombre d’amour » pour savoir s’ils sont amoureux
(ou pas) d’un autre enfant. Si deux enfants ont le même nombre alors ils sont amoureux.
Intrigué, vous décidez d’écrire un programme permettant de calculer rapidement le « nombre d’amour »
correspondant à un prénom donné.
Pour calculer ce nombre, on commence par convertir chaque lettre du prénom en un nombre (A vaut 0, B vaut
1...) puis on calcule la somme de ces nombres. Si le résultat est strictement plus petit que 10, alors on a trouvé
le « nombre d’amour ». Sinon, on remplace le nombre par la somme de ses chiffres. On continue ainsi tant que
le résultat est plus grand ou égal à 10.

INPUT
Les prénoms des deux enfants (en majuscules) sur deux lignes.

OUTPUT
Sur une seule ligne, les nombres d’amour de chacun des deux enfants.

Exemple :
en entrée : en sortie :

Vous aimerez peut-être aussi