صفحه اصلی / دوره‌های آموزشی / الگوریتم و فلوچارت / آموزش الگوریتم و حل مسئله در برنامه نویسی

آموزش الگوریتم و حل مسئله در برنامه نویسی


سطح مهارت
مقدماتی تا متوسط
مدت زمان
4:48
وضعیت دوره
پایان یافته
مدرس
مهدی عباسی
میزان رضایت دانشجو: (452 رای)
آموزش الگوریتم و حل مسئله

لیست جلسات دوره



درخواست مشاوره رایگان

برای مشاوره تخصصی از کارشناسان درسمن، شماره خود را وارد کنید.

مهدی عباسی
مدرس:

مهدی عباسی

18 سال سابقه برنامه‌نویسی و تدریس برنامه‌نویسی
کسب مقام‌های اول و دوم کشوری در مسابقات برنامه‌نویسی

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه

شما صرفا یک دوره نمی خرید، بلکه برای آینده سرمایه گذاری می کنید
8,223 نفر در این دوره ثبت نام کرده‌اند
دسترسی مادام العمر به ویدئوهای دوره
دسترسی رایگان به آپدیت دوره
تدریس روان و با بالاترین کیفیت
490,000 تومان
افزودن به سبد خرید
ادامه فرآیند خرید

سوالات متداول

می دانید حل مسئله به چه معناست؟

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

از ابزارهای مهم و ضروری برای حل مسئله آگاهی دارید؟

مهم ترین ابزارهای اصلی برای حل مسئله عبارت است از: خلاقیت، کار تیمی، مهارت های تفکر منطقی، تصمیم گیری، هوش هیجانی بالا که برای حل مسائل بسیار می تواند مهم باشد.

داشتن مهارت حل مسئله چه اهمیتی دارد؟

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

برای حرفه ای شدن در الگوریتم، مباحث پیشرفته تری هم وجود دارد؟

بله؛ سایت درسمن برای حرفه ای تر شدن شما در حوزه یادگیری الگوریتم به مباحث پیشرفته تری در دوره های الگوریتم 2 و 3 پرداخته تا بتوانید ازپس حل هر مسئله و الگوریتمی بر بیایید.

این دوره برای چه افرادی مناسب است؟

کسانی که میخواهند با نحوه حل الگوریتم ها به مهارت های بالایی برسند، کسانی که میخواهند به داشته های خود افزوده یا مطالب را مرور کنند، افرادی که علاقه مند به بالا بردن توانایی های خود هستند، ماجراجویانی که میخواهند با مسائل سروکله بزنند، کسانی که در تلاش برای بالا بردن سطح توانایی خود برای حل هر الگوریتم و فلوچارتی هستند.

نظرات دانشجویان

کاربر درسمن
اسماعیل

سلام و عرض ادب و خسته نباشید خدمت استاد عباسی عزیز و تیم بسیار حرفه ای و وظیفه شناس درسمن.... میخواستم تشکر کنم از دوره های جامع و مفیدتون با روش تدریس بسیار عالی و زیبای همیشگیتون استاد عباسی عزیز. در پایان میشه لطفا دوباره دوره های الگوریتم و حل مسئله 1 و 2 رو واسه ما که تازه اومدیم رایگان کنین؟ ارادتمند شما شاگرد قدیمی دبیرستانی شما.

کاربر درسمن
سیداسداله موسوی

با سلام و ادب من دانشجوی ارشد هوش مصنوعی دانشگاه دولتی هستم . از گروه شما بسیار ممنون هستم کار شمارا در معرفی و توسعه هوش مصنوعی خیلی خوب است اگر من میتوانم در تولید محتوای با زبان مطلب کمکی کنم در خدمت هستم.

پشتیبانی 1
پشتیبانی 1

سلام آقای موسوی عزیز وقتتون بخیر، از شما ممنونیم بابت همراهی خوبتون.

اگر نیاز باشد حتما از شما کمک خواهیم گرفت، از شما مچکریم.

کاربر درسمن
آلان عبدی

