PDA

View Full Version : تشخيص كاراكتر يا عدد



Reza,M
دوشنبه 12 اردیبهشت 1390, 17:42 عصر
با سلام
در زبان اسمبلي به چه صورت تشخيص بديم كه مقداري را كه كاربر وارد كرده عدد است يا كاركتر ؟

بعنوان مثال

if اگر كاربر كاركتر وارد كند
.
.
دستورات
.
.
else if اگر كاربر عدد وارد كند
.
.
دستورات
.
.
else اگر كاربر هيچ وارد نكتد و فقط اينتر بزند
.
.
دستورات
.
.

tdkhakpur
سه شنبه 13 اردیبهشت 1390, 01:18 صبح
همانطور که میدانید داخل اسمبلی ورودی فقط میتونه رشته باشه پس باید عدد رو به عنوان رشته رفتار نمود به فرض اگر num همان عددی باشه که شما در نظر دارید اینگونه باید کد بررسی رو بنویسید


num db '1';
cmp num, '0'
jle NOT_NUM
cmp num, '9'
jg NOT_NUM
jmp it_is_num
NOT_NUM:
// showmessage(''not number);
jmp exit
it_is_num:
// showmessage(''it is number);
exit:

Reza,M
سه شنبه 13 اردیبهشت 1390, 15:12 عصر
اگه بخوام else آخري اجرا بشه چه كار كنم؟
آخه ميخوام اگه فقط اينتر بزنه else آخر اجرا بشه ولي چون اينتر رو هم بعنوان يك كاركتر در نظر ميگيره هيچ گاه به شرط آخر نميرسم :افسرده:

tdkhakpur
چهارشنبه 14 اردیبهشت 1390, 00:20 صبح
اگه بخوام else آخري اجرا بشه چه كار كنم؟
اون کدهای ارسال شده بالا فقط یک if و else هست برای بار دوم همین خطها باید تکرا بشه. اگر میخواهید کد کمتری رو بنویسید یک تابع برای این کار بنویسید.


آخه ميخوام اگه فقط اينتر بزنه else آخر اجرا بشه ولي چون اينتر رو هم بعنوان يك كاركتر در نظر ميگيره هيچ گاه به شرط آخر نميرسم

هیچ کد اینتر 13 هست '0' یا '9' نیست کدتان رو ارسال کنید.

Reza,M
چهارشنبه 14 اردیبهشت 1390, 11:20 صبح
cmp n3,042
je l3
براي else آخري من بهش گفتم اگر فقط كاراكتر ورودي * بود اجرا بشه ; حال ميخوام بجاي زدن * با زدن اينتر اين كار انجام بشه

Reza,M
چهارشنبه 14 اردیبهشت 1390, 12:17 عصر
دوست عزيز مشكل حل شد بايد بجاي cmp n3,042 كد cmp n3,013 رو بنويسيم

حالا يه سوال واسم پيش اومده

cmp num, '0'
jle NOT_NUM
cmp num, '9'
jg NOT_NUM
چرا كوچكتر از صفر و بزرگتر از 9 ؟

tdkhakpur
چهارشنبه 14 اردیبهشت 1390, 20:42 عصر
چرا كوچكتر از صفر و بزرگتر از 9 ؟

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