برنامه نویسی

مقدار دهی اولیه آرایه | C-style array

انگیزه‌ی من از نوشتن این مطلب مواردی بود که گاهی مشاهده می‌کردم فرد با وجود سال‌ها تجربه این نکات را نمی‌داند و با فرض اشتباه کد می‌زند. اگر می‌خواهید کل آرایه را با صفر پر کنید، کافی است، یکی از دو راه زیر را انتخاب کنید: یا اما در نظر داشته باشید با انجام چنین کاری: آرایه‌ی ما با یک …

مشاهده بیشتر »

در عملگر تساوی، ثابت را سمت چپ بگذارید!

هنگامی که قرار است دو عبارت را با عملگر تساوی(==) مقایسه کنید، عادت خوب این است که همیشه سمت چپ را عبارتی قرار دهید که ثابت است: این عادت ساده اما اثر بخش می‌تواند مانع از ایجاد باگ در اثر عدم تایپ یکی از مساوی‌ها شود. اگر شما به دلیل اشتباه تایپی در برنامه کد زیر را بنویسید: کامپایلر به …

مشاهده بیشتر »

کلاس std::map | زبان برنامه نویسی ++C

در این پست می‌خواهیم سراغ کلاس std::map، یکی دیگر از data container های رایج در زبان ++C برویم. فرض کنید می‌خواهیم برنامه دیکشنری انگلیسی به فارسی بنویسیم. داده‌های ما در دیکشنری در یک سمت کلمات انگلیسی هستند و در سمت دیگر توضیحات فارسی این کلمات. کلمات انگلیسی بر خلاف توضیحات همیشه یکتا هستند. مثلاً شما می‌توانید “Home” و “House” با …

مشاهده بیشتر »

خطر اندیس متغیر در آرایه‌‌ | زبان برنامه نویسی C

 از موارد بسیار کاربردی در برنامه‌نویسی با زبان C، آرایه‌ها هستند. در اینجا می‌خواهیم به نکته‌ای در خصوص آرایه‌ها اشاره کنیم که عدم توجه به آن، می‌تواند موجب باگ‌های خطرناک در برنامه شود.

مشاهده بیشتر »

کلاس std::vector | زبان برنامه نویسی ++C

یکی از انواع container class های تعریف شده در ++C، که در گروه آرایه‌های پویا(dynamic) قرار می‌گیرد، std::vector است. آرایه‌ی پویا به این معنی است که سایز آرایه می‌تواند در طول اجرای برنامه تغییر کند. این ویژگی به ما در استفاده بهینه‌تر از حافظه‌ کمک می‌کند. اگرچه در عوضش باید پردازشی صرف این تغییر کار کنیم که سرعت را از …

مشاهده بیشتر »

کلاس std::stirng | زبان برنامه نویسی ++C

یکی از کاربردی‌ترین بخش‌های زبان برنامه‌نویسی ++C/C مربوط می‌شود به کار با string یا رشته. دلیل این نام‌گذاری هم این است که رشته‌ای از کارکترها یک string را می‌سازند. این موضوع در زبان C ملموس‌تر است. چراکه ما به طور مستقیم متغیری از جنس string نداریم و برای داشتن یک رشته باید آرایه‌ای از جنس char تعریف کنیم. اگر چه …

مشاهده بیشتر »

چگونه به خط بعد برویم؟ | راهنمای استفاده از ‘n\’ و std::endl | زبان برنامه نویسی ++C

می‌خواهیم عبارت “!Hello DIGILOGIST” را در صفحه نمایش یا یک فایل متنی چاپ کنیم: شاید فکر کنید پردازنده به محض دیدن این دستور، کارکترها را برای مقصد ارسال می‌کند. اما در عمل این اتفاق نمی‌افتد. اجازه بدید با یک استعاره توضیح بدم. فرض کنید می‌خواهیم با تاکسی از ابتدای مسیر خطی به مقصدمان برویم. احتمالاً شما هم این تجربه را …

مشاهده بیشتر »

Const Object | زبان برنامه نویسی ++C

احتمالاً با تعریف متغیر ثابت از انواع پایه مثل int آشنا باشید. نکته‌ی زیاد خاصی ندارد. فقط باید بدانید که تنها جایی که کامپایلر به شما اجازه‌ی مقداردهی آن را می‌دهد، هنگام تعریفش است. حالا می‌خواهیم بپردازیم به const object. در اینجا هم وقتی شی را به صورت const تعریف می‌کنیم، اجازه نداریم که data memberها را در جایی به …

مشاهده بیشتر »

کد باکیفیت

سال‌ها پیش در پروژه‌ای قرار بر این شد که با ترکیب دو محصول مختلف و قدیمی شرکت، به محصولی جدید برسیم. از ابتدا، طراحی سخت‌افزار این دو دستگاه با رویکرد پلتفرمی مشترک برای چند محصول صورت گرفته بود. دستگاه جدید هم قرار بود بر روی این پلتفرم تولید شود. ظاهراً کار ساده بود! من فقط باید به کدهای هر دو …

مشاهده بیشتر »

Default Arguments | زبان برنامه نویسی ++C

در زبان ++C  می‌توان در قسمت function declaration به آرگومان‌های ورودی تابع مقداری را نسبت داد که به آن default argument می‌گویند. در این حالت اگر هنگام فراخوانی این تابع به جای این آرگومان‌ها چیزی به تابع ارسال نکنیم، مشکلی ایجاد نمی‌شود و این مقدار پیش فرض برای این آرگومان‌های تابع در نظر گرفته می‌شود. مثلاً تابع ساده زیر که …

مشاهده بیشتر »