آموزش انجام حل تمرین در متلب(جلسه چهل و هفتم)

حل در تمرین در متلب
حل در تمرین در متلب

در این دوره آنلاین آموزش متلب به صورت رایگان با سری آموزش‌های نرم افزار متلب در خدمت شما هستیم. در واقع آنچه که شما به طور کاملا عملی برای استفاده در انجام پروژه متلب نیاز دارید در این جلسات ارائه خواهد شد.

این جلسه را با توضیح مختصری درباره کارهایی که در جلسات گذشته انجام دادیم آغار میکنیم. پس برای اینکه مفاهیم را به خوبی وارد ذهنتان کنید و تمرین را ادامه دهید. این جلسه را با دقت با کارشناسان کارت همراه باشید.

انجام حل تمرین در متلب

ابتدا گفتیم this program shows your health index را display کند که می‌گوید این برنامه دارد health index شما را نشان می‌دهد. بعد دو تا input گذاشتیم که گفتیم enter weight یعنی وزنتان را به کیلوگرم وارد کنید که یک فاصله گذاشتیم که وزن در آنجا وارد شود و h = input هم در خط بعد گذاشتیم که h همان height یا قد ما بود که enter your height را می‌نویسیم که باید قد را به متر وارد کنیم و یک فاصله هم گذاشتیم که عدد مورد نظر را در آنجا وارد کنیم.

بعد یک display با یک فاصله گذاشتیم که یک خط به عقب می‌رود. و گفتیم که اگر قد شما بزرگتر از ۲.۷ بود، بنا به اینکه انسانی وجود ندارد که قدش بیشتر از ۲.۷ باشد، display کند که you entered your health index in cm یعنی اینکه health index را به سانتی‌متر زدید در صورتی که ما به متر می‌خواهیم.

بعد یک display دیگر می‌کند و می‌گوید که it is converted to meter و آن را به متر convert می‌کند. یعنی برای تبدیل سانتی‌متر به متر آن را بر ۱۰۰ تقسیم می‌کنیم.

بعد display می‌کند که قد شما مساوی num2str(h) است یعنی hای که در در خط ۱۱ به دست آوردیم. h را تقسیم بر ۱۰۰ کرده است به دست آورده و در اینجا قرار داده است. اما چرا از num2str  استفاده کردیم؟ زیرا در اینجا برای الحاق کردن باید دو تا str یا string یعنی رشته داشته باشیم ولی m هم نوشتیم که یعنی واحد آن متر است.

فرمول health index
فرمول health index

خط ۱۴ هم فرمول health index بود که در جلسه‌ی اول این تمرین بیان کردیم و در جلسه‌ی گذشته گفتیم wmin کمترین مقداری است که یک فرد سالم می‌تواند داشته باشد که آن را محاسبه کردیم و از فرمول نوشته شده در خط ۱۵ یعنی 18.5 * h^2 به دست می‌آید و به همین صورت با فرمول 29.9*h^2 به محاسبه wmax می‌پردازیم.

در خط بعد هم یک display داریم که یعنی یک خط به پایین بیاید. بعد your health index را display می‌کند و health index یعنی aای که در فرمول خط ۱۴ محاسبه شده است در خط ۱۸ نمایان می‌شود. برای display کردن گفتیم num2str باید بزنیم و بعد end را می‌زنیم.

حال می‌گوید اگر a شما بزرگتر از ۲۹.۹ بود، display کند که شما اضافه وزن دارید. زیرا گفتیم که اگر بیشتر از ۲۹.۹ باشد، اضافه وزن داریم. بعد display کند که وزن شما باید در این range باشد. در چه rangeای؟ wmin و wmax. باید در این محدوده باشد. بعد باز display کند که اضافه وزن شما w عادی منهای wmax یعنی بیشترین وزنی که دارید است. اگر این دو عدد را از هم کم کنید، آن اضافه وزنی که شخص دارد، به دست می‌آید.

حال اگر کم‌وزنی داشت یعنی اندیس سلامتی کمتر از ۱۸.۵ بود، اولا display کند که شما کم وزنی دارید. بعد display کند که your weight must in range … یعنی وزن شما باید در این range باشد و این‌که کم‌وزنی باید با فرمول wmin-w  به دست آید.

فرمول اضافه وزنی-کم وزنی و نرمال
فرمول اضافه وزنی-کم وزنی و نرمال

تا اینجا ساده بود و موضوع خاصی وجود نداشت. باز هم اگر سؤالی داشتید از من بپرسید تا من به شما جواب دهم.

در غیر این صورت هم display می‌کند شما هیچ مشکلی ندارید و شما یک شخص سالم هستید.

