سلام.
راه حلی به صورت کد متلب (MATLAB) زیر وجود دارد که البته یک پنجره شکل خالی را نمایش می دهد و بعد از اجرای کد، باید یک کلید از کیبورد را فشار دهید (لینک منبع کد) (پس از آن، کد لازم برای فشار دادن بیش از یک کلید را هم ذکر خواهیم کرد).
3 نکته مهم، قبل از استفاده از کد زیر :
1- حتما کیبورد در حالت تایپ ((حروف انگلیسی)) باشد، نه ((حروف فارسی)). اگر کیبورد در حالت تایپ ((حروف فارسی)) باشد، هیچگونه خروجی را مشاهده نخواهید کرد
2- دقت کنید که بعد از اجرا کردن کد، با موس در جایی کلیک نکنید (صرفا کلیدی از کیبورد را فشار دهید)
3- پس از پایان فشار دادن کلید و اتمام اجرای کدها، اگر کلیدی دیگر از کیبورد را فشار دهید، احتمالا کاراکتر مربوط به آن کلید در ادیتور (Editor) شامل کدهای متلب (MATLAB) تایپ می شود. بنابراین مراقب باشید که ناخواسته در بین کدهای متلب (MATLAB) خود، کاراکتری را تایپ نکنید (مراقب باشید که چه زمانی اجرای کدها به پایان رسیده است و یا اصلا می توانید یک کد نمایش پیام پایانی را به انتهای کدها اضافه نمایید، مخصوصا برای کدهایی که در ادامه، برای فشار دادن بیش از یک کلید، ذکر خواهیم کرد)
کد متلب (MATLAB) (تنها برای فشار دادن یک کلید) :
در منبع کدها (که لینک آن را ذکر کردیم)، دستور close all در انتهای کدها وجود نداشت، ولی بنده آن را اضافه کرده ام تا به محض پایان زدن کلید مورد نظرمان، پنجره شکل خالی، بسته شود.
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
با اجرای کد متلب (MATLAB) بالا، کاراکتر مربوط به کلید فشار داده شده و همچنین کد ascii مربوط به آن، دز خروجی متلب (MATLAB) نمایش داده می شود. مثلا با زدن کلید k از کیبورد، خروجی متلب (MATLAB) به صورت زیر خواهد بود :
اما کد متلب (MATLAB) مورد نظر، تنها برای زدن یک کلید از کیبورد می باشد، بنابراین اگر تعداد کلیدی که باید زده شود را بدانیم (و بیش از یک کلید باشد)، می توانیم از حلقه for استفاده نماییم (کلید شماره 30). به عنوان مثال، برای قابلیت زدن 14 کلید، کد متلب (MATLAB) زیر را می نویسیم (می خواهیم عبارت kelidestan.com را وارد کنیم که دارای 14 کاراکتر است) :
دقت کنید که تعداد 14 کلید (کاراکتر) را به عنوان تعداد گام حلقه for مشخص کرده ایم.
پس از اجرای کد متلب (MATLAB) بالا، عبارت kelidestan.com را تایپ می کنیم و خروجی متلب (MATLAB) به صورت زیر خواهد بود :
راه حلی به صورت کد متلب (MATLAB) زیر وجود دارد که البته یک پنجره شکل خالی را نمایش می دهد و بعد از اجرای کد، باید یک کلید از کیبورد را فشار دهید (لینک منبع کد) (پس از آن، کد لازم برای فشار دادن بیش از یک کلید را هم ذکر خواهیم کرد).
3 نکته مهم، قبل از استفاده از کد زیر :
1- حتما کیبورد در حالت تایپ ((حروف انگلیسی)) باشد، نه ((حروف فارسی)). اگر کیبورد در حالت تایپ ((حروف فارسی)) باشد، هیچگونه خروجی را مشاهده نخواهید کرد
2- دقت کنید که بعد از اجرا کردن کد، با موس در جایی کلیک نکنید (صرفا کلیدی از کیبورد را فشار دهید)
3- پس از پایان فشار دادن کلید و اتمام اجرای کدها، اگر کلیدی دیگر از کیبورد را فشار دهید، احتمالا کاراکتر مربوط به آن کلید در ادیتور (Editor) شامل کدهای متلب (MATLAB) تایپ می شود. بنابراین مراقب باشید که ناخواسته در بین کدهای متلب (MATLAB) خود، کاراکتری را تایپ نکنید (مراقب باشید که چه زمانی اجرای کدها به پایان رسیده است و یا اصلا می توانید یک کد نمایش پیام پایانی را به انتهای کدها اضافه نمایید، مخصوصا برای کدهایی که در ادامه، برای فشار دادن بیش از یک کلید، ذکر خواهیم کرد)
کد متلب (MATLAB) (تنها برای فشار دادن یک کلید) :
کد پیاچپی:
clear all
close all
clc
w = waitforbuttonpress;
if w
p = get(gcf, 'CurrentCharacter');
disp(p) % displays the character that was pressed
disp(double(p)) % displays the ascii value of the character that was pressed
end
close all
در منبع کدها (که لینک آن را ذکر کردیم)، دستور close all در انتهای کدها وجود نداشت، ولی بنده آن را اضافه کرده ام تا به محض پایان زدن کلید مورد نظرمان، پنجره شکل خالی، بسته شود.
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
با اجرای کد متلب (MATLAB) بالا، کاراکتر مربوط به کلید فشار داده شده و همچنین کد ascii مربوط به آن، دز خروجی متلب (MATLAB) نمایش داده می شود. مثلا با زدن کلید k از کیبورد، خروجی متلب (MATLAB) به صورت زیر خواهد بود :
کد پیاچپی:
k
107
اما کد متلب (MATLAB) مورد نظر، تنها برای زدن یک کلید از کیبورد می باشد، بنابراین اگر تعداد کلیدی که باید زده شود را بدانیم (و بیش از یک کلید باشد)، می توانیم از حلقه for استفاده نماییم (کلید شماره 30). به عنوان مثال، برای قابلیت زدن 14 کلید، کد متلب (MATLAB) زیر را می نویسیم (می خواهیم عبارت kelidestan.com را وارد کنیم که دارای 14 کاراکتر است) :
کد پیاچپی:
clear all
close all
clc
for c = 1:14
w = waitforbuttonpress;
if w
p = get(gcf, 'CurrentCharacter');
disp(p) % displays the character that was pressed
disp(double(p)) % displays the ascii value of the character that was pressed
end
end
close all
دقت کنید که تعداد 14 کلید (کاراکتر) را به عنوان تعداد گام حلقه for مشخص کرده ایم.
پس از اجرای کد متلب (MATLAB) بالا، عبارت kelidestan.com را تایپ می کنیم و خروجی متلب (MATLAB) به صورت زیر خواهد بود :
کد پیاچپی:
k
107
e
101
l
108
i
105
d
100
e
101
s
115
t
116
a
97
n
110
.
46
c
99
o
111
m
109
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.