خطای تک واحد

خطای تک واحد به انگلیسی Error Off-by-one یک خطای منطقی می‌باشد که مربوط به کرانه اجرای شرط در برنامه نوشته شده (با هر زبان برنامه‌نویسی) می‌باشد. این خطا را به این صورت نیز توصیف می‌کنند: "that extra inch you didn't really want" یعنی آن مقدار اضافی که اجرا شده ولی مد نظر تو نبود. برای درک بهتر این خطا حالت زیر را در نظر بگیرید:
برنامه‌نویسی می‌خواهد یک حلقه را بنویسید که ۵ بار اجرا شود. فرض کنید شروع حلقه حالت n و پایان آن m است و برنامه‌نویس چنان فرض می‌کند که میزان شمارش این حلقه به این صورت است: m-n که اگر n را برابر صفر و m را برابر ۴ در نظر بگیریم، طبق فرض برنامه‌نویس این حلقه ۴=۰–۴ بار اجرا می‌شود و حلقه آن به این صورت نوشته شده است:
  for (i=0;i<=4;i++)
}
-----
{
  

ولی با کمی دقت می‌توان فهمید که این حلقه ۵ بار اجرا می‌شود نه ۴ بار و مشکل محاسبات منطقی برنامه‌نویس بود چون تعداد بار اجرای حلقه به صورت m-n+1 حساب می‌شود. این خطای منطقی که در برنامه رخ داده Off-by-one نامیده می‌شود و در مراحل بعدی برنامه می‌تواند محاسبات را بهم زده و نتیجه برنامه را به کلی تغییر دهد (خروجی خارج از انتظار برنامه‌نویس باشد).

منابع 

 ترجمه فارسی کتاب دایتل: حسین زارع و علیرضا زارع پور، پایتون چگونه برنامه بنویسیم، انتشارات نص، 1401.
Deitel and Deitel, ″ Python for Programmers: with Big Data and Artificial Intelligence Case Studies″, Prentice Hall, 2019.

 https://en.wikipedia.org/wiki/Off-by-one_error
 An earlier version of this article was based on fencepost error at FOLDOC, used with permission.

اشکال‌های برنامه‌نویسی
سوءاستفاده امنیتی از رایانه
مقاله‌های ایجاد شده توسط ایجادگر
مقاله‌های دارای کد نمونه به زبان سی
ویکی‌سازی رباتیک