تاريخ : شنبه 27 آبان 1396 | 8:20 | نویسنده : بخش سئوی نیلوبلاگ

الگوریتم-تشخیص-صحت-کد-ملی

با بلونا همراه باشید در الگوریتم تشخیص صحت کد ملی ایران، در برنامه نویسی نرم افزارها و وب سایت ها تشخیص صحت اطلاعات کاربر امر مهمی است.

کد ملی شناسه یکتایی است که از آن می‌توان در بررسی اطلاعات استفاده کرد اما متاسفانه در حال حاضر هیچ الگوریتمی برای تشخیص صحت کد ملی در اختیار برنامه نویسان وجود ندارد.

در ادامه با بلونا همراه باشید با بررسی الگوریتم تشخیص صحت کد ملی:

الگوریتم تشخیص صحت کد ملی ایران

کد ملی شماره ای است ۱۰ رقمی که از سمت چپ سه رقم کد شهرستان محل صدور شناسنامه ، شش رقم بعدی کد منحصر به فرد برای فرد دارنده شناسنامه در شهرستان محل صدرو و رقم آخر آن هم یک رقم کنترل است که از روی ۹ رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی ۹ رقم سمت چپ رقم کنترل را محاسبه کنیم

از آنجایی که درسیستم کد ملی معمولا قبل از کد  تعدادی صفر وجود دارد.(رقم اول و رقم دوم از سمت چپ کد ملی ممکن است صفر باشد) و در بسیاری از موارد ممکن است کاربر این صفرها را وارد نکرده باشد و یا نرم افزار این صفرها را ذخیره نکرده باشد بهتر است قبل از هر کاری در صورتی که طول کد بزرگتر مساوی ۸ و کمتر از ۱۰ باشد  به تعداد لازم (یک تا دو تا صفر) به سمت چپ عدد اضافه کنید.

ساختار کد ملی
ارقام کدرقم کنترل۹ رقم سمت چپ کد ملی
موقعیت۱۲۳۴۵۶۷۸۹۱۰
 

۱- برای محاسبه رقم کنترل از روی سایر ارقام ، هر رقم را در موقعیت آن ضرب کرده و حاصل را با هم جمع می کنیم.

۲- مجموع بدست آمده از مرحله یک را بر ۱۱ تقسیم می کنیم

۳- اگر باقیمانده کمتر از ۲ باشد ، رقم کنترل باید برابر باقیمانده باشد در غیر اینصورت رقم کنترل باید برابر یازده منهای باقیمانده باشد

مثال : آیا کد ۷۷۳۱۶۸۹۹۵۱ یک کد ملی معتبر است؟

برای این منظور کد

ساختار کد ملی
ساختار کدرقم کنترل۹ رقم سمت چپ کد ملی
ارقام کد۱۵۹۹۸۶۱۳۷۷
موقعیت۱۲۳۴۵۶۷۸۹۱۰
محاسبه حاصل ضرب۱۰۲۷۳۶۴۰۳۶۷۲۴۶۳۷۰

حاصل جمع ضرب ارقام ۲ الی ۱۰ را در موقعیت آنها محاسبه می کنیم

۷*۱۰+۷*۹+۳*۸+۱*۷+۶*۶+۸*۵+۹*۴+۹*۳+۵*۲=۳۱۳

۳۱۳÷۱۱=۲۸ و R=5

چون باقیمانده برابر ۵ و بزرگتر مساوی ۲ است پس باید رقم کنترل این کد برابر ۶ ( یازده منهای ۵ برابر ۶ )باشد.

با دقت در کد متوجه می شویم که رقم کنترل ورودی برابر ۱ است پس کد مورد نظر به عنوان یک کد معتبر قابل قبول نیست.

در مقاله های بعدی با بلونا همراه باشید با برنامه نویسی این الگوریتم.



امتیاز بدهید :

| امتیاز : 0
موضوع : | بازدید : 804
برچسب ها : الگوریتم,