cs_cats
Messages postés2Date d'inscriptionmercredi 22 mai 2002StatutMembreDernière intervention 6 septembre 2002
-
30 mai 2002 à 18:46
NettoyeurFantome
Messages postés35Date d'inscriptionsamedi 25 mai 2002StatutMembreDernière intervention10 mai 2003
-
6 sept. 2002 à 16:15
Bonjour,
Je dois faire un petit programme qui valide l'exactitude d'un numéro d'assurance sociale (Québec).
Seule la forme suivante doit-être accepté: xxx_xxx_xxx(x est un nombre et _ est un espace)
Voici les étapes de la validations:
1:
Multiplier par deux(2) le deuxième, quatrième et huitième chiffre.
2:
Lorsque cette multiplication donne un mobre à deux chiffre alors additonner les deux chiffres pour n'en faire qu'un seul
3:
Additonne l'ensemble des ces chiffres
4:
Si le total est un multiple de 10, Le nas est valide....
Voici où j'en suis:
Code:
{
int total=0;
int cpt;
numeroNas=LeNumeroNas;
if (numeroNas.length ()<9) //trop court
throw ExeptionNas(1);
if (numeroNas.length ()>9) //trop long
throw ExeptionNas(1);
for (cpt=0;cpt<=8;cpt++)
{
if(isdigit(numeroNas[cpt])) //chiffres seulement
{
if (cpt%2)
{
if (numero.Nas[cpt]>9)
total=total+(numeroNas[cpt]*2)-10+1;
else
total=total+numeroNas[cpt]*2;
}
else
total=total+numeroNas[cpt];
}
else
throw ExeptionNas(1);
}
if (total%10) //vérificationdu multiple de 10
throw ExeptionNas(1);
}
Voilà vous avez déviné, ça marche pas! Quelqu'un pourrait m'aider à trouver la bonne formule????
cs_cats
Messages postés2Date d'inscriptionmercredi 22 mai 2002StatutMembreDernière intervention 6 septembre 2002 6 sept. 2002 à 16:01
Bonjour,
Oui, je traite les exeptions dans un autre fichier .cpp et .h(programmation par objets)... Donc, ne pas en tenir compte dans ta solution, je vais adapter mes fichers en conséquence...