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

ساخت وبلاگ

الگوريتم عبارت است از روش حل مسئله به صورت گام به گام

 

در واقع الگوريتم تشكيل شده است از

- مجموعه اي از دستورالعمل ها

-كه با زبان دقيق و قابل فهم

-به همراه جزئيات لازم 

-به صورت مرحله مرحله

-براي حل مسئله اجرا مي شود

-و شروع و خاتمه آن نيز مشخص مي باشد

 

مي توان الگوريتم را به صورت يك ماشين در نظر گرفت كه مقادير معلوم را دريافت كرده – روي آن محاسباتي را انجام مي دهد و در پايان  جواب مسئله را ارائه مي دهد

 

انسان تمام كار هاي خود را به صورت الگوريتمي انجام مي دهد که در طول زندگي خود آنها را فرا گرفته است و همواره تلاش   مي كند كه اين روش هاي زندگي (الگوريتم ها ) را بهبود دهد تا بتواند زندگي بهتري داشته باشد تفاوت زندگي انسانها در شرايط يكسان به خاطر تفاوت در نوع الگوريتم زندگي آنها مي باشد

اگر بخواهيم ماشيني بسازيم (ربات) كه كار انسان را تقليد كند مجبوريم تمام مراحلي را كه انسان به صورت معمولي و روتين انجام مي دهد را براي ماشين به صورت مرحله به مرحله بيان كنيم همين بيان ما الگوريتم نام دارد

براي مثال مي خواهيم رباتي بسازيم كه مسواك بزند كه كاري را بايد اين ربات انجام دهد  هر كدام از ما روشي براي مسواك زدن داريم شايد يكي از اين روش ها به اين صورت باشد

1-شروع

2-برداشتن مسواك

3- قرار دادن خمير دندان روي مسواك

4- عمل مسواك زدن دندانها

5-بازكردن شير اب

6-شستن دهان

7-شستن مسواك

8-بستن شير آب

8- پايان

اين روش را به صورت مرحله به مرحله نوشته ايم كه شروع و پايان آن مشخص است يك ربات مي تواند با اجراي مراحل فوق مسواك بزند !

تمام كارهاي كه انجام مي دهيم را مي توانيم به صورت مرحله به مرحله بنويسيم مثلا

روش پاسخ به سوالات امتحاني

روش تلفن زدن

روش پختن یک کیک

روش روشن كردن يك موتور سیکلت

روش روشن كردن كامپيوتر

روش ساخت يك پوشه در كامپيوتر

روش خوردن يك اش داغ

روش مطالعه

بعضي از الگوريتم هاي ما در زندگي اهميت چنداني ندارد (مثل خوردن اش داغ) ولي بعضي ديگر مثل مطالعه كردن مي توان  در زندگي ما تاثير زيادي داشته باشد هميشه ما بايد از الگوريتمي استفاده كنيم كه بهينه باشد يعني بيشترين سود را به ما برساند براي همين همه ما به دنبال الگوريتمي براي بهبود روش مطالعه خود هستيم – روش صحيح مطالعه-

براي کامپیوتر هم  اين مسئله مهم است در ساخت کامپیوتر نيز بايد الگوريتم هايي را بنويسيم كه بهينه باشد بعني بهترين كارايي را در حداقل دستورات به ربات بدهد

يك الگوريتم خوب بايد داراي شرايط زير باشد

1- استفاده از زبان ساده دقيق قابل فهم

 اين ويژگي باعث مي شود كه همواره از دستور العمل ها يك برداشت شود اگر دستور العمل ها ساده و دقيق نباشد باعث مي شود كه برداشتهاي مختلفي از آن شود در نتيجه جوابهاي مختلفي براي الگوريتم حاصل شود مثلا در الگوريتم مسواك زدن نحوه مسواك زدن دندانها بيان نشده است و اين درست نيست

2-استفاده از جزئيات كافي

براي مثال دقيقا بيان كنيم كه چگونه دندانها را مسواك كنيم   تا دستورالعمل مبهم نباشد

3- شروع و پايان الگوريتم

هر الگوريتم يك نقطه شروع به عنوان اولين دستورالعمل و يك نقطه پاياني دارد

4-ترتيب انجام دستورالعمل ها

يكي از ويژگي هاي مهم الگوريتم ترتيب اجراي دستورالعمل ها مي باشد اگر اين كار به درستي انجام نشود نتايج پيش بيني نشده اي داد براي همين براي دستورالعمل هاي الگوريتم از شماره استفاده مي شود تا ترتيب اجراي ان ها مشخص باشد

5-جامع بودن الگوريتم

الگوريتم بايد به گونه اي طراحي شود كه تمام حالت هاي مسئله را در نظر بگيرد و براي حالت هاي خاص يا داده هاي ورودي متفاوت نتايج درستي را ايجاد كند

6-استفاده از حداقل دستورالعمل ها

الگوريتمي مناسب است كه با شرايط بالا داراي تعداد دستور العمل كمتري باشد دستورات اضافه سبب افزايش حجم الگوريتم مي شوند و كارايي الگوريتم را پايين مي اورند

انواع دستورالعمل هاي الگوريتم

1- ورودي

 اين دستور العمل ها مقادر مسئله را از ورودي در يافت مي كند و شامل عبارت هاي نظير ذيل مي باشند

x را بخوان

X را دريافت كن

 

2-خروجي

اين دستورالعمل ها مقدار خروجي الگوريتم را بيان مي كنند مثلا

X را چاپ كن

X نمايش بده

 

 

3- محاسباتي

اين دستورالعمل ها  اعمال محاسباتي الگوريتم را انجام مي دهد نظير

X=x+1

Y=3*x+12

 

4-شرطي

دستورالعمل هايي مي باشند كه در آنها از يك شرط استفاده مي كنيم معمولا براي بيان شرط از كلمه اگر استفاده مي شود

اگر  بزرگتر از 10 بود به آن دو واحد اضافه كن وگرنه از آن 5 واحد كم كن

اگر x>10 انگاه x+2 x=  وگرنه x=x-5

 

5-حلقه

در نوشتن الگوريتم لازم است گاهي از مواقع يك يا چند دستور العمل را چند بار تكرار كنيم به چنين دستور العمل هايي حلقه گفته مي شود

 مثلا تا وقتي كه  كوچتر از 10 مي باشد به x يك واحد اضافه كن

X=x+1

اگر x انگاه برو به مرحله  قبل

 

چگونه الگوريتم يك مسئله را بنويسيم

براي حل يك مسئله هميشه بايد سه پارامتر را تعيين كنيم

اول :مقادير معلوم

مقاديري كه در اختيار شما قرار مي گيرد  و براي رسيدن به جواب مورد نظر در مساله مورد نياز هستند

دوم : محاسبات :

براي رسيدن به جواب معمولا لازم است عملياتي را روي مقادير معلوم مسئله انجام دهيد اين عمليات شامل اعمال رياضي نظير جمع ضرب تقسيم تفريق محاسبه باقي مانده و غيره مي باشد

سوم: خواسته هاي مساله (مجهولات)

مقاديري هستند كه معمولا در اثر انجام اعمال محاسباتي بر روي مقادير معلوم مسئله حاصل مي شوند و جواب هاي مسئله ما مي باشند

 

اگر در حل يك مسئله سه عامل اصلي را به دقت مشخص كنيم طراحي يك الگوريتم كار زياد  دشواري نخواهد بود

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

توضیح:  برای حل این الگوریتم نیاز به یک متغییر جمع کننده داریم که باید این متغییر جمع کننده با مقدار 0 مقدار دهی اولیه شود و سپس به حلقه که به تعداد عدد دوم باید بچرخد و هر بار چرخش متغییر جمع کننده مقدار عدد اول را با مقدار متغییر جمع کننده، جمع کرده و نتیجه را در متغییر جمع کننده خواهد ریخت تا زمانی که تعداد چرخشهای حلقه تمام شود حاصل ضرب با عملگر جمع شبیه سازی خواهد شد!!!

 

جواب:

 

1-     شروع

 

2-     دو متغییر x و y را بخوان

 

3-     عدد 0 را به متغییر sum نسبت بده

 

4-     عدد 1 را به متغییر i نسبت بده

 

5-     اگر مقدار متغییر i کوچکتر یا مساوی از مقدار متغییر y باشد برو به مرحله ۷

 

6-     در غیر اینصورت برو به مرحله ۱۰

 

7-     مقدار متغییر sum را با مقدار متغییر x جمع کن نتیجه را درsum  قرار بده

 

8-     به متغییر i یک واحد اضافه کن

 

9-     برو به مرحله 5

 

10-  مقدار متغییر sum را چاپ کن

 

11-  پایان

 

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

برچسب : تمرین,الگوریتم, نویسنده : angouti1355o بازدید : 186 تاريخ : پنجشنبه 23 شهريور 1396 ساعت: 6:05