>> Foarte interesant! Dai si tu algoritmul ala de verificare a cnp? S-ar = > > trebuie sa caut undeva. ultima cifra se calculeaza ca o combinatie liniara a > primelor 12 cifre modulo 11, cu mentiunea ca 10 si 0 inseamna 0. tre sa caut > undeva pe net coeficientii aia. Eu am algoritmul pe care l-am atasat. Functioneaza bine.
Daca stie cineva mai multe detalii despre sex si judet, as fi recunoscator pentru informatii. > >> Pentru problema ta (sau mai bine zis a noastra) dupa cum banuiai poti = >> incerca ceva cu=20 >> sort -u file1 > file2 >> sort file1 > file3=20 >> Si apoi diff file 3 file 2 > listaneagra > > da, asta nu mai tineam minte: diff. mersi, du-te la sediul de campanie al > da-ului local si bea o bere cand va castiga maimutoiul nostru functia de > president! apoi te inscrii in pnl, ok? > >> Sper ca esti constient ca vei baga la puscarie multi oameni cu treaba = > > dosar de urmarire penala + gherla intre 6 luni si 3 ani > >> S-auzim numai de bine! Congo cineva? > > sa vedem cine, ce si cum. s-ar putea sa ii facem urmasului lui mobutu sese > seko o administratie bazata pe linux si solutii open source. depinde ce > faceti peste 2 saptamani. > > tibi > pnl cluj > > > --- > Detalii despre listele noastre de mail: http://www.lug.ro/ > > --- Catalin(ux aka Dino) BOIE catab at deuroconsult.ro http://kernel.umbrella.ro/ -- Attached file included as plaintext by Ecartis -- -- File: 1.c /* Description: Validate romanian CNP Author: Catali(ux aka Dino) BOIE <catab at umbrella.ro> */ #include <stdio.h> int main (int argc, char *argv []) { long suma, rest; int sex, aa, ll, zz, jud; int a1, a2; int l1, l2; int z1, z2; int jud1, jud2; int p10, p11, p12, p13; char *cnp; char *mes = "-"; if (argc != 2) { printf ("Usage: cnp <number>\n"); return 1; } cnp = argv [1]; printf ("Input: %s.\n", cnp); sex = cnp [0] - '0'; a1 = cnp [1] - '0'; a2 = cnp [2] - '0'; aa = a1 * 10 + a2; l1 = cnp [3] - '0'; l2 = cnp [4] - '0'; ll = l1 * 10 + l2; z1 = cnp [5] - '0'; z2 = cnp [6] - '0'; zz = z1 * 10 + z2; jud1 = cnp [7] - '0'; jud2 = cnp [8] - '0'; jud = jud1 * 10 + jud2; p10 = cnp [9] - '0'; p11 = cnp [10] - '0'; p12 = cnp [11] - '0'; p13 = cnp [12] - '0'; // teste if ((sex < 1) || (sex > 8)) { mes = "Sex"; goto bad; } if ((ll < 1) || (ll > 12)) { mes = "Luna"; goto bad; } if ((zz < 1) || (zz > 31)) { mes = "Zi"; goto bad; } if ((jud > 52) && (jud != 99)) { mes = "Judet"; goto bad; } suma = 0; suma += sex * 2; /* 1 */ suma += a1 * 7; /* 2 */ suma += a2 * 9; /* 3 */ suma += l1 * 1; /* 4 */ suma += l2 * 4; /* 5 */ suma += z1 * 6; /* 6 */ suma += z2 * 3; /* 7 */ suma += jud1 * 5; /* 8 */ suma += jud2 * 8; /* 9 */ suma += p10 * 2; /* 10 */ suma += p11 * 7; /* 11 */ suma += p12 * 9; /* 12 */ printf ("Suma: %d.\n", suma); rest = suma % 11; if (rest == 10) rest = 1; printf ("Rest: %d.\n", rest); if (rest != p13) { mes = "Suma"; goto bad; } goto ok; bad: printf ("Cod gresit [%s]!\n", mes); return 1; ok: printf ("Cod bun!\n"); return 0; } --- Detalii despre listele noastre de mail: http://www.lug.ro/
