به دوره جدید «آموزش فلوچارت و الگوریتم به زبان ساده» خوش آمدید. در این سری کوتاه آموزشی که برای افراد مبتدی در نظر گرفته شده است، می خواهیم مفهوم فلوچارت یا «رَوَندنما» را توضیح بدهیم. فلوچارت یکی از مباحث ساده علوم کامپیوتر است که در حل مسئله برای برنامه نویسان کاربرد دارد بنابراین شما به عنوان یک برنامه نویس باید با آن آشنا باشید. همانطور که قبلا هم گفته شد این دوره برای افراد مبتدی در نظر گرفته شده است، بنابراین نیازی به دانش قبلی نخواهید داشت به جز اینکه باید با روند کلی کار در برنامه نویسی آشنا باشید.
مهندسین نرم افزار از زبان های برنامه نویسی مختلفی برای نوشتن برنامه هایشان استفاده می کنند اما برنامه نویسی باید قبل از حل مسئله و نوشتن برنامه، نقشه ای برای عملیاتی کردن آن داشته باشد. معمولا نرم افزارهایی که بدون برنامه ریزی قبلی نوشته می شوند، شانس بیشتری برای خطاهای مختلف و ایجاد باگ دارند. فلوچارت و الگوریتم ابزار های قدرتمندی برای یادگیری برنامه نویسی هستند بنابراین نباید خودتان را از یادگیری آن ها محروم کنید.
الگوریتم، تحلیل قدم به قدم فرآیند حل مشکل است و فلوچارت این تحلیل را به صورت بصری در می آورد. با این حساب می توان گفت که الگوریتم و فلوچارت مراحل حل یک مسئله در برنامه نویسی را توضیح می دهند. معمولا پیشنهاد می شود که افراد مبتدی در برنامه نویسی همیشه از فلوچارت استفاده کرده و سپس شروع به کدنویسی کنند تا زمانی که مراحل ملکه ذهنشان شده و دیگر نیازی به آن نداشته باشند. اگر شما هم مبتدی هستید احتمالا کشیدن فلوچارت برایتان کمی دشوار خواهد بود اما پس از مدتی کوتاه آن را به طور کامل یاد خواهید گرفت. همچنین الگوریتم انتخابی برای حل یک مشکل از یک فرد به فرد دیگر فرق می کند، بنابراین برای یک مشکل چندین راه حل وجود خواد داشت. در تمرین های این دوره من راه حل خودم را به شما خواهم داد اما این راه حل تنها راه حل صحیح نخواهد بود.
نکته: کلمه «الگوریتم» به معنای عمومی آن «تحلیل قدم به قدم فرآیند حل مشکل» است که همان منظور ما در این دوره است. از نظر فنی، یک تابع دو خطی نیز یک الگوریتم حساب می شود اما «الگوریتم» به معنای پیشرفته تر آن، به دسته بندی های خاصی می رسد (مانند الگوریتم های گراف، الگوریتم های ترتیبی، الگوریتم های بازگشتی و غیره). شما می توانید لیستی از این الگوریتم ها را در این صفحه ویکی پدیا ببینید. من در این دوره به سراغ مباحث پیشرفته نمی روم و در سطح مبتدی کار خواهیم کرد. اگر دوست دارید با مباحث پیشرفته تر آشنا شوید به دوره «الگوریتم و داده ساختار» در روکسو مراجعه کنید.
کلمه الگوریتم (به انگلیسی: algorithm) از نام محمد بن موسی خوارزمی ریاضیدان، ستارهشناس، فیلسوف، جغرافیدان و مورخ شهیر ایرانی در دوره عباسیان آمده است. نام خوارزمی در لاتین به شکل Algoritmi نوشته می شد و سپس در انگلیسی به کلمه algorithm تغییر پیدا کرد. در حال حاضر کلمه الگوریتم به معنی «فرآیند» یا «تکنیک» می باشد و مهندسین نرم افزار از آن برای برنامه ریزی و حل مشکلات سیستم استفاده می کنند اما اگر بخواهیم دقیق تر صحبت کنیم، الگوریتم در علوم کامپیوتر به مجموعه دستوراتی ترتیبی و صریح اشاره می کند که در زمانی محدود نتیجه ای را تولید کرده و سپس از بین می رود. هر الگوریتم دارای خصوصیات زیر است:
هر الگوریتم و فلوچارت دارای سه دسته ساختار کنترل کننده زیر می باشد:
در جلسه بعدی وارد مبحث نوشتن الگوریتم خواهیم شد. البته همانطور که قبلا هم توضیح دادم، منظور ما از نوشتن الگوریتم، نوشتن مراحل حل مسئله به صورت ساده است. مباحث پیشرفته تر در دوره «الگوریتم و داده ساختار» قرار دارد.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.