سلام خسته نباشید این دوره کامله؟؟ اخه من جلسه دوم رو که میدیدم میگفتن استاد که دیشب چند مسله رو مطرح کردیم یکیشون رو که تو جلسه دو حل کرد در جلسه اول مطرح نکرده بود

پشتیبانی 1
پشتیبانی 1

سلام دوست عزیز، بله این دوره کامل می باشد.

کاربر درسمن
purple

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

پشتیبانی 1
پشتیبانی 1

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

کاربر درسمن
علیرضا

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

پشتیبانی 1
پشتیبانی 1

سلام دوست عزیز، ممنون از لطف شما خوشحالیم که دوره براتون مفید بوده موفق باشید🌹

علیرضا حسینی
علی رضا

با عرض سلام و خسته نباشید ببخشید من در این دوره شرکت کردم و استاد راجب لینک 60 تا سوال حرف زدن کجا میتونم این 60 تا سوال رو تهیه کنم

پشتیبانی 1
پشتیبانی 1

سلام علیرضا جان، وقتتون بخیر، از اینکه درسمن را برای یادگیری برنامه نویسی انتخاب کردید از شما ممنونیم.

https://darsman.com/course/c-plus-plus-practices/ به این لینک بروید و روی دانلود کلیک کنید.

کاربر درسمن
ربیعی

بسیار عالی و با استادی تمام. ممنون از استاد مهدی عباسی. بنده برنامه نویس نیستم اما بسیار علاقمندم به این حوزه. فعلاً از فیلم های رایگان شما استفاده می کنم. امیدوارم راضی باشید. ان شاءالله بعد از راه افتادن در دوره های پیشرفته مزاحمتان خواهم شد. رشته کاری بنده در حوزه برق قدرت با تجربه حدود 20 ساله با دوره های مهارت محور در حوزه برق و الکترونیک

پشتیبانی 1
پشتیبانی 1

خیلی خوشحالیم که به جمع درسمنی ها پیوستید، امیدواریم در این راهی که قدم گذاشته اید موفق و پیروز باشید و مطمئن باشید درسمن این راه را برایتان آسان می کند.

کاربر درسمن
ممصی

این بهترین و کار آمدترین دوره‌ای بود ک تو عمرم دیدم داشتم کم کم علاقمو کلا به برنامه نویسی از دست میدادم و فکر میکردم استعدادش و ندارم اما این دوره کمک کرد بفهمم که با تمرین و راه درست هر کسی میتونه برنامه نویسی یاد بگیر بازم ممنون از مهندس عباسی بخاطر تدریس خوبشون

پشتیبانی 1
پشتیبانی 1

خیلی ممنونیم بابت درج کامنت انرژی بخشتون، امیدواریم در این راهی که قدم گذاشتید با تلاش فراوان به یک متخصص حرفه ای تبدیل شوید.

کاربر درسمن
امیرحسین اله یار

سلام خدا قوت چطوری میتونم اون 60 سوالی که استاد توی دوره گفتن به صورت پی دی اف هستش رو پیدا کنم؟

پشتیبانی 1
پشتیبانی 1

سلام دوست عزیز وقتتون بخیر، در چت پشتیبان این موضوع را مطرح نمایید، اگر در صورت لزوم فایلی وجود داشت برایتان ضمیمه خواهند کرد.

کاربر درسمن
سعید محمدی

سلام وقتتون بخیر اول خواستم تشکر کنم از تیم درسمن که محتوای باکیفیتی تولید می‌کنند. و از استاد عباسی عزیز هم تشکر میکنم بابت تدریس عالیشون من یه سوال داشتم خدمتتون، داخل جلسه چهارم بخش دوم استاد عباسی لینک 60 تا سوال مربوط به مسائل برنامه نویسی و الگوریتم رو به دانشجوها داد. بی‌زحمت اگه ممکنه لینک دانلود سوالهارو برام بفرستید ممنون میشم 💙🙏

پشتیبانی 1
پشتیبانی 1

سلام سعید جان، خیلی ممنون از همراهیتون، باشه حتما در اسرع وقت پیگیری خواهد شد و براتون ارسال می شود.

کاربر درسمن
مریم