حال در این جلسه می‌خواهیم چه کاری انجام دهیم؟ در این جلسه می‌خواهیم کاری کنیم که تا جای مشخصی این برنامه‌ی ما تکرار شود ولی از یک جایی که دیگر کاربر نخواست برنامه تکرار شود، برنامه بسته شود. یعنی اینکه اگر کاربر بگوید No، برنامه بسته شود.

اما ما که نمی‌دانیم که کاربر تا چه زمانی جواب را می‌خواهد. در اینجا باید از حلقه‌های تکرار استفاده کنیم. حلقه‌های تکرار چه بودند؟ مثل for، while …

به این دلیل که نمی‌دانیم تا چه زمانی ادامه دارد، از while استفاده می‌کنیم.

For را تا هر جایی بزنیم، دیگر از بعد از آن جواب نمی‌دهد. مثلا for 1:1000 دیگر بعد از آن را جواب نمی‌دهد.

با while می‌توانیم حلقه را در اختیار کاربر قرار دهیم؟ چگونه؟ آن را توضیح می‌دهم که به خوبی متوجه شوید.

در اینجا while را در ابتدای برنامه در خط ۴ قرار می‌دهیم و while هم true است یعنی همیشه صحیح است.

قرار دادن while در ابتدای خط 4
قرار دادن while در ابتدای خط 4

گفتیم که می‌خواهد برنامه را چندین بار اجرا کند، یک clc هم زیر آن قرار می‌دهیم که هر بار که اجرا کرد، صفحه را پاک کند و اینجا شلوغ نشود. پس یک clc زیر while قرار می‌دهیم.

قرار دادن clc زیر while
قرار دادن clc زیر while

تمام برنامه را مطابق دو تصویر زیر انتخاب می‌کنیم دو تا tab می‌زنیم که به جلوتر برود و کمی برنامه زیباتر شود.

انتخاب برنامه
انتخاب برنامه
انتخاب برنامه و کلیک کردن دو بار روی tab
انتخاب برنامه و کلیک کردن دو بار روی tab

الان مشاهده می‌کنید که خط while تا کجا کشیده شده است.

نوشتن end برای while
نوشتن end برای while

بعد end را برای while می‌زنیم. و الان مشاهده می‌کنید که در بالا نمایش داده شده است که این end مربوط به خط ۴ است و در بالای برنامه مشاهده می‌کنیم که while دقیقا در خط ۴ قرار دارد.

نمایش while در خط 4
نمایش while در خط 4

اگر به بالا بیایید و روی علامت – قبل از while کلیک کنید، کل برنامه را می‌بندد.

روی علامت – قبل از while و بستن کل برنامه
روی علامت – قبل از while و بستن کل برنامه
بستن while با زدن علامت –
بستن while با زدن علامت –

یعنی تمام این برنامه متعلق به while است.

حال اگر این برنامه را اجرا کنیم، به نظر شما چه اتفاقی می‌افتد؟ این یک حلقه‌ی بی‌نهایت است. برنامه همین‌طور اجرا می‌شود زیرا نمی‌داند چه زمانی باید متوقف شود. اگر تا اینجا نوشتید و اجرا کردید، متوقف نمی‌شود. باید متلب را ببندید. این نکته را هم یادداشت کنید که در ذهنتان بماند که باید ctrl و c را بگیرید که برنامه هرجایی که هست، متوقف شود. اما برای استفاده از yes و no در اینجا باید از input استفاده کنیم.

به آخر برنامه خط ۳۳ قبل از end می‌رویم. اولا یک display می‌زنیم که یک خط به پایین برود و بعد در اینجا answer ما یعنی جوابی که داریم که برابر با یک input است زیرا باید آن را وارد کنیم، و جواب yes و no است و باید وارد کنیم. هر جا یک چیز وارد کردنی بود، از input استفاده می‌کنیم. سؤال چه می‌گوید؟ do you want to continue the program? یعنی می‌خواهید برنامه را ادامه دهید؟ جواب‌ها چیست؟ جواب‌ها yes/no هستند.

بعد یک فاصله برای جوابی که داریم قرار ‌می‌دهیم و بعد از آن یک s قرار می‌دهیم. به نظر شما این s چیست؟ گفتیم برای وارد کردن input دو تا حالت داشتیم اگر به قسمت help مراجعه کنید و در مورد input مطالعه کنید، می‌بینید که s برای حالتی بود که ورودی از جنس رشته است. جوابی که ما می‌گیریم yes و no است که رشته هستند. بنابراین به دلیل اینکه از جنس رشته است، s گذاشتیم یعنی حالت input ما از جنس رشته است. حال در اینجا می‌خواهیم با end گفتن و no گفتن برنامه break شود و خارج شود.

