76julien
Messages postés58Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention 4 juin 2010
-
4 nov. 2009 à 10:36
chicfrandy
Messages postés8Date d'inscriptionmercredi 7 mars 2012StatutMembreDernière intervention 8 mars 2012
-
8 mars 2012 à 15:56
Salut à tous,
je suis débutant et je souhaite savoir comment fait-on en C# pour convertir un string en integer. Je ne trouve pas le soluce.
Merci d'avance à tous ceux qui m'aideront...
DrIvory
Messages postés47Date d'inscriptionlundi 14 septembre 2009StatutMembreDernière intervention 6 novembre 20093 4 nov. 2009 à 11:39
Alors,
si tu utilises int.Parse, il faut que tu sois sur d'avoir un entier représenté en string, sinon tu vas avoir une exception.
C'est pour cela que pour plus de sureté on utilise TryParse.
Exemple:
int res = int.Parse("lol");
Ca te fera un "FormatException"
alors qu'en utilisant TryParse, tu peux quelque chose comme ceci:
int res;
if (int.TryParse("lol", out res))
Console.WriteLine("Ca parse : " + res);
else
Console.WriteLine("Ce n'etait pas un entier :(");
Ca t'ecrira un "Ce n'etait pas un entier :("
Du coup, avec ceci tu n'as pas a vérifié, si l'utilisateur a bien taper un entier par exemple,
il te suffit de faire le traitement voulu en fonction du résultat de TryParse(qui te renvoit un booléen)
chicfrandy
Messages postés8Date d'inscriptionmercredi 7 mars 2012StatutMembreDernière intervention 8 mars 2012 7 mars 2012 à 21:42
le code est:324 217 694
il est valide s'il est divisible par 10
Donc, si l'usager donne 9 chiffres au programme, le programme peut répondre que le numéro est valide ou bien qu'il est invalide avec le code corrigé. Si l'usager donne 8 chiffres au programme, le programme donne le numéro complet après avoir calculé le code de validation.
chicfrandy
Messages postés8Date d'inscriptionmercredi 7 mars 2012StatutMembreDernière intervention 8 mars 2012 7 mars 2012 à 21:51
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.
Whismeril
Messages postés18971Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 8 mars 2024653 7 mars 2012 à 22:47
Je vois deux étapes.
La première est d'attendre d'avoir un "nombre" au bon format.
Je ne sais pas comment l'utilisateur saisie le numéro, si c'est dans une TextBox, tu peux la remplacer par une MaskEditBox.
Tu rentres le masque qui va bien pour obtenir 3 chiffres un espace 3 chiffres un espace 3 chiffres.
Un évènement se déclenche lorsque le masque est valide.
Une autre solution est de se servir d'une Regex et à chaque frappe de touche de vérifier si le texte valide ou non cette Regex.
La deuxième étape est ton calcul de validité, tu peux te servir du fait qu'une string est une sorte de "tableau" de caractère:
Pour savoir si ton résultat est divisible par 10 il y a l'opérateur modulo (%), il calcule le reste d'une division, ce reste est égal à 0 quand le nombre est divisible par le second.
chicfrandy
Messages postés8Date d'inscriptionmercredi 7 mars 2012StatutMembreDernière intervention 8 mars 2012 8 mars 2012 à 01:40
je vous remercie beaucoup pour ce grand aide que vous m'avez accorder.oui le string comme tableau caractere j'avais penser aussi,mais regarder les autres complexites et svp aider moi.
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.
Énoncé du projet
Objectifs du travail
L'objectif du travail est de créer un programme de validation de numéros d'assurance sociale. L'usager peut aussi utiliser ce programme pour obtenir le neuvième chiffre du numéro (le chiffre de validation).
Donc, si l'usager donne 9 chiffres au programme, le programme peut répondre que le numéro est valide ou bien qu'il est invalide avec le code corrigé. Si l'usager donne 8 chiffres au programme, le programme donne le numéro complet après avoir calculé le code de validation.
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 ;
vous avez vu j'attend votre reponse.mais je travaille en mode console et pas encore avec les fenetre.Merci de bien vouloir m'aider
Whismeril
Messages postés18971Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 8 mars 2024653 8 mars 2012 à 07:23
Bonjour,
il faut que tu fasses les choses étape par étape.
Le logiciel doit
1 Demander une saisie opérateur.
2 Vérifier si le format correspond à un numéro complet.
3 Si oui calculer si le numéro est valide.
4 Si non vérifier si le format correspond à un numéro sans clé.
5 Si oui calculer la clé.
6 Si non générer une erreur
A ta place je commencerai par les étapes 1 à 3.
Puis une fois que ça marche les étapes 4 et 5
Et enfin l'étape 6.
Ecris ton code.
Si tu ne trouves pas, poste ce code avec les balises (3eme icône en partant de la droite au dessus de la zone de saisie) et mettant des commentaires la ou tu bloques et les erreurs rencontrées.
chicfrandy
Messages postés8Date d'inscriptionmercredi 7 mars 2012StatutMembreDernière intervention 8 mars 2012 8 mars 2012 à 15:56
Bonjour et merci pour votre aide.
je deja demande a l'utilisateur de saisir un code.en utilisant
Console.Write("Tapez votre code : ");
String Code = Console.ReadLine();
Console.ReadLine();
maintenant il faut faire un test sur le code pour voir si il appartient a toute les detail que je vous ai donner la haut.par exemple.comment parcourir le tableau et convertir les caracteres.
merci beaucoup!!!