تبلیغات
مبانی کامپیوتر و برنامه نویسی - آموزش الگوریتم و فلوچارت
مبانی کامپیوتر و برنامه نویسی
...با نظراتتون به ما در کیفیت بخشی وبلاگ کمک کنین...
دوشنبه 30 آذر 1388

آموزش الگوریتم و فلوچارت

دوشنبه 30 آذر 1388

نوع مطلب :
نویسنده :احسان معنوی


الگوریتم ها

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

   در حالت کلی الگوریتم ها باید ویژگی های زیر را داشته باشند:

الف) الگوریتم باید ما را به نتیجه مورد نظر برساند.
ب) در زمان محدود پایان یابد.
ج) دستورالعملها باید به ترتیب منطقی پشت سرهم قرار گیرند.
د) جملات الگوریتم ها باید به صورت امری ، سؤالی باشند.
ه) هر الگوریتم باید نقطه آغاز و پایان داشته باشد.

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

مثال : الگوریتم تعویض چرخ پنچر شده یک اتومبیل.

0- شروع.

1- جک را زیر اتومبیل بگذارید.

2- پیچهای چرخ پنچر شده را باز کنید.

3- چرخ را خارج کنید.

4- چرخ یدک را به جای چرخ پنچر شده بگذارید.

5- پیچها را ببندید.

6- اگر پیچها سفت نشده اند به مرحله 5 برو.

7- جک را پایین بیاورید.

8- چرخ پنچر شده را در صندوق عقب اتومبیل بگذارید.

9- پایان.

مثال : الگوریتمی بنویسید که دو عدد از ورودی دریافت شود و سپس تعیین شود که مجموع دو عدد بزرگتر از 20 است یا نه.

0- شروع .

1- دو عدد a و b را از ورودی در یافت کن.

2- a+b را محاسبه کن.

3- آیا a+b>20 است؟ اگر بلی به مرحله 6 برو.

4- بنویس خیر.

5- به مرحله 7 برو.

6- بنویس بلی.

7- پایان.

   با برنامه ریزی و ساماندهی دقیق می توان به راه حلی مناسب جهت حل یک مسئله به کمک کامپیوتر رسید. هرگونه کم توجهی و بی دقتی در نوشتن الگوریتم ضمن بروز مشکلات بسیار، برنامه نویس را نیز از هدف خود دور خواهد کرد؛ لذا برای به هدف رسیدن باید درک صحیح و کاملی از صورت مسئله داشت و سپس راه حل مورد نظر را به صورت الگوریتم بنویسیم. و در نهایت الگوریتم مورد نظر را به زبان برنامه نویسی مورد نظر تبدیل کنیم. برای درک بهتر شیوه حل مسائل و نوشتن الگوریتم به مثالهای زیر توجه کنید:

مثال : الگوریتمی بنویسید که مجموع اعداد طبیعی مضرب 7 و کوچکتر از 50 را حساب کند.

برای نوشتن این الگوریتم به دو خانه حافظه نیاز داریم.

0- شروع.

1- در خانه حافظه sum عدد صفر را قرار بده.

2- در خانه حافظه index عدد 7 را قرار بده.

3- مقدار index را با مقدارsum جمع کن

          و حاصل را در sum قرار بده.

4- مقدار 7 را با مقدار index جمع کن

          و حاصل را در index قرار بده.

5- آیاindex بزگتراز 50 است،اگر خیر به مرحله 3 برو.

6- محتوای sum را چاپ کن.

7- پایان.

 

 

در الگوریتم فوق مقادیر حافظه sum و index تغییر می کند، تا اینکه سرانجام شرط " آیا index بزرگتر از 50 است " بلی می شود لذا محتوای sum در خروجی چاپ خواهد شد و الگوریتم به پایان می رسد. اما در مراحل قبلی شرط فوق خیر می باشد، لذا الگوریتم ادامه پیدا می کند.

مثال : الگوریتمی بنویسید که 1000 عدد را از ورودی دریافت کرده و کوچکترین را چاپ کند.

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

0- شروع.

1- min را دریافت کن.

2- i =1 .

3- a را دریافت کن.

4- اگر a<min آنگاه min = a .

5- i = i + 1 .

6- اگر i>=1000 به مرحله 8 برو.

7- به مرحله 3 برو.

8- min را چاپ کن.

9- پایان.

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

مثال : الگوریتمی بنویسید که سه عدد از ورودی دریافت شود و تعیین شود که این اعداد می توانند اضلاع مثلث باشند یا خیر.

0- شروع.

1- a وb وc را از ورودی بگیر.

2- اگر a>b+c به 7 برو.

3- اگر b>a+c به 7 برو.

4- اگرc>a+b به 7 برو.

5- بنویس " بلی ".

6- به 8 برو.

7- بنویس " خیر ".

8- پایان.

 

فلوچارت

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

در رسم فلوچارت علائم و نمادهای استانداردی به کار می رود که هر کدام دارای معانی ویژه ای هستند.

از شکل بیضی افقی برای شروع و پایان عملیات استفاده می شود.

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


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


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




best medicare supplement plans
چهارشنبه 10 آبان 1396 05:40 ب.ظ
در این زمان به نظر می رسد مانند Movable Type ترجیح داده می شود
پلت فرم وبلاگ نویسی در حال حاضر در دسترس است. (از آنچه که خوانده ام) این است
آنچه در وبلاگ خود استفاده می کنید چیست؟
cr hack
دوشنبه 8 آبان 1396 08:23 ب.ظ
با درود! من می دانم که این موضوع در مورد موضوع مورد بحث قرار دارد اما من از اینکه پلتفرم وبلاگ شما استفاده می کنید تعجب کردم
برای این وب سایت من از وردپرس خسته هستم چون من با هکرها و... مشکلی داشتم
من به جای جایگزین برای یک پلت فرم دیگر نگاه می کنم. من می توانم عالی باشم اگر بتوانم به سمت یک پلت فرم خوب به من اشاره کنم.
std testing centers
دوشنبه 8 آبان 1396 08:07 ق.ظ
سلام، من فکر می کنم این یک سایت عالی است. من آن را می کشم؛) یک بار مجددا بازدید می کنم
دوباره از آنجایی که من آن را به عنوان مورد علاقه ذخیره کرده ام. پول و آزادی بهترین راه برای تغییر است، شاید بتوانید ثروتمند شوید
همچنان به راهنمایی دیگران ادامه دهید
psychic phone reading
دوشنبه 8 آبان 1396 07:02 ق.ظ
وای، طرح وبلاگ بی نظیر! چقدر طول کشید
شما وبلاگ نویسی کرده اید؟ شما وبلاگ نویسی را آسان کردی.
نگاه کلی وب سایت شما فوق العاده است، بجز محتوای آن!
are psychics real
دوشنبه 8 آبان 1396 05:35 ق.ظ
به طور طبیعی مانند وب سایت شما، اما شما نیاز به بررسی املا در چندین پست خود را.
تعدادی از آنها با مسائل املایی فراگیر شده اند و من به آن
از سوی دیگر من خواهم یافت که بسیار سخت گیرانه به حقیقت بگویم
قطعا دوباره دوباره می آیند
cheap psychics
دوشنبه 8 آبان 1396 05:17 ق.ظ
این واقعا یک بخش عالی و مفید از اطلاعات است. من خوشحالم که این اطلاعات مفید را با ما به اشتراک گذاشتهاید.
لطفا ما را با این موضوع آگاه سازید با تشکر از شما برای به اشتراک گذاری.
cheap phone psychic readings
دوشنبه 8 آبان 1396 04:55 ق.ظ
سلام. من وبلاگ خود را با استفاده از msn پیدا کردم. این یک مقاله بسیار خوب نوشته شده است.

من مطمئنم که آن را نشانه گذاری کرده و به خواندن بیشتر اطلاعات مفید شما بازگردم.
از پستتان ممنونم. مطمئنا برگشتم
myfreecam token generator
شنبه 29 مهر 1396 09:09 ب.ظ
مقاله فوق العاده! این نوع اطلاعاتی است که قرار است انجام شود
در سراسر وب به اشتراک گذاشته شود. در حال حاضر ترسناکی در گوگل وجود ندارد
پست بالا! بیا بریم و با وبسایتم حرف بزنم
با تشکر =)
real psychic readings
دوشنبه 17 مهر 1396 12:59 ق.ظ
در مقایسه با هر موضوع در شبکه بسیار آسان است
به کتاب های درسی، همانطور که این پاراگراف را در این سایت پیدا کردم.
foot pain from heels
پنجشنبه 15 تیر 1396 05:32 ب.ظ
First of all I would like to say superb blog!
I had a quick question which I'd like to ask if you don't mind.
I was curious to know how you center yourself and
clear your thoughts before writing. I've had trouble clearing my mind in getting my ideas out there.

