اگر با برنامهنویسی آشنا باشید، مطمئنا تا بهحال نام الگوریتم و فلوچارت را شنیدهاید، الگوریتم در حقیقت به مجموعهای از دستورالعملهای پشتسرهم گفته میشود که روند کلی اجرای یک برنامه را نمایش میدهند، در تاریخچهی این کلمه آمده که نام آن، از نام ریاضیدان برجستهی ایرانی، یعنی خوارزمی (الخوارزمی) گرفته شده و به صورت الگوریتم تغییر نام داده است.
در حالت عادی شاید کمتر با نام این واژه سروکار داشتهایم، اما باید بدانیم تقریبا تمام فعالیتهای روزمرهای که انجام میدهیم در قالب الگوریتمها هستند، به عنوان مثال فرض کنید قصد داریم یک الگوریتم برای محاسبهی میانگین 2 عدد بنویسیم، مراحل اجرای کار به شکل زیر خواهد بود:
هرچند در نگاه اول، این موضوع خیلی ساده به نظر میرسد، اما باید بدانید که تمام برنامههای کامپیوتری از دستورات پشتسر هم تشکیل شدهاند، بنابراین اگر میخواهید یک برنامهنویس حرفهای شوید باید به خوبی با مفهوم الگوریتم در برنامهنویسی آشنا باشید، همانطور که گفتیم، الگوریتمها در حقیقت پایه و منطق یک برنامهی کامپیوتری را تشکیل میدهند و بدون وجود آنها هیچ برنامهای وجود نخواهد داشت، در این مطلب آموزشی که توسط وبسایت همیار آیتی تهیه شده، قصد داریم کمی بیشتر با روش الگوریتمنویسی آشنا شده و یاد بگیریم که یک برنامهی کامپیوتری چگونه ایجاد میشود.
دستورات یک الگوریتم باید به ترتیب و پشتسر هم باشند، هنگامی که میخواهید یک الگوریتم بنویسید، باید کامپیوتر را مانند کودکی در نظر بگیرید که هیجچیز نمیداند و روش انجام کار را مرحله به مرحله به او بگویید، مثلا اگر بخواهیم روش صحیح مسواک زدن را به یک کودک آموزش دهیم، فرایند کار به این صورت خواهد بود:
شاید مطالعهی این مثال کمی شما را گیج کرده باشد، پس بیایید مثالهای بیشتری را با هم بررسی کنیم تا کمی بیشتر با مفهوم الگوریتمهای برنامهنویسی و نحوهی نوشتن آنها آشنا شویم.
فرض کنید قصد دارید برنامهای بنویسید که 10 عدد را از ورودی دریافت کرده و زوج یا فرد بودن آنها را تشخیص دهد:
جالب است بدانید، شما خیلی راحت میتوانید دستورات بالا را به کدهای برنامهنویسی تبدیل کنید، با نوشتن الگوریتم بالا شما مهمترین بخش کار را انجام دادهاید، در حقیقت الگوریتمنویسی اولین و مهمترین چیزی است که برای شروع برنامهنویسی باید آن را بدانید، در صورتی که علاقهمندید مثالهای بیشتری را در این زمینه یاد بگیرید میتوانید آموزش الگوریتم همیار آی تی را در گوگل جستجو نمایید.
نکتهی دیگری که باید در خصوص نوشتن الگوریتمها بدانید، این است که هر الگوریتم تنها یک نقطهی شروع دارد، اما در تعداد نقاط پایانی محدودیتی ندارید، همچنین سعی کنید در الگوریتم خود فقط دستورات مهم و ضروری را نوشته و از درج مراحل غیرضروری پرهیز کنید تا در نهایت برنامهی بهینهتری داشته باشید.
به طور کلی، 5 دستور مهم و کاربردی را در الگوریتمهای خود داریم، شامل دستورات ورودی، خروجی، دستورات محاسباتی، دستورات شرطی و حلقههای تکرار که در ادامه بیشتر با آنها آشنا میشویم، همهی این دستورات، معادلهایی را در زبانهای برنامهنویسی دارند، بنابراین شما با دانستن آنها بدون هیچ محدودیتی میتوانید در تمام زبانهای برنامهنویسی کار کرده و برنامهی مد نظرتان را بنویسید.
دستورات ورودی، یکی از مهمترین اجزای یک برنامهی کامپیوتری هستند، بدون وجود این دستورات، کاربران نمیتوانند هیچگونه تعاملی با سیستم داشته باشند، نمونهای از دستورات ورودی شامل دریافت کن، بگیر، بخوان و… هستند، مشابه همان چیزی که در مرحلهی شمارهی 2 مثال بالا (الگوریتم زوج و فرد) دیدیم.
این دستورات، نتیجهی پردازش کار را به اطلاع کاربر میرسانند، بنابراین همانند دستورات ورودی بسیار مهم بوده و تقریبا در تمام برنامههای کامپیوتری وجود دارند، هرچند که هردوی این دستورات (ورودی و خروجی) جزو سادهترینها بهحساب میآیند، نمونهای از دستورات خروجی مثل نمایش بده، چاپ کن، برگردان و… هستند (مرحلهی 5 مثال بالا)
بطن یک برنامهی کامپیوتری از دستورات محاسباتی تشکل شده است، به عنوان مثال مرحلهی 3 در مثال بالا، یک دستور محاسباتی است و پردازش اصلی الگوریتم را بر عهده دارد، تولید خروجی و نتیجهی پردازشها توسط این دستورات انجام میشود.
این دستورات نیز جزو پرکاربردترین دستورات قابل استفاده در یک برنامه هستند، خیلی وقتها لازم است شرایط خاصی را مورد بررسی قرار داده و با توجه به آنها تصمیمگیری کنیم، به عنوان مثال سن کاربر را از او دریافت کرده و با توجه به سن، جملات متفاوتی را در تعامل با وی به کار ببریم، نمونهای از دستور شرطی (If – Else) را میتوانید در مرحلهی 4 مثال بالا ببینید.
بارها اتفاق افتاده که یک دستور بهخصوص باید در برنامه تکرار شود، بهعنوان نمونه در مثال بالا از ما خواسته شده بود که فرایند تشخیص عدد زوج یا فرد، برای 10 عدد انجام شود، یکی از راهها، این است که عملیات تشخیص زوج یا فرد بودن را 10 مرتبه در برنامهی خود تکرار کنیم، اما فرض کنید در این مثال از ما خواسته شده بود این عملیات را برای 1000 عدد انجام دهیم، در چنین حالتی تکرار 1000 مرتبهای دستورات یکسان در برنامه هیچ توجیه منطقی برای برنامهنویس ندارد!
از سوی دیگر، کامپیوترها بهوجود آمدند تا کارهای تکراری ما را انجام داده و زندگی را برای انسانها سادهتر کنند، به همین علت یک دستور مهم دیگر به نام دستورات تکرار یا حلقهها (Loop) در برنامهنویسی به وجود آمدند تا برخی از پروسههای تکراری مورد نیاز در برنامه را انجام دهند، اگر مرحلهی 6 را در مثال بالا ببینید، میتوانید یک دستور تکرار ساده را در آن مشاهده کنید، حلقههای تکرار معمولا از یک شمارنده یا شرط توقف تشکیل شدهاند و یک دستور تکراری را به دفعات مورد نظر برنامهنویس تکرار میکنند.
حتما در مواردی دیدهاید که یک برنامه، بدون دلیل خاصی کرش کرده یا هنگ میکند، یکی از مواردی که میتواند عامل این مشکل باشد، عدم وجود شرط توقف در حلقه است، بدین ترتیب حلقه بهقدری تکرار میشود که حافظه پرشده و سیستم دچار مشکل میشود.
شاید مثال بالا به شما کمک کرده باشد که کمی بیشتر اهمیت آشنایی با الگوریتمها را در برنامهنویسی درک کنید، الگوریتمهای برنامهنویسی نقش بسیار مهمی در برنامههای کامپیوتری ایفا میکنند و بدون وجود آنها، با برنامههایی پر از باگ روبهرو خواهیم شد.
تمام شرکتهای برنامهنویسی معتبر، سوالات مرتبط با الگوریتم را در پروسهی استخدام خود دارند و این مورد نیز اهمیت آشنایی با الگوریتمنویسی را نشان میدهد، بنابراین اگر به برنامهنویسی علاقهمندید به شما توصیه میکنیم حتما قبل از هرچیزی نحوهی نوشتن الگوریتم را فرا بگیرید.
در صورتی که به آموزشهای مرتبط با آیتی و تکنولوژی علاقه دارید میتوانید آنها را در وبسایت همیار آیتی (Hamyarit.com) مطالعه کنید، صدها آموزش رایگان در این وبسایت منتشر شده که زمینههای مختلف فناوری را پوشش میدهد، شما چه تجربهای در خصوص کاربرد الگوریتمها و شروع برنامهنویسی دارید؟ دیدگاهها و تجربیات ارزشمند خود را در بخش نظرات این مطلب با ما به اشتراک بگذارید.
فکر کنم iqoo z1 معرفی شده : دایمنسیتی ۱۰۰۰+ و صفحه ال سی دی ۱۴۴ هرتز ، قیمت از ۳۱۰ دلار شروع میشه
عکسی چیزی از طراحیش نداری؟
Gsmarena نگاش کن
برنامه نویسی اگه به زبان های خاصش مثل سی و جاوا و … مسلط بشی خیلی شغل پر درآمدی هست
درآمدزایی با برنامه نویسی یعنی سی شارپ و پایتون و SQL server و تا حدودی هم جاوا اسکریپت …
مچکر 🙂
اینجور مطالب برای اون دست از افرادی که علاقه به علم برنامه نویسی دارن و میخوان آگاهی کسب کنن مفید و کاربردیه 👌