07-15-2012، 08:40 AM
درود:
الگوریتم و برنامه تشخیص صحت کد ملی
کد ملی یک شناسه ی 10 رقمی است که اعداد آن به سه دسته تقسیم می شوند:
1- 3 رقم اول کد محل زندگی
2- 6 رقم بعدی کد منحصر به فرد شخص
3- رقم آخر عدد کنترل (Validation Number)
الگوریتم Validation کد ملی بصورت ساده به این شرح است:
از سمت چپ هر عدد ضربدر ارزش مکانی معکوس خود می شود.
حاصل ضرب ها با هم جمع می شود.
باقیمانده تقسیم حاصل جمع ها بر عدد 11 را بدست می آوریم.
اگر عدد بدست آمده در باقیمانده ی تقسیم، کوچکتر مساوی 2 بود، همان عدد باید با Validation Number (عدد آخر کد ملی) برابر باشد.
اگر عدد بدست آمده در باقیمانده ی تقسیم، بزرگتر از 2 بود، عدد را منهای 11 می کنیم و نتیجه باید برابر Validation Number (عدد آخر کد ملی) باشد.
thank the mute
الگوریتم و برنامه تشخیص صحت کد ملی
کد ملی یک شناسه ی 10 رقمی است که اعداد آن به سه دسته تقسیم می شوند:
1- 3 رقم اول کد محل زندگی
2- 6 رقم بعدی کد منحصر به فرد شخص
3- رقم آخر عدد کنترل (Validation Number)
الگوریتم Validation کد ملی بصورت ساده به این شرح است:
از سمت چپ هر عدد ضربدر ارزش مکانی معکوس خود می شود.
حاصل ضرب ها با هم جمع می شود.
باقیمانده تقسیم حاصل جمع ها بر عدد 11 را بدست می آوریم.
اگر عدد بدست آمده در باقیمانده ی تقسیم، کوچکتر مساوی 2 بود، همان عدد باید با Validation Number (عدد آخر کد ملی) برابر باشد.
اگر عدد بدست آمده در باقیمانده ی تقسیم، بزرگتر از 2 بود، عدد را منهای 11 می کنیم و نتیجه باید برابر Validation Number (عدد آخر کد ملی) باشد.
کد:
//www.parsicoders.com by amir
<?php
function CheckNationalCode($code)
**
if(strlen($code) <> 10)**
echo 'کد ملی باید ده رقم باشد';
}
else
**
$codeArray = str_split($code);
$AllEq ;
foreach($codeArray as $item => $value)
**
if($codeArray[0] <> $value)
**
$AllEq = false;
break;
}
else{ $AllEq = true;}
}
if($AllEq == true) die('اعداد کد ملی نمی توانند برابر هم باشند');
$j = 10;
$sum = 0;
for($i=0; $i<=8; $i++)
**
$sum +=((int)($codeArray[$i])) * $j;
--$j;
}
$divid = $sum % 11;
if ($divid <= 2)
**
if($codeArray[9] == $divid)
**
echo "کد ملی معتبر است";
}
echo "کد ملی معتبر نیست";
}
else
**
$divid1 = 11 - $divid;
if ($codeArray[9] == $divid1)
**
echo "کد ملی معتبر است";
}
else
**
echo "کد ملی معتبر نیست";
}
}
}
}
?>
thank the mute
با همه چيز درآميز و با هيچ چيز آميخته مشو
که در انزوا پاک ماندن نه سخت است و نه با ارزش
که در انزوا پاک ماندن نه سخت است و نه با ارزش
-
-
-
-
-