بایگانی‌های دسته‌بندی: برنامه‌نویسی

نوشتن تابع معکوس‌کننده یک رشته در زبان C

به کد زیر توجه کنید: حلقه‌ی درون این تابع با Swapping باعث برعکس شدن رشته می‌شود. این حلقه حداکثر به‌اندازهٔ نصف طول رشتهٔ ورودی اجرا می‌شود. مقدار بازگشتی هم برابر اشاره‌گر به رشتهٔ هدف است. کد پیچیده‌ای نیست؛ با کمی دقت در آن متوجه همهٔ جزئیات خواهید شد. البته روش‌های دیگری هم برای برعکس کردن […]

ایجاد آرایه‌ای از رشته‌ها در زبان C به روش‌های مختلف

روش بالا، در واقع آرایه‌ای از کاراکترها در آرایه‌ای دیگر از کاراکترهاست. آرایهٔ درونی ۴ عنصر (Element) دارد و آرایهٔ بیرونی ۶ عنصر (Element) دارد. بنابراین متغیر a، مقدار ۲۴ بایت از حافظه را اشغال می‌کند (۲۴ = ۶ × ۴). توجه: در a[0], a[1], a[2], a[3] عنصر چهارم آرایهٔ درونی کاراکتر ‘0\’ می‌باشد.توجه: در […]

حافظهٔ Dynamic در سی و سی++

در زبان سی برای اختصاص حافظهٔ Dynamic باید از چهار تابع malloc, calloc, realloc, free که در کتابخانه string.h قرار دارند، استفاده کرد. سه تابع malloc, calloc, realloc برای اختصاص دادن حافظه استفاده می‌شود و تابع free برای آزاد کردن حافظه‌ای که قبلا اختصاص داده شده بود، استفاده می‌شود. سه تابع malloc, calloc, realloc دارای […]

معنا و کاربرد اصطلاحات foobar, foo, bar

این اصطلاحات (foobar, foo, bar) را احتمالا بارها و بارها در مثال‌های موجود در اینترنت دیده‌اید. شاید برایتان سوال ایجاد شده باشد که چرا از این کلمات در مثال‌ها استفاده می‌کنند و چه معنایی دارند. این اصطلاحات و موارد مشابه آن‌ها به‌عنوان Metasyntactic Variables و Placeholder Names در برنامه‌نویسی کامپیوتر استفاده می‌شوند. این اصطلاحات برای […]

تفاوت کلاس و شیء

کلاس و شی‌ء: کلاس یک مفهوم (Concept) است و شی‌ء یک مصداق یا نمونه (Instance). مانند اینکه: «انسان» یک مفهوم است و «من» یک مصداق یا نمونه. یعنی «انسانِ سالم» (هم از نظر جسمی و هم از نظر روحی) یک موجودی‌ست که دارای خصوصیاتی مانند تکلم، تفکر و… می‌باشد، و «من» (نویسندهٔ این وبسایت) یک […]

برنامه محاسبهٔ اعداد اول

اعداد اول اعدادی هستند که فقط به یک و خودشان بخش‌پذیر هستند و نمی‌توان آن را بصورت ضرب دو عدد طبیعی کوچکتر نوشت. کد زیر اعداد اول بین ۲ تا ۱۰۰ را چاپ می‌کند. با تغییر مقدار ماکروی N می‌توان این دامنه را افزایش یا کاهش داد. خروجی کد بالا: 2 3 5 7 11 […]

انواع روش‌های Typecasting

اگر هنگام استفاده از اپراتورهای محاسباتی، هر دو عملوند از یک نوع داده باشند (مثلا هر دو int باشند)، خروجی نیز همان نوع داده خواهد بود. در این مورد توجه داشته باشید که اگر نیاز بود، حتما Cast انجام دهید. اگر نوع دادهٔ یکی از عملوندها بزرگتر از دیگری باشد (مثلا یکی int و دیگری […]

Typecasting

برنامه‌نویس باید همواره هنگام تغییر نوع داده به typecasting توجه داشته باشد، وگرنه ممکن است دچار خطاهایی شود که پیدا کردن آن زمانبر باشد. خروجی کد بالا: ((5 / 2) * 2) + ((5 / 2) * 2) = 10.0000009.0000008.000000 همانطور که در خروجی قابل مشاهده است، جواب درست ۱۰ می‌باشد، اما اگر typecasting انجام […]

چاپ آرایه‌ای از unsigned char بصورت هگزادسیمال

هر بایت (۸ بیت) را می‌توان بصورت دو رقم هگزادسیمال نوشت. دادهٔ نوع unsigned char، یک بایت حجم دارد؛ بنابراین باید بتوان مقدار آن را بصورت دو رقم هگزادسیمال نوشت. کد زیر آرایه‌ای از unsigned char را بصورت هگزادسیمال چاپ می‌کند.

تعریف دو متغیر Local و Global همنام و دسترسی به متغیر Global در زبان سی

در زبان سی برای دسترسی به متغیر سراسری‌ای (Global) که متغیر محلی (Local) همنام با آن نیز وجود دارد، باید با استفاده از آکولادهای باز و بسته (Brace) یک بلاک کد ایجاد کنید و درون این بلاک، همان متغیر Global را بصورت extern تعریف کنید؛ مانند کد زیر: خروجی کد بالا: Local “foo”: 20Global “foo”: […]