الگوریتم (Algorithm)چیست؟ وچه کاربردی دارد؟
برای این پست از وبلاگ آموزشگاه آریاآزمون (اولین و برترین آموزشگاه فنی و حرفه ای گچساران) به مبحث بسیار مهم و پیش نیاز همه زبانهای برنامه نویسی و علوم کامپیوتر خواهیم پرداخت.الگوریتم (Algorithm)
قبل از هر چیز ،بهتر است تعریف علمی و دقیق الگوریتم را بدانیم:
الگوریتم (نسبت: الگوریتمی، خوارزمیک)) یا خوارزمی مجموعهای متناهی از دستورالعملها است، که به ترتیب خاصی اجرا میشوند و مسئلهای را حل میکنند. به عبارت دیگر یک الگوریتم، روشی گام به گام برای حل مسئله است. شیوه محاسبه معدل در مدرسه، یکی از نمونههای الگوریتم است.
الگوریتم در اصل مفهومی است که مسائل را با استفاده از دستورالعملهای پشت سرهم و به کمک تحلیلهای ریاضی و منطقی مورد بررسی قرار داده و راه حل مناسبی برای آن ارائه میکند، الگوریتم به ما کمک میکند مراحل حل مسئله را به زبان رایانه نزدیکتر کرده و در نهایت آن را به کدهای قابل فهم کامپیوتر تبدیل کنیم..
این روش برای نخستین بار توسط خوارزمی (دانشمند ایرانی) مورد توجه قرار گرفت، حال اساس اجرای بسیاری از برنامههای کامپیوتری روش خوارزمی است، نام الگوریتم نیز به احترام این دانشمند و از کلمهی الخوارزمی گرفته شده است که در تلفظ انگلیسی و لاتین الگوریتمی یا الگوریتمیک یا الگوریتم خوانده میشود.
ریشه واژهٔ الگوریتم
واژه الگوریتم از نام ریاضیدان و ستارهشناس و جغرافیدان نامی ایرانی، ابوجعفر محمد بن موسی خوارزمی (الخوارزمی)، گرفته شدهاست،[۵][۶] که در خوارزم زاده شد و در دانشگاه «بیت الحکمه» بغداد به اوج شهرت رسید. خوارزم یکی از شهرهای «ایران بزرگ» بود، که امروزه در ازبکستان واقع شدهاست و خیوه نام دارد. رسالهای که خوارزمی در قرن ۹ میلادی به عربی نگاشته بود، در قرن ۱۲ به لاتین با نام "Algoritmi de numero Indorum" ترجمه شد؛ یعنی "[کتابی بدست] «الگوریتمی» در مورد اعداد هندی"، که «الگوریتمی» نام الخوارزمی بود که مترجم در تبدیل به لاتین نام وی را جلوی نام اصلی کتاب (در مورد اعداد هندی) آورده بود. در قرن ۱۳ میلادی واژه الگوریسموس(algorismus) به معنای «سیستم شمارش عربی (دهدهی)» (یعنی اعداد ۱ تا ۹ به علاوه صفر، و نیز مفهوم اعشار) بود؛ که هنوز هم یکی از معانی واژه الگوریسم(algorism) است. معنای دیگر الگوریسم «حساب کردن با کمک اعداد عربی» است؛ یعنی فن انجام اعمال حسابی پایه، مانند جمع و ضرب، با قرار دادن اعداد در زیر هم و اعمال قواعدی خاص، که جایگزین بهکارگیری اعداد رومی و استفاده از چرتکه شد. حتی روش انجام دستی تقسیم و جذر گرفتن (رادیکال) هم الگوریسم نامیده میشود. در قرن ۱۹ این کلمه در فرانسوی به algorithme تغییر شکل پیدا کرد، البته معنایش ثابت ماند. طولی نکشید که این کلمه به شکل algorithm وارد زبان انگلیسی شد؛ ولی فقط در اواخر قرن ۱۹ میلادی بود که معنای عامتر امروزیاش را یافت، و به «هر مجموعه قواعدی برای انجام یک رویه محاسباتی یا روال رایانهای به کار رود» الگوریتم گفته شد.
تبدیل نام الخوارزمی به الگوریسم و سپس الگوریتم احتمالاً تحت تأثیر واژه یونانی arithmos (به معنای عدد) و arithmetic (به معنای محاسباتی) بودهاست. برخی منابع هم کلمه لگاریتم را هم در تبدیل الگوریسم و الگوریتم بی تأثیر ندانستهاند
حتما مطالعه کنید: تاریخچه پیدایش زبانهای برنامه نویسی
الگوریتم همه جا..!
اساس اجرای بسیاری از برنامهها الگوریتم میباشد، طرح اصلی بسیاری از نرمافزارهای مهم و بزرگ دنیا، ابتدا توسط الگوریتم و فلوچارت (روندنما) ایجاد و سپس به برنامه و درنهایت به زبان کامپیوتر تبدیل میشود، پس اگر میخواهید برنامه نویس خوبی شوید و از پس حل مسائل مختلف برآیید باید به خوبی با مفهوم الگوریتم آشنا بوده و بتوانید طرح و ایدهی خود را در قالب الگوریتم و فلوچارت پیادهسازی کنید.
جالب است بدانید:
“دونالد کنوت“ یکی از دانشمندان بزرگ علوم کامپیوتر میگوید: علم کامپیوتر چیزی جز مطالعهی الگوریتمها نیست
جالب است بدانید:
الگوریتم بسیار ساده است (برای کسی که خوب درکش کند وخوی تمرین کند..!)
ما در زندگی روز مره هم از الگوریتم فراوان استفاده میکنیم!مثلا زیر را ببینید و درباره آن فکر کنید:
الگوریتم مراحل رفتن به دانشگاه:
1. شروع
2. بیدار شدن از خواب
3. شستن دست و صورت
4. خوردن صبحانه
5. پوشیدن لباس مناسب
6. برداشتن وسایل مورد نیاز (کتاب و …)
7. خروج از خانه
8. رفتن به دانشگاه
9. ورود به کلاس
10. پایان
این دستورات باید به ترتیب انجام شوند، در غیر اینصورت امکان بروز خطا وجود دارد، الگوریتمهای کامپیوتری نیز به همین صورت هستند، در صورتی که ترتیب اجرای دستورات آنها به درستی در نظر گرفته نشود احتمال تولید خروجی نامعتبر بسیار بالا خواهد رفت.
معمولاً آموزش الگوریتم را با الگوریتم های مرتب کردن (اصطلاحاً: Sorting) آغاز میکنند.مثالی هم که در بالا برای الگوریتم مراحل رفتن به دانشگاه مطرح شد، از همین جنس بود.اما دنیای تکنولوژی انبوهی از الگوریتمها را در اطراف ما قرار داده که معمولاً بدون اینکه به آنها توجه کنیم، از نتایجشان استفاده میکنیم.
در اینجا تنها از چند نمونه نام میبریم و در پست های دیگر بسته به نیاز، بحث مربوط به الگوریتمها را بازتر خواهیم کرد:
- الگوریتمهای مورد استفاده در موتورهای جستجو برای پیدا کردن بهترین پاسخها برای پرسش کاربران
- در شکل کلیتر، الگوریتمهای پیشنهاددهنده که در بسیاری از نرمافزارها از جمله شبکه های اجتماعی و خرده فروشی های دیجیتال (مثل آمازون و دیجی کالا) دائماً از آنها استفاده میکنیم (یا آنها از ما استفاده میکنند).
- الگوریتمهای رمزنگاری که میکوشند امنیت تبادل اطلاعات در شبکههای ارتباطی را افزایش دهند.
- الگوریتمهای فشرده سازی اطلاعات که حجم دادهها را تا حد امکان کاهش میدهند..
یک مثال کاربردی از الگوریتمها در برنامهنویسی بزنیم:
فرض کنید قصد داریم برنامهای ایجاد کنیم که یک عدد را دریافت کرده و در صورت فرد بودن عدد عبارت Fard و در صورت زوج بودن عبارت Zoje را چاپ کند، مراحل این الگوریتم به شرح زیر است:
عدد را دریافت کن
عدد را تقسیم بر ۲ کن
اگر باقی مانده برابر با ۱ بود عبارت Fard را نمایش بده در غیر این صورت عبارت Zoje را نمایش بده.
پایان
جالب است بدانید، راههای زیادی برای نوشتن یک الگوریتم وجود دارد، آنهم الگوریتمی که دقیقا یک نتیجهی یکسان را در پی داشته باشد،
کمی فکر کنید ببینید میتوانید برای مثال بالا راه های دیگری هم پیدا کنید؟ میتوانید آنها را در قسمت نظرات همین پست با ما و سایر کاربران به اشتراک بگذارید.
البته ما در اینجا قصد نداریم الگوریم را آموزش دهیم و فقط برای آشنایی بیشتر به همین مثال ابتدایی اکتفا میکنیم اما میتوانید مطمئن باشید بزودی و احیانا(بدرخواست شما شاید زودتر)دوره های آموزشی،مقالات و آموزش ها و کارگاه ها و کتب و جزوه های آموزشی الگوریتم،فلوچارت و سایر زبانهای برنامه نویسی و... را برای استفاده شما بزرگواران در وبلاگ قرار خواهیم داد.وباز هم فراموش نکیند همه محتوا و آموزشهای این وبلاگ،اختصاصی و برای همین وبلاگ تهیه میشوند و همه جدید و با متدهاو استاندار های کشوری و فنی و حرفه ای و حتی با بروزرسانیهای جهانی هماهنگ خواهند بود.پس مطمئن باشید برای اولین بار واز طریق همین وبلاگ در اینترنت ارائه میشوندوشما احتمالا اولین کاربرانی هستید که از محتوای ما استفاده میکنید.
-------------------
همچنین دوره های آموزشی الگوریتم و فلوچارت و زبانهای برنامه نویسی و طراحی سایت،آی سی دی ال و علوم کامپیوترو...بصورت دوره ای و ترمی در آموزشگاه فنی و حرفه ای آریاآزمون گچساران(اولین و برترین ارائه دهنده دوره های فنی و حرفه ای در گچساران)توسط اساتید برتر و بنام با سرفصل های فنی و حرفه ای ،ارائه میشوند و کاربران عزیزی که مایل هستند در این دوره ها شرکت نمایند و مدرک معتبر فنی وحرفه ای و مورد تایید اداره کار را دریافت کنند،میتوانند از طریق راه های زیر با کارشناسان ما تماس گرفته و از شرایط تخفیف ها و نحوه اقساط شهریه ها وسایر موارد اطلاع یابند.
تماس با ما:
تلفن :
07432222743
09173447399
آدرس:
گچساران-پشت پاساژ حافظ-مجتمع خواجوی-طبقه اول-واحد1و2-آموزشگاه فنی و حرفه ای آریاآزمون گچساران
--------------------------------------------------------
منابع:
ویکی پدیا
متمم
آفتابگردون
- ۹۷/۰۹/۲۲