Mini projet isn code barre

Résolu/Fermé
computerone Messages postés 5 Date d'inscription vendredi 3 janvier 2020 Statut Membre Dernière intervention 3 janvier 2020 - Modifié le 3 janv. 2020 à 18:37
Franky-9 Messages postés 1 Date d'inscription samedi 4 janvier 2020 Statut Membre Dernière intervention 4 janvier 2020 - 4 janv. 2020 à 23:47
bonjour
en isn nous avons un exercice a faire qui et le suivant :

Présentation : L’entreprise ENTAS installe un ascenseur dans un bâtiment de 9 étages. L’ascenseur est pourvu d’un lecteur optique qui lit des codes-barres. Chaque employé possède un identifiant qui, par un procédé que nous décrirons plus loin, permet de générer un code-barre unique. Ce dernier est constitué de six chiffres auquel s’ajoute un septième chiffre appelé clé de contrôle.
Créer un programme sous Python qui permet : la saisie de l’identifiant.
le calcul de la clé de contrôle
la représentation graphique du code barre .

Calcul de la clé de contrôle : Le calcul de la clé est un simple calcul mathématique. Prenons, par exemple 328947 comme identifiant:
- On ajoute tous les chiffres de rang impair du code (le premier + le troisième + cinquième en partant de la gauche),
ce qui nous donne une valeur i. Dans notre cas, i = 3 + 8 + 4 = 15
-On ajoute ensuite tous les chiffres de rang pair du code ce qui nous donne une valeur p.
Dans notre cas, p = 2 + 9 + 7 = 18
-On calcule ensuite n = i + 3p. Dans notre cas, n = 15 + (3 * 18) = 69
- On prend ensuite le plus grand multiple de 10 qui est le plus proche au-dessus de n. Dans notre cas, c’est 70.
- Enfin, la clé est la soustraction de ce multiple avec n. Dans notre cas, clé = 70 − 69 = 1 On met cette clé après les six chiffres du code et on obtient les sept chiffres requis pour générer le code barres.

Méthode choisie par la société pour déterminer le code barre : Chaque chiffre de l’identifiant+clé de contrôle est écrit sous forme binaire sur un quartet. La concaténation des chaînes de caractères de ces écritures binaires forment l’identifiant codé. Ainsi avec 328947 comme identifiant, on obtient l’identifiant codé correspondant : 0011 001010001001010001110001

je ne vois absolument pas comment faire cette exercice j'ai rapidement commencer un programme mais cela ne me mène nulle part et nous devons aussi crée le code barre avec turtle
import turtle
liste1 = 328947
listenb= [int(c) for c in str(liste1)]# sépare le nombre en plusieur partie

i=listenb[0],listenb[2],listenb[4]# prend tout les chiffre de rang impair
i1=sum(i)#additionne tout les chiffre de rang impair

p=listenb[1],listenb[3],listenb[5]#prend tout les chiffre de rang pair
p1=sum(p)#additionne tout les chiffre de rang pair
p1= p1*3#multiplie ensuite p1 par 3 pour la suite

n=i1,p1#crée une liste n avec i1 et p1
n1=sum(n)#additionne i1 et p1


print(n1)
A voir également:

3 réponses

Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 325
3 janv. 2020 à 18:38
Bonjour,

Merci pour cette information. As-tu une question ?

Pour rappel :
Les réponses sont données par des bénévoles, pas par des machines. Il est vivement recommandé d'user des formes minimales de la politesse ("bonjour', "s'il vous plait", "merci d'avance") pour rester dans le cadre de notre charte d'utilisation.

Merci de penser à attribuer au code la couleur syntaxique et la forme correcte avec le bouton
<>
.
1
Bonjour,

Pour le moment, oublie turtle et commence par travailler à calculer la clef du code barre.

On te demande pour ça de calculer les sommes des chiffres en position paires, et impaires.

Pour savoir si un nombre est divisible par 2, on utilise le modulo, en python c'est le caractère %.

On prend un code barre de test pour commencer à travailler (tu utiliseras input par la suite), on déclare 2 variables pour enregistrer les sommes, et on parcourt la chaine du code barre avec un range.

somme_pairs = 0
somme_impairs = 0
code_barre = '328947'
for i in range(len(code_barre)):
    if i % 2:
        print('i est impair')
    else:
        print('i est pair')
    print(code_barre[i])


Avec ce bout de code, tu as de quoi comprendre comment ça fonctionne pour commencer ton programme et calculer les deux sommes.
Ne pas oublier de convertir
code_barre[i]
en int
1
computerone Messages postés 5 Date d'inscription vendredi 3 janvier 2020 Statut Membre Dernière intervention 3 janvier 2020 1
Modifié le 3 janv. 2020 à 19:13
merci de ta réponse j'ai donc pris un code bar test et j'ai réussi a faire la clé de contrôle



import turtle
from math import *
liste1 = 328947
listenb= [int(c) for c in str(liste1)]# sépare le nombre en plusieur partie

i=listenb[0],listenb[2],listenb[4]# prend tout les chiffre de rang impair
i1=sum(i)#additionne tout les chiffre de rang impair

p=listenb[1],listenb[3],listenb[5]#prend tout les chiffre de rang pair
p1=sum(p)#additionne tout les chiffre de rang pair
p1= p1*3#multiplie ensuite p1 par 3 pour la suite

n=i1,p1#crée une liste n avec i1 et p1
n1=sum(n)#additionne i1 et p1

supn1 = (n1/10)#transforme n1 en nombre decimale
supn2 =ceil(supn1)#arondie le nombre a l'exer afin de ne pas avoir de nombre négatif ensuite
supn3 = supn2*10#enfin multiplie le nombre par 10
clé=supn3-n1#crée la clé de controle

listenb.append(clé)#ajoute la clé de controle aux nombre de dépard


mais maintenant je ne vois pas comment faire pour convertir tout les nombre en binaire ?
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 325 > computerone Messages postés 5 Date d'inscription vendredi 3 janvier 2020 Statut Membre Dernière intervention 3 janvier 2020
3 janv. 2020 à 19:02
Merci d'utiliser correctement le bouton "code" !
0
Franky-9 Messages postés 1 Date d'inscription samedi 4 janvier 2020 Statut Membre Dernière intervention 4 janvier 2020
4 janv. 2020 à 23:47
Tu saurais ce qu’il faut faire pour générer à la fin le code barre à partir du binaire si tu pouvais me donner la réponse ça serait sympa ????merci d’avance ( ps il me reste que demain)
0