I. 193. Notre ami Martin Mélomane a trouvé
au grenier de leur maison familiale un ancien magnétophone et beaucoup de
cassettes. Il s’est mis à transférer le contenu de ces cassettes sur son
ordinateur. Mais à l’écoute d’une des cassettes, il entendait de drôles de
sons. Malgré cela, il était persuadé que le contenu de cette cassette peut être
rendu compréhensible par un certain procédé. Pour récupérer le contenu de cette
cassette, il a utilisé le logiciel Audacity téléchargeable gratuitement. Mais
Martin n’arrivait pas à se débrouiller tout seul et il a demandé l’aide de la
rédaction. Nous transmettons sa demande à nos concurrents: celui qui réussira à
récupérer le contenu du fichier I193.mp3
et le rendre le plus net et compréhensible, obtiendra une récompense
importante(allant jusqu’à 10 points).
Nous retourner la séquence audio améliorée(i193.mp3), ainsi qu’une documentation
brève(i193.txt, i193.pdf, ...), qui contiendra la
description de la solution.
(10 points)
I. 194. Il existe différents types de code
barre mais le plus courant dans le commerce est le code EAN-13 (EAN = European
Article Number, Numéro Européen des Articles), qui contient un nombre à 13 chiffres.
Les informations données par le nombre:

Le nombre de caractères contenus dans les
différentes parties peut être variable. Le type de nombre signifie un code pays
ou un type de produit. Par exemple:
|
590
|
Pologne
|
|
594
|
Roumanie
|
|
599
|
Hongrie
|
|
600 - 601
|
Afrique du Sud
|
|
609
|
Iles Maurices
|
|
611
|
Maroc
|
|
613
|
Algérie
|
|
977
|
Périodiques
(ISSN)
|
|
978
|
Livres (ISBN)
|
|
979
|
Musique (ISMN)
|
|
Le fabriquant d’un nouveau produit peut demander
son code EAN-13 au bureau de référencement central.
Le dernier chiffre du nombre EAN-13 est le
chiffre de contrôle permettant d’éliminer les erreurs de frappe ou de lecture.
Il est déterminé selon la règle suivante: parmi les 12 premiers chiffres,
on multiplie par 1 ceux se trouvant en position impaire et par 3 ceux se
trouvant en position paire, on additionne ensuite ces produits, puis on
détermine le chiffre de contrôle, qui sera placé en 13. position. Ce sera
un nombre tel que si l’on l’ajoute à la somme des produits, celle-ci deviendra
divisible par 10. Exemple:
5.1+9.3+0.1+7.3+4.1+6.3+0.1+8.3+0.1+3.3+5.1+9.3=140.
140 est divisible par 10, donc il faut ajouter 0.
Le chiffre de contrôle est égal à 0, donc le nombre EAN-13 de l’exemple est
correct.
La composition du code barre:
- Les chiffres sont codés par des zones noires et
blanches(celles-ci peuvent être détectées par le lecteur).
- Le premier nombre à gauche, séparé des autres,
détermine la méthode d’encodage. Celui-ci n’a pas de barre correspondante, il
est codé par une autre méthode.
- Le reste du code est constitué de deux groupes
de nombres. Au début, à la fin et entre les groupes de nombres il y a chaque
fois deux lignes de séparation minces.
- Les nombres sont représentés par deux lignes
d'épaisseur variable, sur une largeur de 7 unités. Soit le noir codé par 1 et
le blanc par 0. A l’intérieur du code barre, trois sortes d’encodages peuvent
intervenir, désignons celles-ci par A,
B et C. Les nombres correspondants aux combinaisons de lignes
dans les différents types d’encodage:
|
Nombre
|
A
|
B
|
C
|
|
0
|
0001101
|
0100111
|
1110010
|
|
1
|
0011001
|
0110011
|
1100110
|
|
2
|
0010011
|
0011011
|
1101100
|
|
3
|
0111101
|
0100001
|
1000010
|
|
4
|
0100011
|
0011101
|
1011100
|
|
5
|
0110001
|
0111001
|
1001110
|
|
6
|
0101111
|
0000101
|
1010000
|
|
7
|
0111011
|
0010001
|
1000100
|
|
8
|
0110111
|
0001001
|
1001000
|
|
9
|
0001011
|
0010111
|
1110100
|
|
- Le premier groupe de nombres(le groupe de
gauche c’est à dire les 6 chiffres suivant le chiffre indépendant) est codé par
A ou par B, le deuxième groupe de nombres(c’est à
dire les 6 derniers chiffres) par la méthode C.
- Le premier chiffre du code EAN-13 détermine les
méthodes d’encodage des six chiffres du premier groupe de nombres. Le tableau
de celui-ci:

La constitution du code barre présenté comme
exemple(qui se trouvait sur un pot de confiture polonais):
Le premier chiffre est 5, il n’apparaît pas
directement dans le système de barres, mais il détermine l’encodage du premier
groupe de nombres selon la ligne grise du tableau.
|
Groupe de barres
|
Signification
|
Système de barres
|
|
1.
|
Les deux lignes
minces de début
|
101
|
|
2.
|
[9] avec encodage
A
|
0001011
|
|
3.
|
[0] avec encodage
B
|
0100111
|
|
4.
|
[7] avec encodage
B
|
0010001
|
|
5.
|
[4] avec encodage
A
|
0100011
|
|
6.
|
[6] avec encodage
A
|
0101111
|
|
7.
|
[0] avec encodage
B
|
0100111
|
|
8.
|
Les deux lignes
minces de séparation
|
01010
|
|
9.
|
[8] avec encodage
C
|
1001000
|
|
10.
|
[0] avec encodage
C
|
1110010
|
|
11.
|
[3] avec encodage
C
|
1000010
|
|
12
|
[5] avec encodage
C
|
1001110
|
|
13.
|
[9] avec encodage
C
|
1110100
|
|
14.
|
[0] avec encodage
C
|
1110010
|
|
15.
|
Les deux lignes
minces de fin
|
101
|
|
En liant les systèmes de lignes, on crée le code barre complet.

A l’aide d’un tableur, vérifier si le nombre
EAN-13 donné dans la cellule A1 est
correct, en utilisant le chiffre de contrôle: écrire dans la cellule B1 un des mots ,,correct'' ou ,,erroné'', selon le résultat de la vérification. Créer le
système de lignes à 15 parties du nombre donné à l’aide des chiffres 0 et 1,
dans les cellules A2:A16.
Ne pas utiliser de macro ou de module de
programme, se servir exclusivement de formules et des fonctions internes du
logiciel. Les calculs intermédiaires doivent être visibles ; ne pas les
cacher d’aucune manière. Les tableaux d’aide nécessaires à la détermination du
code peuvent être placés sur une feuille de calcul à part.
Envoyer le classeur (194.xls, 194.ods,
...) ainsi qu’une documentation brève (194.txt,
194.pdf, ...) qui contient le
nom du tableur utilisé, sa version et la description brève de la solution.
(10 points)
I. 195. Sur les ordinateurs portables à
écran tactile, les programmes proposant des itinéraires facilitent la saisie
des noms de communes en n’affichant que les caractères pouvant être
sélectionnés dans les noms partiellement saisis. Un caractère peut être
sélectionné si, une fois que l’utilisateur l’a tapé, il existe une commune dans
la liste stockée dont le nom commence par les caractères déjà saisis.
A la saisie des caractères, le programme compte
le nombre de noms correspondants à la partie de nom déjà saisie. Cette valeur
est affichée à droite de la zone de saisie.
Ecrire un programme qui facilite par cette
méthode, en écrivant des informations sur la sortie standard, la sélection d’un
nom de commune, en se basant sur les noms de communes données dans le fichier
en entrée. Soit le nom du fichier en entrée l’argument du programme en ligne de
commande( commune.txt
). En sortie, après la saisie de chaque caractère, la liste des caractères
pouvant être sélectionnés doit s’afficher ainsi que le nombre de noms
correspondants à la partie de nom déjà saisie. Au cours de la saisie, on ne
doit pouvoir entrer que les caractères pouvant être sélectionnés; on doit
pouvoir sortir du programme par la touche ESC.
On ne tient pas compte de la casse; dans cette
solution, ne pas tenir compte non plus des lettres accentuées. Par exemple: si
l’on tape é, è, ë ou e, dans chacun de ces cas le caractère e doit s’afficher.
Exemple:

Envoyer le code source du programme (i195.pas, i195.cpp,
...), ainsi que sa documentation brève (i195.txt,
i195.pdf, ...) qui contient la
description des étapes importantes de la solution et le nom de l’environnement
où le code source peut être compilé.
(10 points)