سلام، خسته نباشید. من دوره سی شارپ مقدماتی رو از یک منبع دیگه قبلا آموزش دیده بودم ولی برای حل مسائل (حتی ساده ترین اونها)گیج میشدم،این دوره خیلی به من کمک کردم تا دید بهتری به حل مسائل پیدا کنم و واقعا سطحمو ارتقا داد . ممنون از استاد عباسی عزیز و تیم حرفه ای شون.امیدوارم بازم از این دوره های خفن منتشر بشه:)

پشتیبانی 1
پشتیبانی 1

ممنونیم از شما به خاطر اینکه بعد از مشاهده هر دوره نظرتون به صراحت درج میکنید و ویژگی های دوره رو به کاربران عزیز بازگو می کنید.

مطمئن باشید کلی دوره خوب قراره براتون منتشر کنیم.

کاربر درسمن
فاطمه

جواب سوالاتی که مدرس توی دوره میپرسه و جواب داده نمیشه کجا گذاشته شده؟

پشتیبانی 1
پشتیبانی 1

می توانید سوال را در انجمن برنامه نویسی درسمن بپرسید تا دوستان راهنمایتون کنند.

نمایش بیشتر

نظر شما در تصمیم دیگران اثرگذار است.

لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.

برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

توضیحات دوره

آموزش الگوریتم، ساخت ذهنیت برنامه نویس حرفه ای

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

الگوریتم چیست؟

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

برای حل یک مسئله هر شخص باید بتواند مراحل زیر را انجام دهد:

  1. مسئله را به صورت شفاف شرح دهد.
  2. در صورت نیاز مسئله را به مسئله های کوچکتر تقسیم کند.
  3. برای هر زیر مسئله راه حل مرحله به مرحله ایجاد کند.

 آشنایی با ویژگی های الگوریتم

1. استفاده کردن از زبانی دقیق، ساده و قابل فهم:

این ویژگی باعث می شود که در انجام دستورالعمل ها یک برداشت یکسان بدست آید و در غیر اینصورت برداشت های متفاوت باعث می شود که دستورالعمل ها نتایج متفاوتی ایجاد کنند.
زبان الگوریتم می تواند یکی از زبان های گفتاری و نوشتاری مثل فارسی یا انگلیسی و... باشد. 

2. استفاده کردن از جزئیات کافی

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

3. ترتیب انجام دستورالعمل ها

یکی از ویژگی های مهم یک الگوریتم ترتیب انجام دستورالعمل می باشد که اگر این کار به درستی انجام نشود پیش بینی نتیجه کار مشخص نخواهد بود. در یک الگوریتم ترتیب انجام عملیات با استفاده از شماره گذاری دستورالعمل ها انجام می شود.

4. شروع و پایان الگوریتم:

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

برای اینکه درک بهتری از این موضوع داشته باشید مثالی برای شما شرح می دهیم:

الگوریتم استفاده از تلفن

  1. شروع کن
  2. گوشی تلفن را بردار
  3. شماره مورد نظر را بگیر
  4. صحبت کن
  5. گوشی تلفن را در جای خود قرار بده
  6. پایان

انواع الگوریتم

انواع مختلفی الگوریتم وجود دارد که هر کدام نیز کاربرد خاص خودشان را دارند. در ادامه نیز چند مورد از انواع الگوریتم ها را به تفصیل آورده ایم.

آشنایی با انواع الگوریتم

الگوریتم موتور جستجو

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

الگوریتم رمزگذاری

الگوریتم رمزگذاری روشی است که برای تبدیل داده ها به متن رمز گذاری شده استفاده می شود. این الگوریتم از کلید رمزگذاری استفاده می‌کند تا داده‌ها را به روشی قابل پیش ‌بینی تغییر دهد. این امر به نحوی صورت می گیرد که حتی اگر داده‌ های رمزگذاری‌ شده تصادفی به نظر برسند، می‌توان با استفاده از کلید رمزگشایی آن ها را به متن ساده ای تبدیل کرد. 
هدف استفاده از الگوریتم رمزگذاری برقراری امنیت در حین انتقال داده های الکترونیکی است. این الگوریتم از رمز های بلوکی متفاوت برای رمزگذاری استفاده می کند.

الگوریتم حریصانه

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

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

الگوریتم بازگشتی

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

  1. بازگشت مستقیم
  2. بازگشت غیر مستقیم
  3. بازگشت دُم
  4. بدون دُم / بازگشت سَر
  5. بازگشت خطی
  6. بازگشت درخت

الگوریتم عقبگرد

یکی دیگر از الگوریتم هایی که در حل مسئله استفاده می شود، الگوریتم عقبگرد است. این الگوریتم برای یافتن خروجی از رویکرد brute force استفاده می کند. این رویکرد بدین صورت عمل می کند که تمامی راه حل های موجود را امتحان کرده و در نهایت یک یا چند مورد از بهترین راه حل ها را انتخاب می کند.

از این الگوریتم زمانی استفاده می کنیم که می خواهیم یک راه حل تدریجی برای یک مشکل پیدا کنیم . این الگوریتم برای حل مسائلی که بهینه بودن در آن ها اولویت دارد بسیار موثر است. بعضا برای پیدا کردن تمامی راه حل های ممکن از الگوریتم عقبگرد استفاده می شود.

الگوریتم تقسیم و غلبه

این الگوریتم به عنوان سه بخش در نظر گرفته می‌شود.

  1. مسئله را به بخش های کوچک تر تقسیم می کنیم. این تقسیم بندی باید به گونه ای باشد که مشکل هر بخش با مشکل کلی یکی باشد.
  2. مشکلات کوچک را با الگوریتم بازگشتی حل کرده و بر آن ها غلبه می کنیم. 
  3. تمامی راه حل هایی که برای بخش های فرعی و کوچک در نظر گرفته ایم را با راه حل اصلی ادغام می کنیم.

الگوریتم پویا

الگوریتم پویا که به اختصار به صورت DP نشان داده می شود، یک روش الگوریتمی است که برای حل بهینه مسائل مورد استفاده قرار می گیرد. الگوریتم پویا با تقسیم یک مسئله به قسمت های کوچک تر اقدام به حل مشکل می کند. این الگوریتم با این رویکرد که راه حل بهینه برای مشکل بزرگ، وابسته به راه حل های بهینه برای بخش های کوچک تر است، عمل می کند.

الگوریتم مرتب سازی

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

الگوریتم هش

الگوریتم هش یک تابع هش رمز گذاری شده است که داده ها را دستکاری و غیر قابل خواندن می کند.الگوریتم هش که یک الگوریتم ریاضی است، داده های با اندازه متفاوت را به یک هش با اندازه ثابت تبدیل می کند. کاربرد این الگوریتم زمانی است که می خواهیم مطمئن شویم که داده ها در حین انتقال بدون تغییر به دست مخاطبان می رسد. الگوریتم تابع هش به گونه ای طراحی شده است که یک تابع یک طرفه و غیر قابل وارونه شدن، باشد. 

الگوریتم تصادفی

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

فلوچارت چیست؟

بیان کردن تصویری الگوریتم با کمک مجموعه استاندارد از اشکال ساده  را فلوچارت می گویند. برای توضیح مراحل حل مسائل از چند جمله کلی و استاندارد استفاده می شود با دسته بندی کردن این جملات و انتساب هر دستور به یک شکل می توان الگوریتم را از حالت نوشتاری به حالت تصویری تبدیل کرد.

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

فلوچارت تشکیل شده از اشکالی است که این شکل ها دارای مفهوم خاصی می باشند.برای حل مسائل پیچیده و طولانی بهتر است از فلوچارت استفاده شود برنامه نویس از روی فلوچارت بهتر می تواند برنامه را پیاده سازی کند.

فلوچارت به چهار دسته کلی تقسیم می شود:

  • فلوچارت مستندات
  • فلوچارت داده‌ها
  • فلوچارت سامانه‌ها
  • فلوچارت برنامه‌ها

اجزای فلوچارت به شرح زیر می باشد:

  • شروع و پایان
  • ترتیب
  • محاسبات
  • شرط ها
  • ورودی داده ها
  • چاپ و نمایش داده ها

 

ثبت نام

39