Algorithme de code barre + langage type C

Fermé
matisse - Modifié le 3 déc. 2018 à 15:50
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 3 déc. 2018 à 15:47
Bonjour, dans le cadre de mon tpe je me retrouve à devoir faire de l'algorithmique sur des codes barres et je dois aussi le ré écrire en langage type C.
le problème est que je sais que le programme que m'as fait mon prof contient une partie pour la création d'un code barre + son checksum mais je ne le comprends pas précisemment de plus je ne connais pas le langage type C...
pourriez vous m'aidez à mieux le comprendre et si possible m'aider à le passer en langage type C?
merci de votre attention...
(si vous pouvez m'aider je vous met l'algo si dessous.)
(pour le langage type C j'utilise le logiciel code blocks...)

fonction code25I(numerique: chaîne): chaîne
{ génération d’un code 2 parmi 5 entrelacé }
{ paramètres: numerique = chaîne composée de chiffres }
{ retour: motif code 2 parmi 5 si ok, chaîne vide sinon }

constantes
code
: tableau [1..10] de chaîne = (
’NNWWN’,
’WNNNW’,
’NWNNW’,
’WWNNN’,
’NNWNW’,
’WNWNN’,
’NWWNN’,
’NNNWW’,
’WNNWN’,
’NWNWN’
);

variables
i, j, taille, controle: entier
motif: chaîne

début
motif := ‘’
taille := longueur(numerique)
{ Vérifier la longueur }
si (taille = 0)

alors
code25I := motif

{ Vérifier si caractères valides }
pour i = 1 à taille faire

début
si numerique[i] < ‘0’ OU numerique[i] > ‘9’

alors
code25I := motif

fin


{ calcul du checksum si chaîne de longueur impaire }
si taille modulo 2 = 1

alors

début
contrôle := 0
pour i = taille à 1 pas de -2 faire

début
controle := controle + valeur(numerique[i]) x 3
controle := controle + valeur(numerique[i-1])

fin

controle := 10 - (controle modulo 10)
taille := taille + 1
numerique[taille] := caractere(controle)

fin

{ Création du code 25I }
pour i = 1 à taille pas de 2 faire
début
pour j = 1 à 5 faire
début
motif := motif + code[valeur(numerique[i])+1][j] 
motif := motif + code[valeur(numerique[i+1])+1][j]
fin
fin

{ Ajoute START et STOP }
motif := ‘NNNN’ + motif + ‘WNN’
code25I := motif

fin


Configuration: Windows / Firefox 63.0
A voir également:

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 3 déc. 2018 à 15:47
Salut matisse,

D'après ce que je vois, ton "algorithme" est déjà fait et il est en fait très détaillé, à tel point que si les mots clefs du langage algorithmique utilisé étaient en anglais, cela serait d'ailleurs une fonction valide en Pascal...

Tu dois juste adapter cette fonction en langage C.

Quel est exactement ton problème ?

Montre ce que tu as fait en C et là où tu butes.

Dal
0