ايران ويج

نسخه‌ی کامل: سوال در مورد چند خط برنامه
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
این قسمت از برنامه نمیفهم چطور عمل میکنه
امکان داره کمکم کنید
ممنون
Do
Incr I
Aa = A Mod 10
Select Case I
Case 1:
Portb = Lookup(aa , Annode_display)
Set S1 : Waitms T
Case 2:
Portb = Lookup(aa , Annode_display)
Set S2 : Waitms T
Case 3:
Portb = Lookup(aa , Annode_display)
Set S3 : Waitms T
End Select
Reset S1 : Reset S2 : Reset S3
A = A \ 10 : If A = 0 Then Exit Do
Loop
این چیه؟
ماله روشن کردن سون سگمنته؟
(۲۸-دى-۱۳۹۱, ۰۸:۳۶:۱۰)kendab نوشته است: [ -> ]سلام
این قسمت از برنامه نمیفهم چطور عمل میکنه
امکان داره کمکم کنید
ممنون
.
.
.
سلام :

خط به خط براتون توضیح میدم ...
Do

شروع حلقهء برنامه

Incr I

یک واحد به متغیر I اضافه میشه

Aa = A Mod 10

محتوای متغیر A بر 10 تقسیم میشه و حاصل باقیماندهء این تقسیم ، در متغیر Aa ذخیره میشه

Select Case I

مقادیری که ممکنه متغیر I به خودش بگیره ، بررسی میشه و برای هر وضعیتی ، یک کار خاص تعریف میشه .

Case 1:
Portb = Lookup(aa , Annode_display)

اگه متغیر I برابر با 1 بود ، به جدول Annode_display میره و دادهء موجود در اون محلی از همین جدول که متغیر Aa بهش اشاره میکنه رو برمیداره و در پورت B میریزه و به خط بعدی میره. در غیر اینصورت ، به خط case 2 میره .

Set S1 : Waitms T
متغیر بیتی S1 رو یک میکنه و سپس به اندازهء عدد موجود در متغیر T ، تأخیر ایجاد میکنه ( بر حسب میلی ثانیه ) و سپس به خط End select میره .
Case 2:
Portb = Lookup(aa , Annode_display)

اگه متغیر I برابر با 2 بود ، به جدول Annode_display میره و دادهء موجود در اون محلی از همین جدول که متغیر Aa بهش اشاره میکنه رو برمیداره و در پورت B میریزه و به خط بعدی میره. در غیر اینصورت ، به خط case 3 میره .

Set S2 : Waitms T
متغیر بیتی S2 رو یک میکنه و سپس به اندازهء عدد موجود در متغیر T ، تأخیر ایجاد میکنه ( بر حسب میلی ثانیه ) و سپس به خط End select میره .

Case 3:
Portb = Lookup(aa , Annode_display)

اگه متغیر I برابر با 3 بود ، به جدول Annode_display میره و دادهء موجود در اون محلی از همین جدول که متغیر Aa بهش اشاره میکنه رو برمیداره و در پورت B میریزه و به خط بعدی میره . در غیر اینصورت ، به خط End select میره .

Set S3 : Waitms T

متغیر بیتی S3 رو یک میکنه و سپس به اندازهء عدد موجود در متغیر T ، تأخیر ایجاد میکنه ( بر حسب میلی ثانیه )و به خط بعدی میره .

End Select

در اینجا ، دیگه بررسی هر سه حالت تعریف شده به پایان میرسه و خط بعدی اجرا میشه ( اگه هیچکدوم از اون سه حالت هم وجود نداشته باشه ، برنامه از خط بعدی اجرا میشه )

Reset S1 : Reset S2 : Reset S3

هر سه متغیر بیتی S1 و S2 و S3 ، صفر میشن و به خط بعدی میره .

A = A \ 10 : If A = 0 Then Exit Do

متغیر A بر عدد 10 تقسیم میشه و خارج قسمت این تقسیم در متغیر A‌ قرار میگیره . بعد اگه مقدار متغیر A‌ برابر یا صفر بود ، برنامه از حلقهء بی انتهای Do خارج میشه

Loop

تمامی این مراحل بالا که توضیح داده شد بصورت مداوم تکرار میشه و هیچوقت این عملیات متوقف نمیشه ، مگر اینکه متغیر A عددی کوچکتر از 10 به خودش بگیره . چون فقط در این حالت هست که حاصل تقسیم A بر عدد 10 ، دارای خارج قسمت صفر میشه و بنابراین ، برنامه میتونه از حلقهء Do بیاد بیرون .

********************

امیدوارم به اندازهء کافی تونسته باشم بصورت ساده و روان و با گفتاری عامیانه توضیح بدم ...