تهیه کنند:سعید شیرزاد

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

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

  1. به آشپزخانه برو.

  2. کتری را از آب پر کن.

  3. کتری را روی گاز بگذار.

  4. گاز را روشن کن.

  5. صبر کن تا آب جوش بیاید.

  6. چای را درون قوری بریز.

  7. قوری را از آب جوش پر کن.

  8. قوری را روی کتری بگذار.

به همین سادگی! ما معمولا جواب مسائل را میدانیم. فقط بلد نیستیم چطور آنها را به الگوریتم تبدیل کنیم. تعدادی مثال واقعی تر:

فرض کنید قرار است برنامه ای بنویسیم که دو عدد را جمع کند و حاصل را چاپ کند.

  1. اولین عدد را بگیر.

  2. دومین عدد را بگیر.

  3. عدد اول و دوم را با هم جمع کن و حاصل را در حافظه نگه دار

  4. حاصل را چاپ کن.

فرض کنید میخواهیم برنامه ای بنویسیم که مربع هر عدد را حساب کند. مربع یعنی عدد به توان ۲:

  1. یک عدد را بگیر.

  2. عدد را در خودش ضرب کن و حاصل را در حافظه نگه دار. (هر عدد به توان ۲ یعنی آن عدد در خودش ضرب شود)

  3. حاصل را چاپ کن.

دقت کنید که تنها کاری که انجام میدهم، شکستن مسئله به مراحل کوچک تر و ساده تر، و نوشتن آنها به صورت امری است. همین و بس.

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

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

  1. یک عدد را بگیر

  2. آن عدد را بر دو تقسیم کن و باقیمانده را در حافظه نگه دار

  3. اگر باقی مانده صفر است (یعنی عدد ما بر دو بخش پذیر است) چاپ کن: “زوج”

  4. اگر باقی مانده صفر نیست، چاپ کن: “فرد”

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

نکته مهم: شاید با این قبیل الگوریتم های وحشتناک مثل محاسبه ترانهاده ماتریس و محاسبه فاکتوریل چند عدد و سری فیبوناچی و … مواجه شده باشید. بگذارید خیالتان را راحت کنم. بعد از ۱۰ سال برنامه نویسی و حتی تجربه بستن نرم افزارهای مالی و محاسباتی، هیچ وقت به چیزی بیشتر از ۴ عمل اصلی ریاضی، احتیاج پیدا نکرده ام. اگر میخواهید برنامه نویس تجاری باشید، و استاد شما دارد به شما این الگوریتم های وحشتناک را یاد میدهد، استاد شما یک برنامه نویس نما است!

و اما تمرینات:

  1. برنامه ای بنویسید که دو عدد را تفریق کند.

  2. برنامه ای بنویسید که نمره دو تا از درس های دانش آموزی را گرفته، و معدل آن دو درس را بدهد. (معدل=مجموع نمره ها تقسیم بر تعداد آنها)

  3. برنامه ای بنویسید که یک عدد را بگیرد و مشخص کند آیا بر ۵ بخش پذیر هست یا خیر؟ (راهنمایی: از باقی مانده استفاده کنید.)

  4. برنامه ای را بنویسید که اول یک عدد بگیرد. سپس عدد دوم را بگیرد و مشخص کند عدد اولی بر دومی بخش پذیر است یا خیر (راهنمایی: از باقی مانده استفاده کنید.)

اگر در حل تمرین ها مشکلی داشتید، کامنت بگذارید. اگر شک داشتید که مسئله را درست حل کرده اید یا خیر، کامنت بگذارید تا شما را راهنمایی کنیم.

باور کنید نوشتن الگوریتم همین قدر ساده است!


برنامه نویسی

مشخصات

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

تبلیغات

محل تبلیغات شما
محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

برترین جستجو ها

آخرین جستجو ها

دیوارپوش چرمی آشپزخونه لوکس آرا Patty دکتر سمیرا حسن خانی ديگ بخار وبلاگی برای حرف های تخصصی اللهم عجل لولیک الفرج فروشگاه زنجیره سورنا شعبه ۲۶۵ وبلاگ شخصی نوید کمالی (جدید)