برنامه‌نویسی ++C

زبان ++C را از پایه به شکل اصولی و کاربردی بیاموزید.

avataravataravatar

و ۳۲۸ نفر دیگر ثبت‌نام کرده‌اند.

آموزش ++C

اولین

زبان محبوب در صنعت پرطرفدار بازی‌سازی

دومین

زبانِ سریع برنامه‌نویسی در بین زبان‌های برنامه‌نویسی

جزو ۱۰

زبان پرتقاضای برنامه‌نویسی در سال ۲۰۲۳

۱۱۰,۰۰۰ دلار

میانگین درآمد سالانه یک C++ Developer در آمریکا

معرفی

مخاطبین

پیش‌نیازها

سرفصل‌ها

اساتید

0 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1

معرفی دوره

در دنیای امروز ما، تسلط به برنامه‌نویسی به یک "باید" تبدیل شده. به زبان خودمانی، برنامه‌نویسی یعنی «امر کردن دستورات به کامپیوتر» که درنتیجه‌ی اجرای این دستورات، عملیاتی مشخصی مانند نمایش یک جمله روی صفحه نمایش یا در حالت پیشرفته‌تر، اجرای یک بازی کامپیوتری اتفاق می‌افتد و کمک می‌کند کار‌ها را به صورت اتوماتیک انجام دهیم! مشابه زبان فارسی، زبان‌های برنامه‌نویسی نیز از یک سری دستورات و قواعد تشکیل شده‌اند که در دوره، این دستورات و قواعد را به شما یاد می‌دهیم. زبان ++C یک زبان پرکاربرد در دنیای امروز است که یکی از بهترین گزینه‌ها برای شروع یادگیری برنامه‌نویسی، ورود به دنیای بازی‌سازی یا مسابقات کامپیوتر و الگوریتم است.

    • section item

      این دوره مناسب شما است اگر...

      مشتاقید به بازار پردرآمد برنامه‌نویسی و حوزه‌ی نرم‌افزار وارد شده و آینده‌ی شغلی خود را رقم بزنید.

      برای پروژه‌های شخصی، دانشگاهی و یا کاری خود نیاز به یادگیری سریع زبان ++C دارید.

      می‌خواهید دروس برنامه‌نویسی دانشگاه را با نمره‌ی عالی پشت سر بگذارید.

      می‌خواهید زبان ++C را به صورت عملی و یکبار برای همیشه به شکل اصولی بیاموزید.

    • section item

      این دوره مناسب شما نیست اگر...

      تجربه‌ی عملی چندین هزار خط کدنویسی برایتان ارزشی ندارد.

      هنوز فکر می‌کنید که شرکت‌ها برای استخدام به مدرک دانشگاهی شما توجه می‌کنند.

      حاضر نیستید در هفته ۶ ساعت برای یادگیری، پیشرفت و رشد درآمدتان زمان بگذارید.

      می‌خواهید زبان ++C را به طور سطحی و گذرا بیاموزید.

    • پیش‌نیازها

    • لازم است...

      section item

      علاقه و پشتکار داشته باشید.

    • لازم نیست...

      section item

      پیش‌زمینه‌ی برنامه‌نویسی داشته باشید.

      section item

      در رشته‌ی کامپیوتر تحصیل کرده باشید.

      section item

      دانش ریاضی قوی داشته باشید.

    سرفصل‌های دوره

    certificate

    اساتید و مربیان دوره

    teacher's avatar

    سید امین حسینی

    طراحی و تولید

    دانشجوی کارشناسی مهندسی نرم‌افزار دانشگاه اصفهان | دستیار آموزشی دانشگاه اصفهان
    teacher's avatar

    سید محمد سروش سجادی

    طراحی و تولید

    دانشجوی کارشناسی مهندسی کامپیوتر دانشگاه اصفهان
    teacher's avatar

    کیمیا میرمقتدایی

    طراحی و تولید

    دانشجوی کارشناسی مهندسی کامپیوتر دانشگاه اصفهان
    teacher's avatar

    امین انوری

    طراحی و تولید

    دانشجوی کارشناسی ارشد ریاضی محض دانشگاه صنعتی شریف | مسئول آموزش و مسابقات الگوریتم در کوئرا
    college

    برنامه‌نویسی ++C

    feature

    ۱۰۳ تمرین

    feature

    گواهی معتبر

    feature

    عضو پارک علم و فناوری شریف

    و ۳۳۱ نفر دیگر ثبت‌نام کرده‌اند.

    feature

    ۱۰۳ تمرین

    feature

    گواهی معتبر

    feature

    عضو پارک علم و فناوری شریف

    سوالات متداول











    آموزش C++

    C++ چیست؟

    C++ یک زبان برنامه‌نویسی چند پارادایمی، سطح بالا، کامپایلری و ارتقاء یافته از زبان C است که از رویکرد شی‌گرا و از سبک‌های برنامه‌نویسی رویکردی، تابعی و ژنریک نیز پشتیبانی می‌کند و در سال ۱۹۸۳ توسط Bjarne Stroustrup توسعه داده شده است. 

    یکی از ویژگی‌های کلیدی C++، توانایی پشتیبانی از برنامه‌نویسی در سطح پایین و سیستمی است که آن را مناسب برای توسعه سیستم‌عامل‌ها، درایورهای دستگاه‌ها و دیگر نرم‌افزارهای سیستمی می‌کند.

    تفاوت C++ و C

    زبان‌های برنامه‌نویسی C و C++ اگرچه  از یک ساختار پایه مشترک بهره می‌برند اما تفاوت‌های مهمی دارند که در ادامه به معرفی و بررسی برخی از این تفاوت‌ها می‌پردازیم:

    تفاوت در مفهوم شیءگرایی 

    زبان C یک زبان برنامه‌نویسی رویه‌ای (Procedural) است و زبانی کاملا شیءگرا نیست. در C، برنامه‌ها به صورت توابع و پروسه‌ها ساخته می‌شوند و تا حد زیادی بر اساس اعمال و پردازش‌ها عمل می‌کنند. این درحالی است که زبان C++ یک زبان کاملا شیءگرا است. در C++، می‌توان کلاس‌ها و اشیاء (objects) را تعریف کرد و از ویژگی‌های مهم شیءگرایی مانند کپسوله سازی (Encapsulation)، ارث بری و پلی‌مورفیسم بهره می‌برد.

    تفاوت در نحوه تعریف متغیرها

    این دو زبان در پروسه تعریف متغیر نیز با یکدیگر تفاوت‌هایی دارند.در C، تعریف متغیرها به صورت قبل از شروع تابع اصلی انجام می‌شود. این بدان معناست که متغیرها باید در ابتدای هر تابع تعریف شوند. اما در C++، متغیرها می‌توانند در هر نقطه‌ای از تابع تعریف شوند. این موضوع به برنامه‌نویس‌ها اجازه می‌دهد تا متغیرها را در مکان‌های مناسب‌تری تعریف کنند.

    تفاوت در استفاده از کتابخانه‌ها

    C++ اگرچه از کتابخانه‌های معروف C مانند  Standard I/O Library استفاده می‌کند اما از یک سری کتابخانه‌های اضافی و ویژگی‌هایی برخوردار است که برای مدیریت رشته‌ها (Strings)، کلاس‌های STL  و ... به کار می‌روند.

    آیا C++ زبان سختی است؟

    قطعا C++ ویژگی‌هایی دارد که یادگیری آن را تا حدودی دشوار می‌کند، به ویژه اگر به عنوان اولین تجربه آموزش برنامه نویسی خود به سراغ آن آمده باشید یا تجربه کار با هیچ زبان سطح پایینی را نداشته باشید. اگر با وجود این شرایط همچنان به دنبال یادگیری C++ باشید، باید حداقل سه ماه را برای یادگیری مفاهیم پایه تصور کنید.

    ویژگی‌های C++

    اما چه چیزی باعث می‌شود که زبان C++ تا این اندازه محبوب بوده و با وجود پیچیدگی‌هایش علاقه‌مندان بسیاری در دنیا داشته باشد؟ در این بخش تلاش می‌کنیم تا به مهم‌ترین ویژگی‌های این زبان بپردازیم.

    شی‌گرایی

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

    سرعت

    زمانی که ملاک انتخاب یک زبان برنامه‌نویسی سرعت باشد، C++ بی شک می‌تواند انتخاب اول ما باشد. زمان کامپایل و اجرای یک برنامه C++ به طور قابل ملاحظه‌ای سریع‌تر از اکثر زبان‌های برنامه‌نویسی عمومی است.

    کامپایلری

    C++ یک زبان کامپایلری است، به این معنا که ابتدا باید به یک زبان برنامه‌نویسی سطح پایین تبدیل شده و سپس استخراج شود. به طور کلی کامپایلری بودن یک زبان می‌تواند مزایای بسیاری مانند بهبود پرفورمنس و افزایش امنیت داشته باشد.

    کتابخانه‌های متنوع

    ٰکتابخانه استاندارد C++ که با نام STL شناخته می‌شود، دارای متدهای متعددی است که به نوشتن کد در کم‌ترین زمان ممکن کمک می‌کنند. به عنوان مثال، در STL می‌توان از انواع مختلفی از ساختارهای داده مانند جداول هش (hash tables)، نگاشت‌ها (maps)، مجموعه‌ها (sets) و غیره استفاده کرد.

    پشتیبانی از اشاره‌گرها (pointers)

    زبان C++ همچنین از اشاره‌گرها پشتیبانی می‌کند که معمولا در زبان‌های برنامه‌نویسی دیگر پشتیبانی نمی‌شوند.

    نزدیکی به سخت‌افزار

    زبان C++ نسبت به اکثر زبان‌های برنامه‌نویسی عمومی به سخت‌افزار نزدیک‌تر است. این ویژگی آن را در حوزه‌هایی که سخت‌افزار و نرم‌افزار به نزدیکی به هم متصل هستند و نیاز به پشتیبانی سطح پایین در سطح نرم‌افزار دارند، بسیار مفید می‌کند.

    کاربردهای C++

    کاربرد C++ در توسعه سیستم عامل‌ها

    زبان C++ به دلیل بهینه‌سازی حافظه و امکان کار در سطح پایین سیستم، برای توسعه سیستم‌عامل‌ها بسیار مناسب بوده و در توسعه آن‌ها نقش مهمی دارد. این زبان در ایجاد قسمت‌های مختلف از یک سیستم‌عامل مورد استفاده قرار می‌گیرد. بخش‌هایی چون:

    • Kernel Development: هسته یا kernel یک سیستم‌عامل، بخش بسیار مهمی از آن است که وظایفی مانند مدیریت منابع سخت‌افزاری، زمان‌بندی، مدیریت حافظه و اجرای سیستم‌عامل را انجام می‌دهد. زبان C++ برای توسعه هسته سیستم‌عامل‌ها مورد استفاده قرار می‌گیرد.
    • Device Drivers: درایورهای دستگاه یا device drivers نرم‌افزارهایی هستند که ارتباط سیستم‌عامل با دستگاه‌های سخت‌افزاری مثل پرینتر، کارت‌های گرافیک و کارت‌های شبکه را فراهم می‌کنند.
    • File Systems: یکی از اجزاء مهم یک سیستم‌عامل، فایل‌سیستم (File System) است که از C++ برای توسعه و بهینه‌سازی آن استفاده می‌شود. این فایل‌سیستم‌ها فضای ذخیره‌سازی داده‌ها را مدیریت می‌کنند.
    • System Libraries: این کتابخانه‌ها عملکردهای اساسی مانند مدیریت فایل‌ها، شبکه، ورودی و خروجی را فراهم می‌کنند.
    • Concurrency and Multithreading: سیستم‌عامل‌ها معمولاً باید با همزمانی (Concurrency) و چندنخی (Multithreading) سروکار داشته باشند تا بتوانند چندین وظیفه را به طور همزمان اجرا کنند. C++ با کتابخانه‌هایی مانند "std::thread" و "std::mutex" قابلیت‌های مولتی تردینگ را فراهم می‌کند.
    • Security and Memory Management:از قابلیت‌های زبان C++ برای مدیریت حافظه و پیشگیری از آسیب‌پذیری‌های امنیتی می‌توان استفاده کرد.
    • Performance: نقش زبان برنامه‌نویسی C++ برای بهبود عملکرد سیستم‌عامل‌ها و برنامه‌های سیستمی نیز از اهمیت بسیاری برخوردار است.

    کاربرد C++ در بازی‌ها

    از آنجا که این زبان ویژگی نزدیک‌ بودن به سخت‌افزار را دارد، شرکت‌های توسعه بازی برای توسعه سیستم‌های بازی به عنوان انتخاب اصلی خود از C++ استفاده می‌کنند. با این کار می‌توانند منابع را به سادگی کنترل کرده و پیچیدگی‌های بازی‌های سه‌بعدی و شبکه‌های چندنفره را به راحتی مدیریت کنند. بازی‌های محبوبی مانند Call Of Duty و GTA 5 با استفاده از C++ توسعه داده شده‌اند.

    کاربرد C++ در برنامه‌های مبتنی بر رابط کاربری گرافیکی (GUI)

    C++ همچنین به دلیل ویژگی‌هایی مانند سرعت بالا، کنترل بالا روی سخت افزار و کتابخانه‌های گرافیکی متنوع برای توسعه برنامه‌های مبتنی بر رابط کاربری گرافیکی و برنامه‌های دسکتاپ استفاده می‌شود. بیشتر برنامه‌های شرکت Adobe مانند فتوشاپ، ایلاستریتور و غیره با استفاده از C++ ساخته شده‌اند.

    کاربرد C++ در واقعیت مجازی (VR)

    اگر قصد توسعه برنامه‌های واقعیت مجازی (VR) را دارید، C++ می‌تواند انتخاب بسیار مناسبی برای یادگیری باشد. C++ به عنوان زبانی با ظرفیت مدیریت پروژه‌های پیچیده و بزرگ، به توسعه‌دهندگان اجازه می‌دهد که برنامه‌های VR را ایجاد کرده و با بهره‌وری بالا آن‌ها را اجرا کنند.اغلب کتابخانه‌ها و ابزارهای مرتبط با VR نیز از C++ برای توسعه بهره می‌برند.

    با استفاده ازاین زبان می‌توانید به سادگی با دستگاه‌های VR و تجهیزات مختلفی که برای آنها استفاده می‌شوند تعامل کرده و کنترلی دقیق بر نمایش و به عملکرد کاربر را داشته باشید..بنابراین، اگر علاقه‌مند به ورود به دنیای توسعه برنامه‌های VR هستید، یادگیری C++ می‌تواند یک مهارت مهم و مفید باشد.

    کاربرد C++ در تکنولوژی بلاک چین (Blockchain)

    شاید برایتان جالب باشد که بدانید ارز دیجیتال معروف بیت‌کوین که به عنوان اولین و بزرگترین ارز دیجیتال در جهان شناخته می‌شود با استفاده از این زبان توسعه یافته است. علاوه بر این، از C++ به عنوان یکی از زبان‌های معمول برای توسعه قراردادهای هوش مصنوعی در پروژه‌های بلاکچین استفاده می‌شود. این قراردادها برنامه‌هایی کامپیوتری هستند که به صورت خودکار شرایط تعیین شده در قرارداد را اجرا کرده و این اجرای خودکار و بدون واسطه باعث کاهش نیاز به اعتماد برای طرفین قرارداد می‌شود. این موضوع به توسعه‌دهندگان این امکان را می‌دهد تا قراردادهای هوش مصنوعی پیچیده‌تر و با امکانات بیشتری را برای بلاکچین ایجاد کنند.

    کاربرد C++ در مرورگرهای وب

    از آن‌جایی که هیچ‌کس دوست ندارد زمان زیادی منتظر لود شدن صفحات وب شود، مرورگرهای وب نیاز دارند که اجرای سریعی داشته باشند. به همین دلیل بیشتر مرورگرها برای استفاده از سرعت عالی C++ با استفاده از این زبان توسعه داده می‌شوند. به طور مثال مرورگر Mozilla Firefox به طور کامل با C++ توسعه یافته است. برنامه‌های گوگل مانند Chrome و Google File System نیز تا حدی با C++ نوشته شده‌اند.

    برنامه‌های بانکی

    برنامه‌های بانکی به مولتی تردینگ و عملکرد بالا نیاز دارند و از این جهت C++ را برای توسعه برنامه‌های خود انتخاب می‌کنند.به طور مثال Infosys Finacle یک برنامه بانکی محبوب است که با استفاده از C++ توسعه یافته است.

    پیش‌نیازهای یادگیری C++

    می‌توانید پیش از شروع یادگیری C++ به یادگیری زبان C بپردازید؛ چرا که به دلیل نزدیکی این دو زبان به یکدیگر و ساده‌تر بودن زبان C یادگیری آن برای ادامه راه به شما اعتماد به نفس می‌دهد. بنابراین اگر وقت دارید، ابتدا با زبان C شروع کنید و سپس به سراغ C++ بروید. اما دقت کنید که به طور کلی یادگیری C پیش نیازی برای یادگیری C++ نیست. پس این موضوع کاملاً به خود شما بستگی دارد.

    میزان استفاده برنامه‌نویسان از C++ چقدر است؟

    طبق آمار منتشر شده در وبسایت Statista در سال ۲۰۲۳، حدود ۲۲.۴۲ درصد توسعه‌دهندگان در جهان از C++ استفاده می‌کنند و این زبان در این لیست در جایگاه نهم و بالاتر از زبان‌هایی همچون C، PHP و Go می‌ایستد.

    بازار کار C++

    C++ هنوز یک زبان برنامه‌نویسی محبوب و با فرصت‌های شغلی فراوان در حوزه‌های مختلف است که تسلط روی آن می‌تواند در رسیدن یک توسعه‌دهنده به درآمدهای بالا بسیار موثر باشد. با وجود ظهور تعداد زیادی از زبان‌های برنامه‌نویسی، برخی از صنایع مانند صنعت توسعه بازی، محاسبات علمی، سیستم‌های تعبیه شده و غیره همچنان از C++ استفاده می‌کنند. همچنین بسیاری از سیستم‌ها مانند بانکداری و امور مالی به استخدام برنامه نویس C++ پرداخته و از این زبان برای مدیریت کارهای خود بهره می‌برند.

    حقوق سالانه یک توسعه‌دهنده C++ در آمریکا به طور میانگین ۱۱۸.۷۷۲ است که چیزی حدود ۲۰٪ بیشتر از میانگین متوسط حقوق در این کشور است. این موضوع می‌تواند مهر تاییدی بر بازار کار خوب C++ بوده و اثبات کند که این زبان در سال ۲۰۲۳ هنوز هم ارزش یادگیری دارد.