Débutant, besoin d'aide pour Lab Visual Studio

cs_MathL Messages postés 2 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 21 novembre 2011 - 21 nov. 2011 à 02:33
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 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!! :)

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
cs_MathL Messages postés 2 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 21 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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
Rejoignez-nous