Cette application nécessite l'activation de Javascript.
Apprenez comment activer Javascript dans votre navigateur.
Vous n'êtes pas connecté.
Connexion
Ma Page
Changements Récents
Outils
Aide
Pages récentes
Les chaînes de caractères
Accueil
Frédéric Mallet
Programmation Orien...
POO - L3 Miage - S5...
Les chaînes de cara...
Modifier
la page
Nouvelle
page
Imprimer
la page
Plus
Page modifiée à
09:48, 11 Nov 2015
par
FredericMallet
0
Préférences d'impression
Voir la Table des Matières
Montrer les infos de modification
Montrer les notes finales en lien
Les chaînes de caractères
De $1
Table des matières
1.
Support de cours
1.1.
Le code 39
1.1.1.
Définition
2.
Le code 39 est un encodage utilisé (notamment sur les médicaments) pour représenter par un code à barres un message alphanumérique. Ce codage permet de représenter 43 caractères : les 26 majuscules, les 10 chiffres et 7 caractères de ponctuation. Le caractère '*' est réservé pour marquer le début du codage et la fin. Chaque caractère est codé à l'aide de 9 symboles, 5 barres et 4 espaces. Parmi ces symboles certains sont larges et d'autres sont étroits. Pour chaque caractère, exactement 3 symboles sont larges et les 6 autres sont étroits. D'où le nom ! On veut proposer une implantation en Java pour le code 39.
2.1.1.
Modèle
3.
Proposer une énumération Epaisseur qui encode les épaisseur d'un symbole : LARGE ou ETROIT. Cette énumération sera responsable de tous les aspects liés à l'épaisseur, notamment le fait qu'un symbole LARGE est entre 2 et 3 fois plus épais qu'un symbole ETROIT. Elle offrira également une opération pour dessiner le symbole dans un Graphics. Il s'agit simple de dessiner un rectangle plein noir ou blanc. On notera cependant que même si on ne connaît pas la couleur, on devrait pouvoir dessiner une rectangle de la bonne largeur et hauteur en supposant que la couleur est la bonne. Proposer une énumération Nature qui encode la nature des symboles : BARRE ou ESPACE. Cette énumération sera responsable de gérer la couleur (noire ou blanche). L'énumération possèdera une méthode pour affecter une couleur à un Graphics (cf. méthode setColor). Proposer une classe Symbole qui combine l'épaisseur et la nature. Quand on dessine un symbole, il faut choisir la couleur en fonction de la nature puis dessiner le motif. Chaque caractère est codé par 9 symboles. Pour un caractère donné, on utilisera une chaîne de caractères pour code les 9 symboles à utliiser. Par exemple, pour l'étoile on utilisera la chaîne "010010100". Une barre étroite (0), un espace large (1), une barre étroite (0), un espace étroit (0), une barre large (1), ... Pour une chaîne de 9 caractères donnée, on va itérer pour découvrir les neuf symboles associés. On pourra proposer une classe IterateurSymbole initialisée à la construction avec une chaîne de 0 et de 1. Elle aura une méthode terminee() qui renvoie true s'il n'y a pas plus de symboles et false sinon. Sa méthode suivant() construira un symbole suivant en fonction du caractère encodé. Tester ces classes en créant une Applet qui itère sur le code de l'étoile, génére les 9 symboles et les dessine.
3.1.1.
Table d'encodage
4.
Il s'agit maintenant d'encoder chacun des 43 caractères supportés par le code 39. Proposer une classe Code 39 qui fait exactement cela. On pourra par exemple avoir un tableau static de chaînes de caractères. Chaque élément du tableau contient la chaîne de 0 et de 1 qui correspond à un caractère. Proposer une méthode qui, selon un caractère donné, renvoie le chaîne de 0 et de 1 qui correspond. Proposer une autre méthode qui étant donné un message alphanumérique, construit une chaîne de 0 et de 1 qui est la concaténation de toutes les chaînes correspondant à chaque caractère. Ne pas oublier d'ajouter une étoile en début et en fin du message. Ajouter une méthode paint qui prend un Graphics et dessine les symboles correspondant à un message.
4.1.1.
Test
5.
Pour tester vos classes, créer une Applet et dessine le code à barres correspondant en fonction du message que vous aurez choisi. Si vous avez un smartphone, vous pouvez l'utiliser pour tester que votre programme fonctionne. S'il fonctionne avec l'image ci-dessous alors il devrait fonctionner en scannant le résultat de votre programme.
5.1.
Bonus: Les codes EAN 8 et 13
6.
Vous pouvez appliquer la même technique pour encoder les codes EAN-8 et EAN-13. Ces deux codes ont suffisamment de points communs pour faire l'objet d'une étude globale. Certaines des classes du Code39 peuvent également être réutilisées.
« 50 précédents
50 suivants »
Sélectionnez les versions à comparer et cliquez sur 'Comparaison versions'.
Comparer
Date de révision
Modifié par
Résumé des modifications
Voir la version
09:48, 11 Nov 2015
FredericMallet
page créée, 667 mots ajoutés
« 50 précédents
50 suivants »
Powered by
MindTouch Deki Open Source Edition
v.8.08
Flux RSS
Utilisateurs
Modèles
Plan du site
Pages populaires
A propos
Surveiller
Attacher fichier ou image
Accès restreint
Déplacer
Supprimer
Mots clés
Envoyer la page
Propriétés de la page
Page de discussion
Table des matières
1.
Support de cours
1.1.
Le code 39
1.1.1.
Définition
2.
Le code 39 est un encodage utilisé (notamment sur les médicaments) pour représenter par un code à barres un message alphanumérique. Ce codage permet de représenter 43 caractères : les 26 majuscules, les 10 chiffres et 7 caractères de ponctuation. Le caractère '*' est réservé pour marquer le début du codage et la fin. Chaque caractère est codé à l'aide de 9 symboles, 5 barres et 4 espaces. Parmi ces symboles certains sont larges et d'autres sont étroits. Pour chaque caractère, exactement 3 symboles sont larges et les 6 autres sont étroits. D'où le nom ! On veut proposer une implantation en Java pour le code 39.
2.1.1.
Modèle
3.
Proposer une énumération Epaisseur qui encode les épaisseur d'un symbole : LARGE ou ETROIT. Cette énumération sera responsable de tous les aspects liés à l'épaisseur, notamment le fait qu'un symbole LARGE est entre 2 et 3 fois plus épais qu'un symbole ETROIT. Elle offrira également une opération pour dessiner le symbole dans un Graphics. Il s'agit simple de dessiner un rectangle plein noir ou blanc. On notera cependant que même si on ne connaît pas la couleur, on devrait pouvoir dessiner une rectangle de la bonne largeur et hauteur en supposant que la couleur est la bonne. Proposer une énumération Nature qui encode la nature des symboles : BARRE ou ESPACE. Cette énumération sera responsable de gérer la couleur (noire ou blanche). L'énumération possèdera une méthode pour affecter une couleur à un Graphics (cf. méthode setColor). Proposer une classe Symbole qui combine l'épaisseur et la nature. Quand on dessine un symbole, il faut choisir la couleur en fonction de la nature puis dessiner le motif. Chaque caractère est codé par 9 symboles. Pour un caractère donné, on utilisera une chaîne de caractères pour code les 9 symboles à utliiser. Par exemple, pour l'étoile on utilisera la chaîne "010010100". Une barre étroite (0), un espace large (1), une barre étroite (0), un espace étroit (0), une barre large (1), ... Pour une chaîne de 9 caractères donnée, on va itérer pour découvrir les neuf symboles associés. On pourra proposer une classe IterateurSymbole initialisée à la construction avec une chaîne de 0 et de 1. Elle aura une méthode terminee() qui renvoie true s'il n'y a pas plus de symboles et false sinon. Sa méthode suivant() construira un symbole suivant en fonction du caractère encodé. Tester ces classes en créant une Applet qui itère sur le code de l'étoile, génére les 9 symboles et les dessine.
3.1.1.
Table d'encodage
4.
Il s'agit maintenant d'encoder chacun des 43 caractères supportés par le code 39. Proposer une classe Code 39 qui fait exactement cela. On pourra par exemple avoir un tableau static de chaînes de caractères. Chaque élément du tableau contient la chaîne de 0 et de 1 qui correspond à un caractère. Proposer une méthode qui, selon un caractère donné, renvoie le chaîne de 0 et de 1 qui correspond. Proposer une autre méthode qui étant donné un message alphanumérique, construit une chaîne de 0 et de 1 qui est la concaténation de toutes les chaînes correspondant à chaque caractère. Ne pas oublier d'ajouter une étoile en début et en fin du message. Ajouter une méthode paint qui prend un Graphics et dessine les symboles correspondant à un message.
4.1.1.
Test
5.
Pour tester vos classes, créer une Applet et dessine le code à barres correspondant en fonction du message que vous aurez choisi. Si vous avez un smartphone, vous pouvez l'utiliser pour tester que votre programme fonctionne. S'il fonctionne avec l'image ci-dessous alors il devrait fonctionner en scannant le résultat de votre programme.
5.1.
Bonus: Les codes EAN 8 et 13
6.
Vous pouvez appliquer la même technique pour encoder les codes EAN-8 et EAN-13. Ces deux codes ont suffisamment de points communs pour faire l'objet d'une étude globale. Certaines des classes du Code39 peuvent également être réutilisées.
effacer le message
voir détails
Ce message disparaitra dans
secondes
Le temporisateur de message a été arrêté
Affichage Détails: