بایگانی‌های دسته‌بندی: زبان سی

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

اعداد اول اعدادی هستند که فقط به یک و خودشان بخش‌پذیر هستند و نمی‌توان آن را بصورت ضرب دو عدد طبیعی کوچکتر نوشت. کد زیر اعداد اول بین ۲ تا ۱۰۰ را چاپ می‌کند. با تغییر مقدار ماکروی 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”: […]

argc و argv در سی و سی++

argc و argv، آرگومان‌های خط فرمان جهت ارسال به تابع main در سی و سی++ می‌باشند. argc تعداد رشته‌هایی است که argv به آن اشاره می‌کند. argc مخفف کلمهٔ argument count و argv مخفف کلمهٔ argument vector می‌باشد. argc و argv را می‌توان به هر نام دلخواهی تغییر داد. int main(int argc, char *argv[])int main(int […]

پارامتر (Parameter) و آرگومان (Argument)

به متغیرهایی که هنگام نوشتن یک تابع در Header تابع تعریف می‌شوند (متغیرهای موجود در Prototype)، پارامتر (Parameter) گفته می‌شود. به مقدارهایی که هنگام فراخوانی یک تابع، به آن تابع ارسال می‌شوند، آرگومان (Argument) گفته می‌شود. پارامترها متغیرهای محلی (Local Variables) هستند، که هنگام فراخوانی تابع، مقدار آرگومان‌ها به آن‌ها اختصاص می‌یابد. پارامترها در واقع […]

محاسبهٔ فاکتوریل با استفاده از بازگشت (Recursion)

به کد زیر دقت کنید: در کد بالا فاکتوریل عدد ۵ با استفاده از تابع fact که بصورت بازگشتی عمل می‌کند، چاپ می‌شود. خروجی برنامهٔ بالا عدد ۱۲۰ است. در توابع بازگشتی و یا حلقه‌ها حتما باشد یک شرط توقف (Stop Condition) وجود داشته باشد، وگرنه بازگشت یا چرخش حلقه تا بی‌نهایت تکرار می‌شود. در […]

پیاده‌سازی یک تابع شرطی بدون استفاده از جملهٔ شرطی

به توابع زیر دقت کنید (x شرط توابع است): تابع conditionalFunction1 دارای 3 پارامتر می‌باشد. این تابع با استفاده از (?:) Conditional Operator که بنام Ternary Operator نیز شناخته می‌شود، مقدار x را بررسی می‌کند. اگر x عددی غیر صفر باشد، مقدار خروجی برابر با a می‌باشد؛ و در غیر این صورت (اگر x صفر […]

تکرار یک جمله بدون استفاده از حلقه و بازگشت و پرش

می‌توانید از ماکرو (macro) برای اینکار استفاده کنید؛ کد زیر عبارت !Hello world را 100 مرتبه چاپ می‌کند: