Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
همه ی ما با مفهوم مسئله آشنا هستیم . یک مسئله پرسشی هست که به دنبال پاسخش می گردیم و برای رسیدن به جواب اون ، باید راه حلی رو بکار بگیریم . میشه گفت که مجموعه ی مراحل لازم برای رسیدن به پاسخ مطلوب یک مسئله ، روش حل یا الگوریتم هست .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
در برنامه نویسی کامپیوتر ، برای حل یک مسئله ، باید مرحله به مرحله و قدم به قدم ، به کامپیوتر بگیم که چگونه اون رو حل کنه . و این مراحل قدم به قدم همون الگوریتم نامیده میشه . مثلا برای محاسبه ی فاکتوریل عدد n یا پیدا کردن بزرگترین بین سه عدد ، باید مراحل انجام کار رو دقیقا و مرحله به مرحله به کامپیوتر یاد بدیم چون قطعا خودش همچین مکانیزمی برای تشخیص روش حل مسئله و پیدا کردن جواب مسئله نداره . پس همین الگوریتم ها در قالب یک برنامه به کامپیوتر میرسه و اون میتونه مسائلی رو مانند مسائل بالا حل کنه .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
مبحث الگوریتم معمولا مستقل از زبان برنامه نویسی هست و یکی از مهمترین مباحث موجود در علوم کامپیوتر به حساب میاد . یک الگوریتم باید ویژگی هایی داشته باشه از جمله :
1-دارای آغاز و پایان مشخص باشه .
2- هر مرحله دارای جزئیات دقیق باشه .
3- مراحل دارای یک ترتیب درست باشه .
1-دارای آغاز و پایان مشخص باشه .
2- هر مرحله دارای جزئیات دقیق باشه .
3- مراحل دارای یک ترتیب درست باشه .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
خب اما میشه دستور العمل هارو به انواع مختلفی تقسیم کرد برخی از انواع دستور العمل ها هم عبارت هستند از :
1-محاسباتی و انتسابی : میشه عملیات محاسباتی انجام داد یا مقداری رو به مقداری دیگر نسبت بدیم .
2-شرطی : با این دستورالعمل میشه انواع شروط رو بررسی کرد .
3-خروجی : در این دستور العمل هم مقادیری به چاپ میرسند .
1-محاسباتی و انتسابی : میشه عملیات محاسباتی انجام داد یا مقداری رو به مقداری دیگر نسبت بدیم .
2-شرطی : با این دستورالعمل میشه انواع شروط رو بررسی کرد .
3-خروجی : در این دستور العمل هم مقادیری به چاپ میرسند .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
بیاید الگوریتم یک مسئله ی ساده رو بررسی کنیم :
الگوریتمی که دو عدد رو دریافت کنه و تعیین کنه مجوعشون از 40 بزرگتر هست یا نه .
1-شروع
2-دو عدد aوb از ورودی دریافت کن
3- a+b رو محاسبه کن
4-آیا a+b > 40 هست ؟ اگر بله برو به مرحله ی 7
5-"خیر" را چاپ کن.
6-به مرحله ی 8 برو
7-" بله" را چاپ کن
8-پایان
الگوریتمی که دو عدد رو دریافت کنه و تعیین کنه مجوعشون از 40 بزرگتر هست یا نه .
1-شروع
2-دو عدد aوb از ورودی دریافت کن
3- a+b رو محاسبه کن
4-آیا a+b > 40 هست ؟ اگر بله برو به مرحله ی 7
5-"خیر" را چاپ کن.
6-به مرحله ی 8 برو
7-" بله" را چاپ کن
8-پایان
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
همون طور که مشاهده می کنید تمام ویژگی هایی که برای یک الگوریتم عرض شد ، در الگوریتم ساده ی بالا مشاهده میشن . یعنی آغاز و پایان مشخصی دارن . هر مرحله جزئیات کافی داره و ترتیب مراحل هم کاملا درست هستن .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
حالا فلوچارت چیه ؟؟
فلوچارت یک راه استاندارد برای نمایش الگوریتم هست که توی اون باید از یک سری شکل های استاندارد برای نمایش دستور العمل ها ی مختلف استفاده کرد .
فلوچارت یک راه استاندارد برای نمایش الگوریتم هست که توی اون باید از یک سری شکل های استاندارد برای نمایش دستور العمل ها ی مختلف استفاده کرد .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
شکل های بالا همون شکل هایی هستند که به عنوان استاندارد در فلوچارت ها مورد استفاده قرار می گیرند..
شکل اول " شروع " یا " پایان " الگوریتم رو مشخص میکنه .
شکل دوم که یک "فلش" هست ، جهت جریان منطقی در یک برنامه رو نشون میده
شکل سوم یعنی متوازی الاضلاع ، دستور العمل های ورودی و خروجی رو مشخص میکنه
شکل چهارم هم دستور العمل های انتساب و محاسبات رو نشون میده
و در شکل آخر هم دستورات شرطی بررسی میشن
شکل اول " شروع " یا " پایان " الگوریتم رو مشخص میکنه .
شکل دوم که یک "فلش" هست ، جهت جریان منطقی در یک برنامه رو نشون میده
شکل سوم یعنی متوازی الاضلاع ، دستور العمل های ورودی و خروجی رو مشخص میکنه
شکل چهارم هم دستور العمل های انتساب و محاسبات رو نشون میده
و در شکل آخر هم دستورات شرطی بررسی میشن
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
حالا یه مثال هم از فلوچارت با هم میبینیم
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
این فلوچارت مربوط به الگوریتمی هست که 3 عدد رو میگیره و تشخیص میده آیا میتونن تشکیل یک مثلث بدن یا خیر
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
خب حالا که با مفاهیم پایه ای فلوچارت و الگوریتم آشنا شدیم کمی راجع به بحث کارایی الگوریتم صحبت می کنیم ..
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
گاهی برای حل یک مسئله با چند راه حل رو به رو هستیم و در این زمان هست که باید الگوریتم با بیشترین کارآمدی رو انتخاب کنیم .
ملاک و معیار کارایی یک الگوریتم هم 2 چیز هست :
1- زمان اجرای الگوریتم 2- میزان حافظه برای اجرا
اصطلاحا به اولی پیچیدگی زمانی و به دومی پیچیدگی فضا هم میگن ..
به دلایلی معمولا اولی رو بیشتر مورد بررسی قرار میدن و ماهم در ادامه ی آموزش هامون سعی میکنیم بیشتر با این موضوع آشنا بشیم .
ملاک و معیار کارایی یک الگوریتم هم 2 چیز هست :
1- زمان اجرای الگوریتم 2- میزان حافظه برای اجرا
اصطلاحا به اولی پیچیدگی زمانی و به دومی پیچیدگی فضا هم میگن ..
به دلایلی معمولا اولی رو بیشتر مورد بررسی قرار میدن و ماهم در ادامه ی آموزش هامون سعی میکنیم بیشتر با این موضوع آشنا بشیم .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
خب حالا همین ابتدا سوالی پیش میاد :
❓چرا با وجود اینکه سرعت کامپیوتر ها در حال افزایش هست و حافظه هم در حال ارزانتر شدن ، بررسی کارایی یک الگوریتم ضرورت پیدا میکنه ؟
❓چرا با وجود اینکه سرعت کامپیوتر ها در حال افزایش هست و حافظه هم در حال ارزانتر شدن ، بررسی کارایی یک الگوریتم ضرورت پیدا میکنه ؟
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
جواب رو بایک مثال متوجه خواهیم شد :
در ریاضیات یکی از موضوعات کاربردی ، دنباله ی فیبوناچی هست . برای پیدا کردن یکی از جملات این دنباله 2 راه حل داریم . یکی الگوریتم بازگشتی هست و دیگری الگوریتم تکراری .
در ریاضیات یکی از موضوعات کاربردی ، دنباله ی فیبوناچی هست . برای پیدا کردن یکی از جملات این دنباله 2 راه حل داریم . یکی الگوریتم بازگشتی هست و دیگری الگوریتم تکراری .
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
int fibo (int n )
{
if (n<=1)
return n;
else return fibo(n-1) + fibo (n-2) ;
}
{
if (n<=1)
return n;
else return fibo(n-1) + fibo (n-2) ;
}
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
☝️☝️☝️☝️ الگوریتم بازگشتی محاسبه ی جمله ی n ام دنباله ی فیبوناچی
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
int fibo (int n)
{
index i ;
int f[0.n];
f [0] = 0 ;
if (n>0) {
f [1] = 1;
for ( i=2; i<= n ; i++)
f[ i ] = f [i-1] + f [i-2] ;
} return f[n];
}
{
index i ;
int f[0.n];
f [0] = 0 ;
if (n>0) {
f [1] = 1;
for ( i=2; i<= n ; i++)
f[ i ] = f [i-1] + f [i-2] ;
} return f[n];
}
Forwarded from آموزش برنامه نویسی - از مبتدی تا حرفه ای
☝️☝️☝️☝️ الگوریتم تکراری محاسبه ی جمله ی n ام دنباله ی فیبوناچی