یعنی اگر no وارد کردیم، دیگر هیچ کاری انجام ندهد و برنامه را کلا ببندد. چه کاری باید انجام دهیم؟ در اینجا باید از چه چیزی استفاده کنیم؟ یک ;  هم قرار می‌دهیم.

قرمز شدن خط و وجود مشکل در برنامه
قرمز شدن خط و وجود مشکل در برنامه

فقط توجه داشته باشید که الان مشاهده می‌کنید که خط ما قرمز است یعنی در اینجا مشکلی وجود دارد. زیر آن هم خط کشیده شده است زیرا ما در اینجا قبل از ; براکت «[» قرار دادیم و باید پرانتز قرار می‌دادیم که آن را اصلاح می‌کنیم.

اینجا قبل از ; براکت «[» قرار می دهیم
اینجا قبل از ; براکت «[» قرار می دهیم

حال می‌گوییم که if … یک دستوری را به صورت strcmpi داشتیم. این دستور string را compare می‌کرد. یعنی string را مقایسه می‌کرد. می‌گوید answer ای که این بالا داریم، اگر no بود یعنی if strcmpi(Answer, ‘No’)، (توجه داشته باشید که strcmpi که قبلا به خوبی در موردشان توضیح دادم، case snsetive هم است) یا (که آن را با «|» نشان می‌دهیم، اما در اینجا چون اسکالر است دو تا «|» قرار می‌دهیم که برنامه سریع‌تر شود) strcmpi(answer , ‘N’) اگر این دو حالت بود، چه کار کند؟ break کند و بعد end را می‌زنیم.

اجرا کردن برنامه
اجرا کردن برنامه

اکنون نوشتن این برنامه تمام شد. حال آن را run می‌کنیم.

می‌خواهد وزنمان را وارد کنیم.

وارد کردن میزان وزن

مثلا وزن ما ۹۰ است.

وارد کردن عدد 90 برای وزن

قد را از ما می‌خواهد. برای مثال ۱.۹ را وارد می‌کنیم.

وارد کردن میزان وزن
وارد کردن میزان وزن

می‌گوید که شما یک فرد سالم هستید. حال می‌گوید می‌خواهید برنامه را ادامه دهید؟ ما می‌گوییم N یعنی نه. یعنی تمام و برنامه تمام می‌شود.

نوشتن N و بستن برنامه
نوشتن N و بستن برنامه

حال بار دیگر run می‌گیریم. می‌گوید که وزن را وارد کنید.

اجرا کردن مجدد برنامه
اجرا کردن مجدد برنامه

مثلاً وزن ما ۱۳۰ و قدمان ۱.۶ است.

وارد کردن مجدد قد و وزن
وارد کردن مجدد قد و وزن

می‌گوید اندیس سلامتی شما این عدد است و اضافه وزن دارید و وزن شما باید در این محدوده باشد و این مقدار اضافه وزن دارید. حال می‌خواهید برنامه را ادامه دهید؟‌

نمایش health index
نمایش health index

می‌گوییم yes.

نوشتن yes برای ادامه برنامه
نوشتن yes برای ادامه برنامه

باز یک بار دیگر می‌نویسد و ما می‌توانیم وزن را وارد کنیم.

نوشتن مجدد وزن
نوشتن مجدد وزن

برای مثال وزن را ۶۶ و برای قد ۱.۷ را وارد می‌کنیم.

عدد 66 برای وزن و 1.7 را برای قد وارد می کنیم
وارد کردن عدد 66 برای وزن و 1.7 را برای قد

باز می‌گوید که شما یک فرد سالم هستید. آیا می‌خواهید ادامه دهید؟

نمایش دهنده سلامتی فرد
نمایش دهنده سلامتی فرد

می‌گوییم No.

نوشتن no و تمام شدن برنامه
نوشتن no و تمام شدن برنامه

در اینجا مبحث امروز را به پایان می‌رسانیم و در جلسه آینده با مفهوم اعداد اول prime numbers در متلب آشنا خواهیم شد.

در صورتی که شما پس از خواندن محتوای جلسات قبلی و این بخش که به ساده‌ترین زبان ممکن درباره‌ی برنامه‌ی متلب و محیط کاربری آن توضیح داده باز هم سردرگم هستید. می‌توانید با برون سپاری انجام پروژه متلب خود به کارشناسان حرفه‌ای کارت پروژه می‌باشد. میتوانید از طریق شماره‌ی 09104503300 با پشتیبانان کارت از طریق پیام یا تماس در ارتباط باشید.

برای کسب اطلاعات بیشتر در مورد متلب میتوانید به مقاله آموزش متلب مقدماتی مراجعه کنید.

برای ثبت سفارش لطفا در تلگرام یا واتساپ یا ایتا به شماره 09104503300 پیام دهید.