I truly do enjoy writing but it just seems like the first 10 to
15 minutes are generally lost just trying to figure out how to begin.
Any ideas or hints? Thank you!
foot pain and numbness
یکشنبه 4 تیر 1396 12:45 ب.ظ
We're a bunch of volunteers and opening a brand
new scheme in our community. Your web site offered us with
valuable information to work on. You have performed a formidable process and our whole community can be thankful to you.
ardisdeaguiar.hatenablog.com
شنبه 30 اردیبهشت 1396 08:30 ق.ظ
I visit everyday a few web pages and information sites to read content, except this blog presents feature based content.
std testing centers
سه شنبه 26 اردیبهشت 1396 04:30 ق.ظ
چلیپا از خود نوشتن در حالی که
صدایی مناسب در آیا واقعا حل و فصل خوب
با من پس از برخی از زمان. جایی در سراسر جملات شما قادر به من مؤمن متاسفانه تنها برای کوتاه در حالی که.
من با این حال مشکل خود را با جهش در مفروضات و یک
خواهد را خوب به کمک پر همه کسانی شکاف.
که شما در واقع که می توانید انجام من را قطعا تا پایان تحت تاثیر قرار
داد.
Adrianne
دوشنبه 25 اردیبهشت 1396 08:50 ق.ظ
Touche. Great arguments. Keep up the great spirit.
niala
چهارشنبه 12 آبان 1395 12:50 ب.ظ
یک کم بیشتر در مورد سوال های الگوریتم صحبت کنید
حسین
یکشنبه 2 آبان 1395 12:27 ب.ظ
فقط نمیدونم تاکی باید اینارو بخونیم
حسین
یکشنبه 2 آبان 1395 12:25 ب.ظ
سلام بسیار عالی بود
حسین
یکشنبه 2 آبان 1395 12:25 ب.ظ
سلام بسیار عالی بود
حامد
چهارشنبه 28 مهر 1395 06:16 ب.ظ
الگوریتم میانگین 10 تا عدد رو باهم حساب کن رو برام بفرستید
فقط الگوریتم
ممنون
سه شنبه 3 آذر 1394 06:23 ب.ظ
با تشکر ولی به صورت مختصر درس دادید
چهارشنبه 27 آبان 1394 01:48 ب.ظ
سلام استاد ما درس مختصری از الگوریتما داده و یه سوال مطرح کردن الگوریتمیبنویسید که50عدد از ورودی گرفته مجموع ومیانگین ان رامحاسبه و چاب کنید
میتونین کمک کنین؟
دوشنبه 1 دی 1393 05:06 ب.ظ
با سلام.دانشجوی کتابداری هستم ازفلوچارت هیچی نمیدونم تاامتحانم چیزی نمونده خواهش میکنم یه روشی به من بگیدکه بتونم یادبگیرم این فلوچارت و برنامه نویسیشونو.ممنون.
سه شنبه 20 خرداد 1393 03:03 ب.ظ

خیلی جالب بود
پنجشنبه 21 فروردین 1393 01:39 ب.ظ
niloofar
دوشنبه 8 آبان 1391 03:33 ب.ظ
اگه میشه به صورت کد نویسی الگوریتم ها را بنویسید مرسی
laeya
جمعه 21 مهر 1391 05:31 ب.ظ
من سال سوم دبیرستانم رشته ام کامپیوتره لطفا واسه منم مطالبی بذارید که به دردم بخوره
massy
پنجشنبه 24 فروردین 1391 05:54 ب.ظ
دانلود کتاب آموزش نوشتن الگوریتم
http://gwmassy.blogfa.com/post/439/دانلود-کتاب-چگونه-الگوریتم-بنویسیم
سید نوید حیدری
دوشنبه 11 مهر 1390 09:49 ق.ظ
سلام
ای کاش منبع رو ذکر می کردید

حیدری
منبع:
امید شمس دیوبند
marzi
سه شنبه 13 مهر 1389 12:10 ب.ظ
فلو چارت !nرو هم میخوام
مرسی
marzi
سه شنبه 13 مهر 1389 12:09 ب.ظ
من تازه دانشجوی مهندسی کامپیوتر شدم امروز استادمون گفت یه فلوچارت بنویسید از جدول ضرب9*9 من تازه اومدم هیچی بلد نیستم کمکم کنید
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر