بایگانی‌های دسته‌بندی: علوم کامپیوتر

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 مرتبه چاپ می‌کند:

تغییر نام تابع main

جهت تغییر نام تابع main می‌توان از پیش‌پردازندهٔ ماکرو استفاده کرد. به کد زیر دقت کنید:

چاپ یک متن بدون استفاده از Double Quotation و Semicolon

برای اینکار شما باید در ابتدا یک ماکرو تعریف کنید تا بتوانید متن خود را بدون Double Quotation چاپ کنید. سپس Statement هدف را بجای Condition در if یا switch و یا NOT آن را در while قرار دهید، تا بدون Semicolon چاپ شود.

مقایسه دو رشته در زبان C

مقایسه دو رشته در تمام زبان‌ها رایج است. در اکثر زبان‌ها با استفاده از Operator می‌توان مقایسه را انجام داد، اما در C قضیه فرق دارد و باید با استفاده از دو تابع strcmp و strncmp که در کتابخانه string.h قرار دارد، این کار را انجام داد. این دو تابع برای Sorting اطلاعات بسیار کاربردی […]

محاسبه سری فیبوناچی به دو روش معمولی و بازگشتی

در علم ریاضی، سری فیبوناچی به دنباله‌ای از اعداد گفته می‌شود که غیر از دو عدد اول، اعداد بعدی از جمعِ دو عددِ قبلیِ خود به‌دست می‌آیند. البته چند فرمول برای محاسبهٔ جملهٔ nام دنبالهٔ فیبوناچی، بدون استفاده از جملات ماقبل وجود دارد. ۰, ۱, ۱, ۲, ۳, ۵, ۸, ۱۳, ۲۱, ۳۴, ۵۵, ۸۹, ۱۴۴, ۲۳۳, ۳۷۷, […]

تابع strcpy و strncpy امن

با توجه به اینکه در زبان C مدیریت حافطه با برنامه‌نویس است، احتمال رخ دادن Overflow بسیار زیاد است. اینکه مدیریت حافظه با برنامه‌نویس است یک مزیت مهم محسوب می‌شود. چون به دلیل استفاده بهینه از حافظه، سرعت اجرای برنامه بالا می‌رود. اما مسئله‌ی مهم، خوب کد نوشتن برای جلوگیری از Overflow (چه Stack overflow […]