نمایش نتایج 1 تا 3 از 3

نام تاپیک: چک کردن کد ملی

  1. #1
    کاربر دائمی آواتار koorosh-soft
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    طرف های VB.NET
    پست
    168

    Thumbs down چک کردن کد ملی

    سلام دوستان چند نفر به من PM داده بودن برای چک کردن کد ملی منم میزارمش اما نمنونه تو سایت زیاد هست و نسبتا تاپیک تکراریه

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

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

    ساختار کد ملی

    ارقام کد رقم کنترل 9 رقم سمت چپ کد ملی
    موقعیت
    1 2 3 4 5 6 7 8 9 10

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

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

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

    مثال : آیا کد 7731689951 یک کد ملی معتبر است؟

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

    ساختار کد ملی
    ساختار کد رقم کنترل 9 رقم سمت چپ کد ملی
    ارقام کد 1 5 9 9 8 6 1 3 7 7
    موقعیت 1 2 3 4 5 6 7 8 9 10
    محاسبه حاصل ضرب 10 27 36 40 36 7 24 63 70

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

    7*10+7*9+3*8+1*7+6*6+8*5+9*4+9*3+5*2=313

    313÷11=28 و R=3

    چون باقیمانده برابر 3 و بزرگتر مساوی 2 است پس باید رقم کنترل این کد برابر 8 ( یازده منهای 3 برابر 8 )باشد.

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

    (منبع : سایت استاد علی آرش)


    Public Function CheckCode(ByVal Code As String) As Boolean



    Dim c As Double, n As Double, r As Double



    If Len(Code) < 10 Then Code = (10 - Len(Code) + "0") & Code



    If Code = "0000000000" Or Code = "1111111111" Or Code = "2222222222" Or Code = "3333333333" Or Code = "4444444444" Or Code = "5555555555" Or Code = "6666666666" Or Code = "7777777777" Or Code = "8888888888" Or Code = "9999999999" Then
    Return (False)
    Else
    c = Val(Mid$(Code, 10, 1))
    Dim j As Integer = 10
    For i As Integer = 1 To 9
    n = n + Val(Mid$(Code, i, 1)) * j
    j = j - 1
    Next
    r = n - Int(n / 11) * 11
    If (r = 0 And r = c) Or (r = 1 And c = 1) Or (r > 1 And c = 11 - r) Then Return (True)
    End If

    End Function

  2. #2

    نقل قول: چک کردن کد ملی

    با سلام به دوستان گرامی
    آقا من تازه کارم می خواستم بدونم که این : Return (True)و یا این Return (False)رو به کدوم متغیر در این تابع بر مگردونه ؟

  3. #3
    کاربر دائمی آواتار shahab2025
    تاریخ عضویت
    دی 1386
    محل زندگی
    تا شعاع فعالیت کیبرد بیسیم خودم
    پست
    516

    نقل قول: چک کردن کد ملی

    نقل قول نوشته شده توسط sir.sam مشاهده تاپیک
    با سلام به دوستان گرامی
    آقا من تازه کارم می خواستم بدونم که این : Return (True)و یا این Return (False)رو به کدوم متغیر در این تابع بر مگردونه ؟
    سلام

    شما وقتی فانکشن از نوع بولی مینویسی خودش مقدار را برمیگردانه . یعنی الان فانکشن فوق یک عدد میگیره و true یا false پس میده

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •