cs_MathL
Messages postés2Date d'inscriptionlundi 21 novembre 2011StatutMembreDernière intervention21 novembre 2011
-
21 nov. 2011 à 02:33
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
21 nov. 2011 à 16:52
Salut , j'ai un cours de programmation obligatoire à faire et j'étudie gestion de réseaux, donc la prog c'est pas ma force et j'aimerais savoir si vous pourriez m'aidez pour mon lab.
Voici le problème :
Au Canada, chaque personne est identifiée par le gouvernement. La méthode utilisée pour nos cartes d’assurance sociale et certaines cartes de crédit a été développée par IBM.
Pour la validation, la plupart des modèles de détection d’erreur utilisent ce qu’on appelle un chiffre-clé, souvent situé à l’extrémité droite de la série de chiffres. Les autres chiffres sont appelés chiffres d’information et peuvent être choisis au hasard mais le chiffre-clé, lui, est calculé. De plus, les espaces n’ont aucune valeur, ils servent seulement à nous aider à lire les nombres. Cependant, la position des chiffres est d’une importance primordiale.
En écrivant en noir les chiffres occupant des positions « impaires » à partir de la droite et en gris ceux occupant des positions « paires ».
324 217 694
En additionnant les nombres en noir, on obtient :
3+4+1+6+4 = 18
En multipliant par 2 chacun des chiffres occupant une position paire (gris), on obtient :
2×2=4, 2×2=4, 7×2=14, 9×2=18
En additionnant les chiffres qui composent ces produits, on obtient :
4 + 4 + 1 + 4 + 1 + 8 = 22
En additionnant les deux résultats :
18 + 22 = 40
Le numéro d’assurance sociale est valide si le résultat est divisible par 10. Dans cet exemple, 40 est divisible par 10, donc le numéro est valide.
Comment calculer le chiffre-clé ?
Le procédé de validation nous indique comment le chiffre-clé est calculé. Avec un peu d’algèbre et en remplaçant le chiffre-clé par x dans les calculs, nous pouvons résoudre une simple équation en x. Par exemple, supposons que la suite des chiffres d’information de votre carte d’assurance sociale soit 22501008. Alors, votre numéro d’assurance sociale serait :
225 010 08x
Et x est calculé comme suit :
Les chiffres aux positions impaires sont additionnés :
2+5+1+0+x = 8 + x
On multiplie les chiffres aux positions paires par deux :
2×2=4, 0×2=0, 0×2=0, 8×2=16
Les chiffres de tous les produits sont additionnés :
4 + 16 → 4 + 1 + 6 = 11
8 + x + 11 = 19 + x
Pour que 19 + x soit divisible par 10, le chiffre x doit être 1 et le numéro d’assurance sociale doit être :
225 010 081
Adapté d'un article paru dans la revue Accromoth, No 1, Été 2006. Écrit par Jocelyn Dagenais. Commission scolaire Marie-Victorin.
Critères spécifiques :
• le numéro peut être saisi avec ou sans espaces ;
• si le numéro d'assurance sociale contient autre chose que des espaces ou des chiffres, le programme va s'arrêter à cause d'une erreur. Vous n'avez pas la responsabilité de gérer cette erreur ;
• le numéro saisi doit contenir 8 ou 9 chiffres valides ;
• l'affichage du numéro corrigé (s'il y a lieu) se fera en groupes de 3 chiffres ;
Merci de votre aide, ça serait vraiment apprécié que vous puissiez m'aider avec le code!! :)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 21 nov. 2011 à 07:22
Bonjour,
C'est un exercice de TP.
Je vais donc me contenter de te mettre sur la piste. Tu devras continuer.
- ton numéro n'est pas un nombre, mais une chaine de caractères alphanumériques
- la fonction Len te permet de connaître le nombre de caractères d'une chaîne
- une boucle For ...to sur la longueur de la chaîne est à utiliser pour en parcourir lkes caractères
- la fonction Mid te permet d'extraire, caractère par caractère, tous les caractères d'une chaine
- l'opérateur Mod te permet facilement de déterminer si un nombre est pair ou impair
- pour ce qui est des opérations, ouvre ton aide VB6 sur les opérateurs mathématiques
Pour ce qui est maintenant du contrôle de la validité de la saisie, tu trouveras sur ce forum une véritable foultitude de solutions/discussions et même des sources déposés !.
Voilà. "Yapluka"
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
cs_MathL
Messages postés2Date d'inscriptionlundi 21 novembre 2011StatutMembreDernière intervention21 novembre 2011 21 nov. 2011 à 15:33
ok merci, j'ai réussi à faire la 1ère partie, voici mon code :
Public Class frmCARTEDASSURANCESOCIALE
Private Sub btnValidation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnValidation.Click
Dim inRésultatSomme As Integer
Dim inRésultatMulti As Integer
Dim inNbr As Integer
Dim boResult As Boolean = False
Dim intxtRésultat As String
intxtRésultat = txtRésultat.Text.Replace(" ", "")
For i = 1 To intxtRésultat.Length
If i Mod 2 <> 0 Then
inRésultatSomme = inRésultatSomme + Mid(intxtRésultat, i, 1)
End If
Next
For i = 0 To intxtRésultat.Length - 1
If Integer.TryParse(intxtRésultat(i).ToString(), inNbr) Then
If (i + 1) Mod 2 = 0 Then
Dim inMultiplication As Integer = inNbr * 2
If inMultiplication > 9 Then
inRésultatMulti += ((inMultiplication - 10) + 1)
Else
inRésultatMulti += inMultiplication
End If
End If
End If
Next
If (inRésultatSomme + inRésultatMulti) Mod 10 = 0 Then
boResult = True
MsgBox("Votre code est valide")
Else
boResult = False
MsgBox("Votre code n'est pas valide")
End If
MsgBox(inRésultatSomme & inRésultatMulti)
Return
End Sub
End Class
est-ce que vous pourriez m'aider ou me fourrnir le code pour cette partie ?
Comment calculer le chiffre-clé ?
Le procédé de validation nous indique comment le chiffre-clé est calculé. Avec un peu d’algèbre et en remplaçant le chiffre-clé par x dans les calculs, nous pouvons résoudre une simple équation en x. Par exemple, supposons que la suite des chiffres d’information de votre carte d’assurance sociale soit 22501008. Alors, votre numéro d’assurance sociale serait :
225 010 08x
Et x est calculé comme suit :
Les chiffres aux positions impaires sont additionnés :
2+5+1+0+x = 8 + x
On multiplie les chiffres aux positions paires par deux :
2×2=4, 0×2=0, 0×2=0, 8×2=16
Les chiffres de tous les produits sont additionnés :
4 + 16 → 4 + 1 + 6 = 11
8 + x + 11 = 19 + x
Pour que 19 + x soit divisible par 10, le chiffre x doit être 1 et le numéro d’assurance sociale doit être :
225 010 081
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 21 nov. 2011 à 16:52
Désolé.
1) Il s'agit d'un devoir
2) je t'ai dit tout ce dont tu avais besoin pour travailler.
Bon courage (peu, car c'est simple).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient