آشنایی با برنامه نویسی در حوزه مهندسی

در اولین نوشته از سری آموزش هایی که قراره در آینده در همین صفحه برای شما عزیزان ارائه بشه، قصد داریم با برنامه نویسی در حوزه مهندسی آشنا بشیم. چند کلیدواژه در برنامه نویسی اهمیت دارند که عبارتند از درک مسئله، الگوریتم نویسی، انتخاب زبان برنامه نویسی و اجرا. در این مطلب به این مباحث با زبان ساده می پردازیم.کاربرد برنامه نویسی در مهندسیمقدمهدانشجویان رشته های مختلفی (نظیر مهندسی، علوم پایه و..) در ترم های اولیه دانشگاه در مقطع کارشناسی با درس برنامه نویسی آشنا می شوند. به زبان خیلی ساده در برنامه نویسی، یک سری کارها به کامپیوتر واگذار شده و خروجی از آن خواسته می شود. این کار فایده های زیادی نظیر؛ دقت بالا، صرفه جویی در وقت، جلوگیری از خطای انسانی و... دارد. مثلا فرض کنید به دنبال پیدا کردن پاسخ یک معادله (مثل 2x+1=5) با استفاده از روش حدس و خطا هستیم. با این روش حل مسئله در دبیرستان آشنا شده ایم. برای حل، یک مقدار برای مجهول (x) فرض کرده و در معادله جایگذاری می کنیم. مثلا فرض می کنیم که پاسخ صفر باشد، پس با جایگذاری خواهیم داشت (5=1) که نادرست است. چرا که 1 با 5 برابر نیست. برای بار دوم پاسخ 1 را فرض می کنیم و باز هم (5=3) نادرست خواهد بود. این روند را ادامه داده و پاسخ 2 را فرض می کنیم. این بار معادله برقرار می شود! پس پاسخ این معادله عدد 2 می باشد. بله همه ما با نگاه اول به این معادله پاسخ صحیح را تشخصی می دهیم اما هدف ما از این مثال یک درک الگوریتمی در حل مسائل است. در این مثال خیالی از یک روش بسیار عالی استفاده شد و آن حدس یک پاسخ و بررسی درستی یا نادرستی آن بود. حال اگر این روند را برای کامپیوتر تعریف کنیم می توانیم پاسخ هر معادله ای را بدون هیچ دانش ریاضی (روش های زیادی برای حل معادله بصورت دقیق وجود دارد) بدست آوریم. برای این کار باید دانش برنامه نویسی داشته باشیم. مثلا یک برنامه نویس می تواند این مسئله را به این صورت برای کامپیوتر تشریح کند: یک مقدار ورودی از کاربر دریافت کن و در معادله داده شده جایگذاری کن. حال برقراری تساوی را چک کن اگر درست بود، مقدار ورودی همان پاسخ است و اگر صحیح نبود، به کاربر اعلام کن که مقدار وارد شده پاسخ مسئله نیست.پس برای نوشتن هر برنامه ی کامپیوتری نیاز به یک الگوریتم داریم. مهارت کشف ارتباط بین بخش مختلف یک مسئله به کمک الگوریتم، بسیار مهم است. پس از اینکه الگوریتم مسئله شناسایی و نوشته شد نوبت به نوشتن برنامه می رسد. برای نوشتن یک برنامه از نرم افزارهای مختلفی می توان استفاده کرد. هر نرم افزار برنامه نویسی، زبان برنامه نویسی خاص خود را دارد. تفاوت مهم زبان های برنامه نویسی در سرعت، نحوه نوشتار و کاربرد آن ها می باشد. مثلا در حوزه برنامه نویسی وب زبان هایی نظیر برنامه نویس css، HTML و... وجود دارند که در مقاله برنامه نویسی وب بطور کامل به جزئیات آنها پرداخته شده و موضوع این بحث نیست. ابزارهای برنامه نویسیدر برنامه نویسی ابزارهای قدرتمندی وجود دارند که ما را به استفاده از آن ترغیب می کنند. این ابزارها عبارتند از حلقه های تکراری، عبارت های شرطی، گرفتن ورودی و ذخیره خروجی، تغییر متغیر و.... . حلقه ها در واقع یک سری کارهای تکراری برای ما انجام می دهند. مثلا با استفاده از حلقه ها به کامپیوتر اعلام می کنیم که تا زمانی که تساوی طرفین این معادله برقرار نشده است، به فرآیند حدس پاسخ ادامه بده. در این کار از دو ابزار استفاده شده است، یکی حلقه تکرار و دیگری عبارتی شرطی برای توقف حلقه.نرم افزارهای برنامه نویسی حوزه مهندسیدر حوزه مهندسی نرم افزارهای برنامه نویسی قدرتمندی نظیر؛ متلب، پایتون، فرترن و... وجود دارند. در این زبان های برنامه نویسی و مخصوصاً نرم افزار متلب، امکان انجام محاسبات پیچیده ریاضی به آسانی فراهم شده است. جدا از اینکه دستورات بسیار زیادی برای محاسبات ریاضی (مثلا پیدا کردن پاسخ یک معادله) در نرم افزار متلب وجود دارد، برنامه نویسی نیز یکی از ویژگی های آن است. نرم افزار پایتون و فرترن از نظر امکان محاسبات ریاضی پیشرفته، از نرم افزار متلب ضعیف تر بوده و کمتر (در بحث محاسبات ریاضی) مورد استفاده قرار می گیرند. پس از اینکه نرم افزار مورد نظر برای حل مسئله انتخاب شد، مسئله را کد نویسی می کنیم. وقت نسبتاً زیادی که برای کد نویسی یک مسئله در نرم افزار گرفته می شود، ارزش دقت بالا و تعمیم به سایر مسائل را دارد. به زبان دیگر، اگرچه که ممکن است برای نوشتن برنامه یک مسئله ساده چند ساعت وقت صرف شود، اما توجه داشته باشید که با کوچکترین تغییر این مسئله به یک مسئله دیگر تبدیل شده و نیازی به کد نویسی مجدد نیست. عامل مهم دیگر، دقت بالا و عدم خطای انسانی در محاسبات است که ما را مجبور به کد نویسی مسائل می کند. کاربرد برنامه نویسی در مهندسیمسائل همیشه به آسانی ای که در مثال (2x+1=5) بود، نیستند! بعنوان مثال یک مسئله مهندسی را تعریف می کنیم: فرض کنید که بدنبال یافتن مقاوم ترین تیر (اسکلت ساختمان) در برابر زلزله و نیروهای باد هستیم. همچنین متغیرهای ما نیروهای مختلف، جنس اسکلت ساختمان و ابعاد تیر آهن استفاده شده می باشند. برای حل این مسئله با دست ممکن است 10 یا 20 سال وقت صرف کنیم تا جنس های مختلف با ابعاد مختلف را درنظر گرفته و مسئله را حل کنیم. اما با کمک برنامه نویسی و اصول بهینه سازی، می توان این مسئله را در عرض چند روز حل کرد.از برنامه نویسی برای عدم تکرار فرآنیدهای طاقت فرسا و محاسبات طولانی نیز استفاده فراوانی در مهندسی می شود. مثلا فرض کنید میخواهیم یک نمودار شامل 1000 گراف از حالت های مختلف یک تابع رسم کنیم. برای این کار کافیست از حلقه ها استفاده کنیم و تغییراتی که باید روی تابع اعمال شود را کدنویسی کنیم. به این صورت که مثلا فلان پارامتر را تغییر بده و رسم کن. یکی دیگر از زمینه های کاربرد برنامه نویسی در مهندسی، حل مسائلی است که تا کنون حل نشده اند. در مثال معادله ساده فوق، روش های زیادی برای حل وجود داشت اما مسائل زیادی وجود دارند که تاکنون حل نشده اند و برای اولین بار بایستی با آنها برخورد کنیم. در این سبک از مسائل دیگر امکان استفاده از دستورات آماده و یا روش های قدیمی وجود ندارد بلکه به معنای واقعی کلمه، محقق (مهندس) بایستی یک برنامه جدید ارائه کند. در نوشتن این برنامه از ابزارهای برنامه نویسی مثل حل معادله دیفرانسیل یا رسم نمودار استفاده می شود. امیدوارم این آموزش ابتدایی موجب آشنایی شما عزیزان با نرم افزارهای برنامه نویسی در حوزه مهندسی شده باشد. ما در وبلاگ گام98 به آموزش نرم افزار متلب بطور تخصصی و کاملاً رایگان می پردازیم و باعث خوشحالیس که از مطالب ما دیدن بفرمائید.