دستور input در متلب
به نام خدا و سلام.
به جلسه بیستم از سری جلسات آموزش متلب خوش آمدید. آموزش متلب از وبسایت متلبپلاس ارائه میشود. در این جلسه به آموزش دستور input در متلب برای گرفتن ورودی از کاربر میپردازیم. گرفتن ورودی در متلب میتواند به صورت عدد یا متن باشد. به هر دو مورد در استفاده از input میپردازیم. همچنین 4 مثال کاربردی و مهم از برنامه نویسی و دستور input حل میشود.
با متلب پلاس همراه باشید.
فیلم آموزش متلب بصورت پروژه محور (حل 149 نمونه سوال برنامه نویسی❤️) در وبسایت متلبپلاس ارائه شده است. برای مشاهده این پکیج آموزشی روی 👈 حل نمونه سوال برنامه نویسی متلب 👉 کلیک نمائید.
مقدمهای بر گرفتن ورودی در متلب
در برنامه نویسی متلب با دادههای عددی یا متنی سروکار داریم. گاهی این دادهها در ابتدای برنامه (کد) تعریف میشوند. به این صورت که مثلا در ابتدای برنامه، تعریف میکنیم مقدار a، b و… چقدر باشد. سپس با این دادهها، محاسبات مربوطه را انجام میدهیم. برای تغییر این مقادیر بایستی برنامه (کد) را تغییر دهیم. اما راه دیگری برای وارد کردن دادهها به متلب وجود دارد. این راه، استفاده از دستور input است.
مزیت این روش، این است که نیازی به تغییر در برنامه نیست. کافیست فقط برنامه را اجرا کنیم. در هر مرحله که به ورودی نیاز باشد، متلب آن را از کاربر درخواست میکند. فرض کنید برنامهای برای انجام یک سری محاسبات نوشتهاید. اگر این برنامه در دست شخص دیگری قرار گیرد، درک کار با آن و تغییر در ورودی و کدهای آن دشوار است. بنابراین با گرفتن ورودی با دستور input آن شخص فقط کافیست برنامه را اجرا کند.
در این آموزش متلب مقدماتی به طور کامل با دستور input و جزئیات آن آشنا میشویم. لطفا همین الان نرم افزار متلب را باز کنید و تمام مثالهایی که در ادامه میآیند را شما هم بنویسید! بهتر است مثالهای این جلسه را در محیط editor متلب بنویسید.
دستور input در متلب
گفتیم که با دستور input میتوانیم ورودی را در پنجره فرمان (Command Window) از کاربر دریافت کنیم. طرز استفاده از دستور input به صورت زیر است.
x = input(prompt)
در این نوشتار، ابتدا پیغام prompt نمایش داده شده و ورودی در x ذخیره میشود. دقت داشته باشید که prompt باید به صورت رشته متنی باشد. prompt در واقع یک متن (درون کوتیشن) است که برای راهنمایی کاربر (برای وارد کردن مقدار) به کار میرود. برای درک بهتر به مثالهای زیر دقت کنید.
مثال 1- گرفتن یک عدد با دستور input در متلب
میخواهیم یک برنامه بنویسیم که یک عدد از کاربر دریافت کند. سپس جذر این عدد را محاسبه کرده و با یک پیغام مناسب، نمایش دهد. برای این کار، به صورت زیر عمل میکنیم. دقت کنید که این مثال و سایر مثالهای این جلسه را در محیط ادیتور (editor) متلب بنویسید.
x = input('Enter a number ');
y = sqrt(x);
disp(['Square Root of x is: ',num2str(y)])
قبل از اینکه این کد را اجرا کنیم، آن را توضیح میدهیم.
- خط اول: پیغام ‘Enter a number’ را به کاربر نمایش داده و ورودی را در x ذخیره میکند.
- خط دوم: حال با تابع sqrt جذر این ورودی را گرفته و در y ذخیره میکنیم.
- خط سوم: با استفاده از دستور disp، متن Square Root of x is و مقدار y را نمایش میدهیم. دقت کنید که چون از disp برای نمایش متن استفاده کردیم، عدد را نیز به متن تبدیل کردهایم. تبدیل عدد به رشته متنی با دستور num2str انجام میشود.
پس از اجرا خواهیم داشت:
در مثال بالا بجای وارد کردن یک عدد (اسکالر) در x، میتوان یک بردار یا ماتریس نیز وارد کرد.
مثال 2- محاسبه سن با دستور input در متلب
میخواهیم 2 عدد (سال و ماه تولد) را از کاربر گرفته و سن او را حساب کنیم. مبنای محاسبه سن نیز خرداد ماه سال 1401 است. به صورت زیر عمل میکنیم.
x = input('Enter your birthday year ');
y = input('Enter your birthday month (number) ');
year = 1401 - x;
month = 3 - y;
if lt(month, 0)
year = year - 1;
month = 12 + month;
end
disp(['You are ',num2str(year),' years and ',num2str(month), ' months old'])
قبل از اجرای برنامه، آن را توضیح میدهیم.
- خط اول و دوم: با یک پیغام مناسب، شماره سال و ماه تولد را دریافت میکند.
- خط چهارم: مقدار سن (سال) را با کم کردن 1401 از سال تولد محاسبه میکند.
- خط پنجم: مقدار سن (ماه) را با کم کردن 3 (خرداد ماه- الان!) از ماه تولد محاسبه میکند.
- خط 6 تا 9: در خط 5، ممکن است شماره ماه منفی شود (مثلا برای متولد آذر). بنابراین از عبارت شرطی if استفاده میکنیم تا این مشکل برطرف شود. دستور lt(a,b) همان a<b است. یک سال از سن کم کرده و مقدار ماه را با 12 جمع میکنیم. این کار برای این است که سن را با تعداد ماه بیان کنیم. (مثلا کسی که 25 سال و 3 ماه دارد)
- خط 12: با یک پیغام مناسب، مقدار سن (سال و ماه) را نمایش میدهد.
پس از اجرا خواهیم داشت:
مثلا سن فردی که متولد آذر (ماه 9) سال 1375 باشد، تا خرداد 1401 برابر 25 سال و 6 ماه است. این دقیقا همان نتیجهای است که متلب محاسبه کرده.
گرفتن رشته (متن) با دستور input در متلب
در مثالهای بالا، از کاربر یک عدد دریافت کردیم. اما ممکن است نیاز به گرفتن یک متن یا حرف داشته باشیم. در این شرایط یک حرف s به انتهای دستور input اضافه میشود. حرف s مخفف کلمه string به معنای رشته متنی است. سینتکس (نوشتار) دستور input برای گرفتن متن به صورت زیر است.
str = input(prompt,'s')
در این نوشتار، پیغام prompt نمایش داده شده و متن ورودی در str ذخیره میشود. دقت داشته باشید که prompt باید به صورت رشته متنی باشد. prompt در واقع یک متن (درون کوتیشن) است که برای راهنمایی کاربر (برای وارد کردن مقدار) به کار میرود. برای درک بهتر به مثالهای زیر دقت کنید.
مثال 3- گرفتن متن با دستور input در متلب
در اینجا یک مثال ساده برای گرفتن متن با input ارائه میشود. میخواهیم یک متن را وارد کرده و تمام حروف آن را به حرف بزرگ تبدیل کرده و نمایش دهد. برای این کار به صورت زیر عمل میکنیم.
x = input('Enter Your text: ','s');
y = upper(x);
disp(y)
- در خط اول با پیغام مناسب، متن کاربر را گرفته و در x ذخیره میکند.
- در خط دوم با دستور upper متن موجود در x را به حروف بزرگ تبدیل میکند. سپس این متن در y ذخیره میشود. (برای مطالعه درباره دستورات رشته متنی، روی رشته متنی در متلب کلیک نمائید)
- در خط سوم y را با دستور disp نمایش میدهیم.
پس از اجرای این کد داریم:
مثال 4- تکرار یک برنامه با پرسش از کاربر
میخواهیم یک برنامه بنویسیم که برنامهی محاسبه سن (مثال 2) را چند بار انجام دهد. در واقع در انتهای برنامه، از کاربرد بپرسد که مجددا اجرا شود یا نه. برای این کار، همان کد مثال 2 را درون یک حلقه قرار میدهیم. به صورت زیر:
t = 'y';
while t == 'y'
x = input('Enter your birthday year ');
y = input('Enter your birthday month (number) ');
year = 1401 - x;
month = 3 - y;
if lt(month, 0)
year = year - 1;
month = 12 + month;
end
disp(['You are ',num2str(year),' years and ',num2str(month), ' months old'])
pause(1);
disp(' ');
t = input('Do you want to Continue (y or n) ? ','s');
end
قبل از اجرای برنامه، آن را توضیح میدهیم.
- خط 1: یک رشته متنی با محتوای y ایجاد و در t میکنیم.
- خط 2: با استفاده از حلقه while تا زمانی که محتوای t برابر با y است، کد اجرا میشود. جزئیات کامل درباره حلقهی while در جلسه هجدهم ارائه شد. برای مشاهده، روی عبارت حلقههای تکرار while در متلب، کلیک کنید (عبارت قرمز).
- خط 3 تا 12: مقدار سن را با دریافت ورودی سال و ماه تولد محاسبه میکند. این خطوط در مثال 2 به طور کامل توضیح داده شد.
- خط 14: پس از نمایش سن، به مدت 1 ثانیه توقف میکند. برای توقف از دستور pause استفاده میکنیم.
- خط 15: یک متن خالی (سفید) برای زیبایی در اجرا نمایش داده میشود.
- خط 16: پس از محاسبه و نمایش سن، از کاربر میپرسد که آیا میخواهید ادامه دهید. با y و n اعلام کنید.
چنانچه حرف y را وارد کنیم، این حلقه تکرار میشود. اما اگر n (یا حر حرف دیگر) وارد کنیم، حلقه تمام میشود. اجرای این برنامه به صورت زیر است.
به این ترتیب یک برنامه با دستور input و حلقه while نوشتیم که سن را محاسبه و تکرار کند.
تمرینات این جلسه
در انتهای این جلسه 3 تمرین متلب مربوط به مباحث این جلسه ارائه شده است. لطفا این تمرینها را حل کرده و با پاسخ آن مقایسه کنید. پاسخ تمرینات متلب این جلسه در کانال تلگرام متلب پلاس منتشر میشود. از آیکونهای سمت راست صفحه میتوانید در این کانال عضو شوید.
تمرین اول) برنامهای بنویسید که یک عدد (شعاع) به عنوان ورودی بگیرد. سپس محیط و مساحت دایره متناظر را محاسبه و با پیام مناسب نمایش دهد.
تمرین دوم) برنامهای بنویسید که یک بردار شامل نمرات 4 درس از کاربر دریافت کند. پس از آن، بردار دوم شامل واحدهای دروس را دریافت کرده و معدل را محاسبه کند. برای محاسبه معدل کل، ابتدا مجموع ضرب هر درس در واحد آن را بدست آورید. سپس این مجموع را بر تعداد واحدها تقسیم کنید.
تمرین سوم) برنامهی تمرین قبل را درون یک حلقه قرار دهید تا قابل تکرار باشد. به این صورت که پس از پایان، از کاربر برای ادامه دادن سوال کند. اگر کاربر yes وارد کند ادامه دهد و در غیر اینصورت پایان یابد.
جمعبندی
خب جلسه بیستم از سری جلسات آموزش متلب به پایان رسید. این جلسه درباره دستور input در متلب به طور کامل صحبت کردیم. با استفاده از دستور input میتوان از کاربر در محیط command window ورودی دریافت کرد. با این دستور میتوان برنامههای مختلف نوشت. 4 مثال نسبتا مهم و کاربردی نیز حل کردیم. در این مثالها هم مقدار عددی و هم متن را با دستور input از کاربر گرفتیم. برای نوشتن برنامهای که برای هرکس قابل اجرا باشد، نیاز به گرفتن ورودی داریم. چون ممکن است همه به تغییر متغیرها در محیط کدنویسی تسلط نداشته باشند. به همین دلیل حتما مباحث این جلسه را به دقت فرا بگیرید.
در انتها چند تمرین برای یادگیری بیشتر به شما واگذار کردیم که پاسخ آنها در کانال تلگرامی متلب پلاس وجود دارد. بی صبرانه منتظر نظرات، سوال و ابهامات شما عزیزان هستیم. سعی میکنیم تا هرگونه سوال یا ابهامی که در این باره دارید را پاسخ دهیم. توصیه میشود که حتما تمرینات این جلسه را انجام بدید و اگر سوال و ابهامی دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست هم میتونید به بقیه جلسات دسترسی داشته باشید.
4 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام. خیلی ممنون از توضیحات کاملی که ارائه کردید. ای کاش فیلم آموزش دستور input در متلب هم ارائه می کردید. چون توضیحات تون کامل بود این درخواست رو داشتم.
خیلی ممنون از وبسایت خوب متلب پلاس.
سلام مهدی عزیز
ممنون از نظر لطف شما و پیشنهادی که فرمودین.
تهیه فیلم آموزش از جلسات آموزش متلب، آغاز شده و به مرور زمان برای هر جسله ویدئوی کامل از آموزش اون مبحث رو منتشر میکنیم.
فیلم آموزش دستور input در متلب هم بزودی در همین صفحه منتشر میشه.
موفق باشید.
سلام . فیلها را دانلود کردم تا فرصت پیش بیاد بخونم. تا جلسه 19 فقط میتونیم دانلود کنیم؟
سلام محدثه عزیز
ممنون از حسن انتخابت.
فیلم جلسات رو به مرور زمان منتشر میکنیم. معمولا هفتهای 2 یا 3 ویدیو در سایت منتشر میشه.
اگر کانال یوتیوب ما رو دنبال کنی، همیشه از ویدیوهای جدید باخبر میشی. لینک کانال یوتیوب در پایین صفحه است.
اگر سوال دیگهای بود بفرمایید در خدمتیم.