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

چند مثال ساده از الگوریتم ها برای هنرجویان هنرستان

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

چند مثال ساده از الگوریتم ها برای هنرجویان هنرستان

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

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

دوشنبه, ۱۱ خرداد ۱۳۹۴، ۰۶:۴۶ ب.ظ

 

 

به نام خدا

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

1-    دارای ترتیب باشد

2-    دستورات با زبانی دقیق و جزئیات کافی بیان شده باشد.

3-     خاتمه پذیر باشد.یعنی بعد از انجام چند مرحله به پایان برسد.

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

کامپیوتر می تواند چهار عمل اصلی (+و – و X و / ) و مقایسات را انجام داده و نتایج را درحافظه خود ذخیره نمایید. بنابراین نمی تواند تشخیص دهد که مثلا یک عدد زوج است یا فرد؟ ما با الگوریتمی که می نویسیم آنرا برای کامپیوتر مشخص می کنیم.

اکنون اولین الگوریتم که جمع دو عدد است را می نویسیم.

مثال1:

0-    شروع

1-    دو عدد از ورودی بخوان.

2-    یکی را درخانه 1000 و دیگری را درخانه 1002 قرار بده.

3-    محتوای خانه های 1000و 1002 را با هم جمع کن.

4-    حاصل مرحله 3 را در خانه 1004 قرار بده.

5-    محتوای خانه 1004 را چاپ کن.

6-    پایان

توجه :

1-    دستورات الگوریتم بصورت امری بیان می شود.

2-    هر الگوریتم ممکن است یک یا چند  ورودی داشته یا هیچ ورودی نداشته باشد.

3-    هرالگوریتم حتما یک یا چند خروجی دارد.

منظور از خانه 1000 و غیره ، خانه های حافظه Ram  است.

برای ساده تر شدن می توان بجای آدرس خانه های Ram ، از اسامی استفاده کنیم .

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

بنابراین می توانیم الگوریتم فوق را بدین صورت بنویسیم:

0-    شروع

1-    دو عدد از ورودی بخوان

2-    یکی را در خانه A و دیگری را در خانه B حافظه قرار بده

3-    A+B

4-    حاصل مرحله 3 را در S قرار بده

5-    محتوای S را چاپ کن

6-    پایان

در الگوریتم مثال 1   به A , B , S که مکان هایی از حافظه Ram  می باشند ، متغیر گفته می شود.

البته می توان برخی از خطوط الگوریتم فوق را در هم ادغام نموده و الگوریتم ساده تری بنویسیم یعنی:

0-    شروع

1-    A,B  را بخوان

2-    S = A + B

3-      S را چاپ کن

4-    پایان

تمرین1: الگوریتمی بنویسید که دو عدد گرفته حاصلضرب آنها را نمایش دهد.

تمرین 2: الگوریتمی بنویسید که طول و عرض مستطیل را گرفته مساحت آنرا چاپ نماید.

نکته:

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

1-    ورودی ها(داده های مسئله یا همان معلومات)

2-    خروجی ها ( خواسته ها یا همان مجهولات)

3-    رابط بین ورودی ها و خروجی ها

مثلا در تمرین 2 بصورت زیر عمل می کنیم:

ورودی ها = طول و عرض می باشند که طول را با L و عرض که با W نشان می دهیم

خروجی= مساحت مستطیل که آنرا با Area نشان می دهیم.

رابطه =      Area= L * W

 با توجه به مشخص بودن موارد بالا الگوریتم آن بدین صورت خواهد بود:

0-    شروع

1-    L, W را بخوان

2-    Area = L * W

3-    Area   را چاپ کن

4-    پایان

تمرین3- الگوریتمی بنویسید که طول و عرض مستطیل را گرفته محیط آنرا حساب کند.