درس اول
تعریف الگوریتم
الگوریتم دستور العملی برای حل مساله است که دارای شرایط زیر باشد :
1-به زبان دقیق گفته شود .
2-جزئیات کامل حل مساله را داشته باشد .
3-ترتیب مراحل آن مشخص باشد .
4-شرط خاتمه عملیات مشخص باشد .
زبان دقیق : به این علت لازم است که اجرای الگوریتم درست به همان صورتی که مورد نظر نویسنده الگوریتم است صورت گیرد .
جزئیات کامل : به این علت لازم است که در طول اجرای الگوریتم عوامل ناشناخته ای پیش نیایند .
به مثال زیر توجه کنید :
ممکن است برای محاسبه اضافه کاری کارکنان یک اداره فرمول زیر ارائه شود :
دستمزد ساعتی اضافه کار × (تعداد ساعت موظف - تعداد ساعت کار ) = اضافه کاری
در این فرمول وضعیت تعداد ساعت کار و تعداد ساعت موظف معلوم است و روش محاسبه
“ دستمزد ساعتی اضافه کار” مشخص نیست . یعنی عامل “ دستمزد ساعتی اضافه کار” شناخته شده نیست . لذا این فرمول جوابگوی محاسبه اضافه کاری کارکنان نیست . مگر اینکه وضعیت این عامل نیز مشخص شود .
اگر فرض کنیم که دستمزد ساعتی اضافه کار به صورت زیر محاسبه گردد ، آنگاه اضافه کاری کارکنان قابل محاسبه می شود :
3/2 × دستمزد ساعتی حقوق = دستمزد ساعتی اضافه کار
ترتیب مراحل : اگر ترتیب مراحل الگوریتم را مشخص نکنیم ممکن است در هر بار اجرای الگوریتم دستورات گوناگون و متفاوتی اجرا شوند و نتایج متفاوتی را شاهد باشیم .
شرط خاتمه الگوریتم : اگر این شرط را رعایت نکنیم انجام عملیات هیچ گاه خاتمه نمی یابد و الگوریتم به مدت نامحدودی اجرا می شود .