1. مقدمه

برنامه نویسی به مدل های الگوریتمی جهانی جدید نیاز دارد و سخت افزار الگوریتم ها را نه تنها به شکلی متفاوت، بلکه بر اساس مدل الگوریتمی دیگر - خودکار پیاده سازی می کند. وام گرفتن فناوری از توسعه سخت افزار، ایده کلیدی پشت برنامه نویسی خودکار است. با این حال، سنتز دستگاه های دیجیتالمتفاوت از برنامه نویسی اما با وام گرفتن مدل، از یک طرف، تغییر قابل توجهی مطلوب نیست، و از سوی دیگر، نمی توان تئوری و عمل برنامه نویسی موجود را در نظر گرفت.

در مرحله بعد، ما فناوری SWITCH را برای طراحی برنامه های خودکار در نظر خواهیم گرفت، که در آن شما همیشه با فرآیندهای مشابه مواجه می شوید. از یک طرف، او مدل را خیلی تغییر داد ماشین حالت، که در واقع آن را از محدوده تئوری اتوماتا خارج کرد. و از سوی دیگر مفاهیمی را وارد برنامه نویسی می کند که به سختی توسط برنامه نویسان درک می شوند و در برخی مواقع صرفاً زائد هستند، زیرا آنالوگ های آشناتری از تئوری برنامه ها و عمل برنامه نویسی وجود دارد.

به عنوان پایه ای برای بحث در مورد مشکلات برنامه نویسی خودکار، ما یک سخنرانی اخیر توسط Shalyto A.A. و مقالات "نرم افزار" او به تعریف پارادایم برنامه نویسی خودکار.

C++ (تلفظ c-plus-plus) یک زبان برنامه نویسی کامپایل شده، تایپ ایستا و همه منظوره است که می تواند برای ایجاد برنامه هایی با هر سطح از پیچیدگی استفاده شود.
بیش از 20 سال است که این زبان جزو سه زبان برنامه نویسی محبوب و پرتقاضا بوده است. (این را می توان با مراجعه به وب سایت TIOBE تأیید کرد).
این زبان در اوایل دهه 1980 سرچشمه گرفت، زمانی که کارمند آزمایشگاه بل، بیورن استروستروپ، تعدادی پیشرفت در زبان C برای نیازهای خود ارائه کرد.

Bjarne Stroustrup - خالق زبان C++

Stroustrup تصمیم گرفت زبان C را با ویژگی های موجود در زبان Simula گسترش دهد. زبان C که زبان پایه سیستم یونیکس است که رایانه‌های بل روی آن کار می‌کردند، سریع، دارای ویژگی‌های غنی و قابل حمل است. Stroustrup توانایی کار با کلاس ها و اشیاء را به آن اضافه کرد. در نتیجه، مشکلات مدل‌سازی عملی هم از نظر زمان توسعه (به دلیل استفاده از کلاس‌های شبیه به Simula) و هم از نظر زمان محاسبه (به دلیل سرعت C) قابل دسترسی بودند.
در اینجا نحوه بیان خود توسعه دهنده زبان آمده است:



در سال 1998 اولین استاندارد زبان معروف به C++98 توسط کمیته استاندارد منتشر شد. C++ برای برآوردن نیازهای مدرن به تکامل خود ادامه می دهد. یکی از گروه هایی که زبان C++ را توسعه می دهد و پیشنهاداتی را برای بهبود آن به کمیته استانداردسازی C++ ارسال می کند. تقویت کنید، که از جمله به بهبود قابلیت های زبان با افزودن ویژگی های فرابرنامه نویسی به آن می پردازد. آخرین استاندارد در سال 2017 منتشر شد و نام دارد C++17. استاندارد بعدی دیری نخواهد آمد و انتظار می رود در سال 2020 ظاهر شود.
هیچکس حقوق زبان C++ را ندارد، این زبان رایگان است. در مارس 2016، روسیه تاسیس شد گروه کاری WG21 C++. این گروه برای جمع آوری پیشنهادات برای استاندارد ++C، ارائه آنها به کمیته و دفاع از آنها در جلسات عمومی سازمان بین المللی استاندارد سازماندهی شد.
C++ یک زبان چند پارادایم است (از کلمه پارادایم - سبک نوشتن برنامه های کامپیوتری) که شامل طیف گسترده ای از سبک ها و فناوری های مختلف برنامه نویسی است. اغلب از آن به عنوان یک زبان شی گرا یاد می شود، اما، به طور دقیق، این مورد نیست. در فرآیند کار، توسعه دهنده در انتخاب ابزارها آزادی مطلق به دست می آورد تا مشکل حل شده با استفاده از یک یا روش دیگر تا حد امکان کارآمد حل شود. به عبارت دیگر، C++ برنامه نویس را مجبور نمی کند که تنها به یک سبک توسعه برنامه (مثلاً شی گرا) پایبند باشد.
C++ دارای یک کتابخانه استاندارد غنی است که شامل کانتینرها و الگوریتم های رایج، I/O، عبارات با قاعده، پشتیبانی از چند رشته و سایر ویژگی ها. ++C بر بسیاری از زبان‌های برنامه‌نویسی تأثیر گذاشته است، از جمله: Java، C#، D. از آنجایی که C++ متعلق به خانواده زبان‌های مبتنی بر نحو زبان C است، دیگر زبان‌های برنامه‌نویسی این خانواده به راحتی قابل تسلط هستند: JavaScript. ، PHP، Perl، Objective-C و بسیاری موارد دیگر. . و غیره، از جمله خود زبان مادر - C. ()
در طول مدت وجود آن، افسانه های پایدار در زبان C ++ جا افتاده است که به راحتی رد می شوند (اینجا را ببینید: قسمت 1 و قسمت 2)

تاریخچه زبان و انتشار استانداردها

1983

خالق زبان - بیورن استروستروپ، در آزمایشگاه بل، نسخه اولیه C++ را معرفی کرد ("C با کلاس ها")

1985

اولین نسخه تجاری C++، زبان نام مدرن به خود می گیرد

1986

انتشار اولین ویرایش از زبان برنامه نویسی C++، یک کتاب C++ نوشته بیورن استراستروپ

1998

استاندارد بین المللی زبان C++ تصویب شد: ISO/IEC 14882:1998 "Standard for the C++ Programming Language"

2003
2005

گزارش فنی کتابخانه 1 (TR1) منتشر شد. در حالی که به طور رسمی بخشی از استاندارد نیست، این گزارش افزونه هایی را برای کتابخانه استاندارد توصیف می کند که باید در آن گنجانده شود نسخه بعدیزبان C++

2011

انتشار یک استاندارد جدید - C++11 یا ISO/IEC 14882:2011. استاندارد جدیدشامل اضافاتی به هسته زبان و افزونه ای به کتابخانه استاندارد، از جمله بسیاری از TR1

2014

انتشار استاندارد C++14 ("استاندارد بین المللی ISO/IEC 14882:2014(E) زبان برنامه نویسی C++")؛ C++14 را می توان به عنوان یک پسوند کوچک از C++11 دید که عمدتاً شامل رفع اشکالات و بهبودهای جزئی است.

2017

انتشار استاندارد جدید C++1z (C++17) است. این استاندارد تغییرات و اضافات زیادی ایجاد کرده است. به عنوان مثال، STD شامل کتابخانه های استاندارد C11، سیستم فایل، بر اساس boost::filesystem، بخش بزرگی از کتابخانه آزمایشی TS I.

2020

C++20 نام غیر رسمی استاندارد ISO/IEC برای زبان برنامه نویسی C++ است که پس از C++17 انتظار می رود. پیش نویس استاندارد N4800.

فلسفه ++C

بیورن استراستروپ در طراحی و تکامل C++ (2007)، اصولی را که هنگام طراحی C++ دنبال می‌کرد (به صورت اختصار شده) شرح می‌دهد:

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

C و C++

نحو C++ از زبان C به ارث رسیده است. اگرچه به طور رسمی یکی از اصول C++ حفظ سازگاری با زبان C باقی مانده است، اما در واقع گروه های استانداردسازی این زبان ها با هم تعامل ندارند و تغییراتی که در آنها ایجاد می شود. نه تنها همبستگی ندارند، بلکه اغلب از نظر ایدئولوژیک نیز اساساً با یکدیگر در تضاد هستند. بنابراین، عناصری که استانداردهای جدید C به هسته اضافه می کنند، عناصر کتابخانه استاندارد در استاندارد C ++ هستند و به طور کلی در هسته وجود ندارند، به عنوان مثال، آرایه های پویا، آرایه هایی با مرزهای ثابت، امکانات پردازش موازی. استروستروپ معتقد است که ترکیب توسعه این دو زبان سود زیادی خواهد داشت، اما به دلایل سیاسی به سختی امکان پذیر است. بنابراین سازگاری عملی بین C و C++ به تدریج از بین خواهد رفت.
AT این مثالبسته به کامپایلر مورد استفاده، "C++" یا "C" خروجی خواهد شد:

برنامه 9.1

#عبارتند از int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); بازگشت 0؛ )

این به این دلیل است که ثابت های کاراکتر در C از نوع int و در C++ از نوع char هستند، اما اندازه این نوع ها متفاوت است.

مدل های چرخه عمر برنامه

چرخه زندگی نرم افزاردوره زمانی است که از لحظه تصمیم گیری در مورد نیاز به ایجاد شروع می شود محصول نرم افزاریو در لحظه خروج کامل آن از عملیات پایان می یابد. این چرخه فرآیند ساخت و توسعه نرم افزار (SW) است. چندین مدل وجود دارد چرخه زندگی.
مدل آبشاریچرخه زندگی (مدل آبشار انگلیسی) در سال 1970 توسط وینستون رویس پیشنهاد شد. اجرای متوالی تمام مراحل پروژه را به ترتیب کاملاً ثابت فراهم می کند. انتقال به مرحله بعدی به معنای تکمیل کامل کار در مرحله قبل است. الزامات تعریف شده در مرحله تولید نیازمندی ها کاملاً در فرم مستند شده است شرایط مرجعو در طول مدت پروژه ثابت می شوند. هر مرحله با انتشار به پایان می رسد مجموعه کاملمستندات کافی برای ادامه توسعه توسط تیم توسعه دیگری.
مراحل پروژه با توجه به مدل آبشار:

  1. تشکیل الزامات؛
  2. طرح؛
  3. پیاده سازی؛
  4. آزمایش کردن؛
  5. پیاده سازی؛
  6. عملیات و نگهداری.

در مدل آبشار، انتقال از یک فاز پروژه به فاز دیگر، صحت کامل نتیجه فاز قبلی را فرض می کند. در پروژه های بزرگ، دستیابی به این امر تقریبا غیرممکن است. بنابراین، چنین مدلی فقط برای توسعه یک پروژه کوچک مناسب است. (خود دبلیو رویس به این مدل پایبند نبود و از مدل تکراری استفاده کرد).
مدل تکراری
یک جایگزین برای مدل آبشار، مدل توسعه تکراری و افزایشی (IID) است که در دهه 70 از T. Gilb دریافت شد. نام مدل تکاملی مدل IID چرخه عمر یک پروژه را به مجموعه ای از تکرارها تقسیم می کند، که هر کدام شبیه یک پروژه کوچک است، که شامل تمام فرآیندهای توسعه اعمال شده برای ایجاد قطعات کوچکتر از عملکرد، در مقایسه با پروژه به عنوان یک کل است. هدف از هر تکرار، به دست آوردن یک نسخه کارآمد از سیستم نرم افزار، از جمله عملکرد تعریف شده توسط محتوای یکپارچه تمام تکرارهای قبلی و فعلی است. نتیجه تکرار نهایی شامل تمام عملکردهای مورد نیاز محصول است. بنابراین، با تکمیل هر تکرار، محصول یک افزایش - یک افزایش - به قابلیت های خود دریافت می کند، که بنابراین، به طور تکاملی توسعه می یابد.


انواع مختلفی از رویکرد تکراری در اکثر متدولوژی های توسعه مدرن اجرا می شود:

فرآیند توسعه - فرآیند یکپارچه منطقی (RUP)

فرآیند یکپارچه منطقی (RUP)(گویا فرآیند یکپارچه) یک متدولوژی توسعه نرم افزار است که توسط Rational Software (IBM) نگهداری می شود. این روش توصیه هایی را برای تمام مراحل توسعه ارائه می دهد: از مدل سازی کسب و کار گرفته تا آزمایش و راه اندازی برنامه نهایی. زبان مدل سازی یکپارچه (UML) به عنوان زبان مدل سازی استفاده می شود.
چرخه عمر کامل توسعه محصول شامل چهار مرحله است که هر مرحله شامل یک یا چند تکرار است.

  • مرحله اولیه (شروع)
  • تعیین محدوده پروژه و میزان منابع مورد نیاز. الزامات اصلی، محدودیت ها و عملکرد کلیدی محصول تعیین می شود. خطرات ارزیابی می شود. برنامه ریزی اقدام. در پایان مرحله آغازین، دستیابی به نقطه عطف هدف چرخه حیات ارزیابی می‌شود، که حاکی از توافق بین ذینفعان برای ادامه پروژه است.

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

  • ساخت و ساز
  • در مرحله "ساخت"، بیشتر قابلیت های محصول اجرا می شود: طراحی برنامه تکمیل شده است، منبعنوشته شده است. مرحله ساخت با اولین نسخه خارجی سیستم و نقطه عطف قابلیت عملیاتی اولیه به پایان می رسد.

  • پیاده سازی (انتقال)
  • در مرحله "پیاده سازی"، نسخه نهایی محصول ایجاد و از توسعه دهنده به مشتری منتقل می شود. این شامل یک برنامه آزمایش بتا، آموزش کاربر و تضمین کیفیت محصول است. در صورتی که کیفیت انتظارات کاربران یا معیارهای تعیین شده در مرحله شروع را برآورده نکند، مرحله پیاده سازی مجددا تکرار می شود. دستیابی به همه اهداف به معنای رسیدن به نقطه عطف محصول نهایی (انتشار محصول) و تکمیل چرخه توسعه کامل است.



« فناوری اطلاعات. مهندسی سیستم و نرم افزار. فرآیندهای چرخه زندگی ابزارهای نرم افزاری» . این استاندارد توسط آژانس فدرال مقررات فنی و مترولوژی فدراسیون روسیه پذیرفته شده است و مشابه استاندارد بین المللی ISO/IEC 12207:2008 است. این استاندارد، یک چارچوب کلی برای فرآیندهای چرخه عمر نرم افزار ایجاد می کند که می تواند به عنوان راهنمایی در صنعت نرم افزار استفاده شود. استاندارد ارائه نمی دهد مدل خاصچرخه زندگی. مفاد آن برای هر مدل چرخه عمر، روش ها و فناوری های ایجاد نرم افزار مشترک است. ساختار فرآیندهای چرخه عمر را بدون مشخص کردن نحوه پیاده سازی یا انجام فعالیت ها و وظایف موجود در این فرآیندها توصیف می کند.

ارائه برای درس
موضوعات پیام
  • بنیاد نرم افزار آزاد (FSF)
  • مجوزهای نرم افزار رایگان
  • نرم افزار آزاد و منبع باز
  • تاریخچه توسعه زبان های برنامه نویسی
  • تاریخچه C. C و C++
  • داستان
  • انتقاد از C++
  • تاریخچه یونیکس
  • مدل چرخه عمر نرم افزار مارپیچ
  • UML (زبان مدلسازی یکپارچه انگلیسی - زبان مدلسازی یکپارچه)
  • چارچوب راه حل های مایکروسافت
  • IDE برای برنامه نویسی C/C++ در ویندوز
  • کامپایلرهای C/C++
  • ایجاد یک برنامه کنسول در ویندوز
سوالات
  1. چرا از مدل توسعه نرم افزار آبشار در پروژه های بزرگ استفاده نمی شود؟
  2. تفاوت بین مدل های توسعه آبشار و تکراری چیست؟
  3. مراحل توسعه نرم افزار را در متدولوژی فرآیند یکپارچه منطقی (RUP) فهرست کنید

آموزش اصول و ظرافت های زبان برنامه نویسی C++. آموزش با وظایف عملیو تست ها آیا می خواهید برنامه نویسی را یاد بگیرید؟ سپس شما در مکان مناسب هستید - اینجا آموزش رایگانبرنامه نويسي. چه تجربه داشته باشید و چه نداشته باشید، این درس های برنامه نویسی به شما کمک می کند تا شروع به ایجاد، کامپایل و اشکال زدایی برنامه های C++ در محیط های مختلف توسعه کنید: استودیوی تصویری، کد:: بلوک ها، Xcode یا Eclipse.

مثال های فراوان و توضیحات مفصل. ایده آل برای هر دو مبتدی (قلمک) و پیشرفته تر. همه چیز از ابتدا تا ریزترین جزئیات توضیح داده شده است. این درس ها (200+) به شما پایه / پایه خوبی در درک برنامه نویسی نه تنها در C ++، بلکه در سایر زبان های برنامه نویسی می دهد. و کاملا رایگان است!

همچنین ایجاد گام به گام یک بازی در C ++، کتابخانه گرافیکی SFML و بیش از 50 کار را برای آزمایش مهارت ها و دانش شما در C ++ پوشش می دهد. یک امتیاز اضافه شده است.

برای بازنشر +20 به کارما و سپاسگزاری من!

فصل شماره 0. مقدمه. شروع کار

فصل شماره 1. مبانی C++

فصل شماره 2. متغیرها و انواع داده های پایه در C++

فصل شماره 3. اپراتورها در C++

فصل شماره 4. دامنه و انواع دیگر متغیرها در C++

فصل شماره 5. ترتیبی که کد در یک برنامه اجرا می شود. حلقه ها، شاخه ها در C++

کتابخانه استاندارد C/C++ شامل تعدادی عملکرد برای خواندن و نوشتن روی کنسول (صفحه کلید و مانیتور) است. این توابع داده ها را به عنوان یک جریان ساده از کاراکترها می خوانند و می نویسند.

مفهوم جریان (جریان) که در برنامه نویسی استفاده می شود، ارتباط نزدیکی با درک معمول و روزمره از این کلمه دارد. جریان ورودی را می توان با لوله ای مقایسه کرد که از طریق آن آب (اطلاعات) وارد استخر (حافظه رایانه) می شود، جریان خروجی - با لوله ای که از طریق آن آب از استخر خارج می شود. یکی از ویژگی های مهم این لوله این است که داده ها می توانند در یک زمان فقط در یک جهت حرکت کنند. حتی اگر از همان لوله برای ورودی و خروجی استفاده شود، نمی‌تواند همزمان اتفاق بیفتد: برای تغییر جهت جریان، باید آن را متوقف کنید، اقداماتی را انجام دهید و تنها پس از آن جریان را در جهت مخالف هدایت کنید. یکی دیگر از ویژگی های جریان این است که تقریباً هرگز خشک نمی شود. گاهی اوقات خشک می شود، اما اگر سیستم به طور معمول کار کند، این مدت نمی تواند طولانی باشد.

تابع خروجی استاندارد printf().

تابع printf() یک تابع خروجی استاندارد است. با این تابع می توانید یک رشته کاراکتر، یک عدد، یک مقدار متغیر را روی صفحه نمایشگر نمایش دهید ...

تابع printf() یک نمونه اولیه در فایل stdio.h دارد
int printf(char *control string, ...);

در صورت موفقیت آمیز بودن، تابع printf() تعداد کاراکترهای چاپ شده را برمی گرداند.

رشته کنترل شامل دو نوع اطلاعات است: کاراکترهایی که مستقیماً روی صفحه نمایش داده می شوند و مشخص کننده های قالب که نحوه خروجی آرگومان ها را تعیین می کنند.

تابع printf() یک تابع خروجی فرمت شده است. این بدان معنی است که در پارامترهای تابع لازم است فرمت داده هایی که باید خروجی شوند مشخص شود. فرمت داده ها توسط مشخص کننده های قالب مشخص می شود. مشخص کننده فرمت با یک % و سپس یک کد قالب شروع می شود.

مشخص کننده های قالب:

٪با نماد
%d عدد صحیح اعشاری
٪من عدد صحیح اعشاری
%e عدد اعشاری به شکل x.xx e+xx
%E عدد اعشاری به شکل x.xx E+xx
% f
%F ممیز شناور اعشاری xx.xxxx
% g %f یا %e هر کدام کوتاهتر باشد
%G %F یا %E هر کدام کوتاهتر باشد
%o عدد اکتال
%s رشته کاراکتر
%u عدد اعشاری بدون علامت
٪ایکس عدد هگزادسیمال
٪ایکس عدد هگزادسیمال
%% نماد ٪
٪پ اشاره گر
%n اشاره گر

علاوه بر این، اصلاح کننده های l و h را می توان برای دستورات فرمت اعمال کرد.

%ld چاپ طولانی int
%hu چاپ کوتاه بدون امضا
%Lf چاپ بلند دوبل

در مشخص کننده قالب، بعد از نماد %، دقت (تعداد ارقام بعد از نقطه اعشار) قابل تعیین است. دقت به صورت زیر تنظیم می شود: %n<код формата>. جایی که n تعداد ارقام بعد از نقطه اعشار و<код формата>- یکی از کدهای بالا

به عنوان مثال، اگر یک متغیر x=10.3563 از نوع float داشته باشیم و بخواهیم مقدار آن را با دقت 3 رقم اعشار نمایش دهیم، باید بنویسیم:

printf("متغیر x = %.3f",x);

نتیجه:
متغیر x = 10.356

همچنین می توانید حداقل عرض حاشیه را که باید چاپ شود را مشخص کنید. اگر رشته یا عدد بزرگتر از عرض فیلد مشخص شده باشد، رشته یا عدد به طور کامل چاپ می شود.

برای مثال، اگر بنویسید:

printf("%5d",20);

سپس نتیجه این خواهد بود:
20

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

مثلا:

printf("%05d",20);

نتیجه:
00020

علاوه بر مشخص‌کننده‌های قالب داده، رشته کنترل می‌تواند شامل کاراکترهای کنترلی باشد:

\b BS، ته چاله
\f صفحه جدید، ترجمه صفحه
\n خط جدید، خوراک خط
\r برگشت محموله
\ t زبانه افقی
\ v زبانه عمودی
\" نقل قول دوگانه
\" آپستروف
\\ بک اسلش
\0 کاراکتر پوچ، بایت پوچ
علامت
\ N ثابت هشتی
\xN ثابت هگزادسیمال
\? علامت سوال

اغلب از کاراکتر \n استفاده می کنید. با این کاراکتر کنترلی قادر خواهید بود به یک خط جدید بپرید. به نمونه برنامه ها نگاه کنید همه چیز را متوجه خواهید شد.

نمونه های برنامه

/* مثال 1 */
#عبارتند از

خالی اصلی (باطل)
{
int a,b,c; // آگهی متغیرهای a,b,c
a=5;
b=6;
c=9;
printf("a=%d، b=%d، c=%d",a,b,c);
}

نتیجه برنامه:
a=5، b=6، c=9

/* مثال 2 */
#عبارتند از

خالی اصلی (باطل)
{
شناور x,y,z;

X=10.5;
y=130.67;
z=54;

Printf("مختصات شیء: x:%.2f، y:%.2f، z:%.2f، x، y، z);
}

نتیجه برنامه:
مختصات شیء: x:10.50، y:130.67، z:54.00

/* مثال 3 */
#عبارتند از

void main()
{
intx;

X=5;
printf("x=%d"، x*2);
}

نتیجه برنامه:
x=10

/* مثال 4 */
#عبارتند از

خالی اصلی (باطل)
{
printf("\"متن در نقل قول\"");
printf("\nمیزان اکسیژن: 100%٪");
}

نتیجه برنامه:
"متن در گیومه"
میزان اکسیژن: 100%

/* مثال 5 */
#عبارتند از

خالی اصلی (باطل)
{
int a;

A=11; // 11 در اعشار برابر است با b در هگز
printf("a-dec=%d, a-hex=%X",a,a);
}

نتیجه برنامه:
a-dec=11، a-hex=b

/* مثال 6 */
#عبارتند از

خالی اصلی (باطل)
{
char ch1,ch2,ch3;

Ch1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ch1,ch2,ch3);
}

نتیجه برنامه:
ABC

/* مثال 7 */
#عبارتند از

خالی اصلی (باطل)
{
char *str="رشته من.";

Printf("این %s است"،str);
}

نتیجه برنامه:
این خط من است.

/* مثال 8 */
#عبارتند از

خالی اصلی (باطل)
{
printf("سلام!\n"); // پس از چاپ، یک خط جدید وجود خواهد داشت - \n
printf ("اسم من پل است."); // این در یک خط جدید چاپ خواهد شد
}

نتیجه برنامه:
سلام!
اسم من پاول است.

تابع ورودی استاندارد scanf().

تابع scanf() یک تابع ورودی فرمت شده است. با آن می توانید داده ها را از دستگاه ورودی استاندارد (صفحه کلید) وارد کنید. ورودی ها می توانند اعداد صحیح، اعداد ممیز شناور، کاراکترها، رشته ها و اشاره گرها باشند.

تابع scanf() دارای نمونه اولیه زیر در stdio.h است:
int scanf(char *control string);

تابع تعداد متغیرهایی را که یک مقدار به آنها اختصاص داده شده است برمی گرداند.

رشته کنترل شامل سه نوع کاراکتر است: مشخص کننده های قالب، فاصله ها و سایر کاراکترها. مشخص کننده های قالب با کاراکتر % شروع می شوند.

مشخص کننده های قالب:

هنگام وارد کردن یک رشته با استفاده از تابع scanf() (مشخص کننده فرمت %s)، رشته تا اولین فاصله وارد می شود!! آن ها اگر رشته "Hello world!" با استفاده از تابع scanf()


scanf("%s",str);

سپس پس از وارد کردن رشته به دست آمده، که در آرایه str ذخیره می شود، از یک کلمه "Hello" تشکیل می شود. تابع وارد یک رشته تا فضای اول می شود! اگر می خواهید رشته هایی را با فاصله وارد کنید، از تابع استفاده کنید

char *gets(char *buf);

با تابع gets() می توانید رشته های کامل را وارد کنید. تابع gets() کاراکترها را از صفحه کلید می خواند تا زمانی که یک کاراکتر ظاهر شود خط جدید(\n). وقتی کلید enter را فشار می دهید، خود کاراکتر خط جدید ظاهر می شود. تابع یک اشاره گر را به buf برمی گرداند. buf - بافر (حافظه) برای رشته ورودی.

اگرچه gets() خارج از محدوده این مقاله است، اجازه دهید یک برنامه مثال بنویسیم که به شما امکان می دهد یک خط کامل را از صفحه کلید وارد کنید و آن را روی صفحه نمایش دهید.

#عبارتند از

خالی اصلی (باطل)
{
charbuffer; // آرایه (بافر) برای رشته ورودی

دریافت (بافر)؛ // یک رشته را وارد کرده و enter را فشار دهید
printf("%s", buffer); // خروجی رشته وارد شده به صفحه نمایش
}

نکته مهم دیگر! برای وارد کردن داده ها با استفاده از تابع scanf() باید آدرس متغیرها را به عنوان پارامتر ارسال کنید و نه خود متغیرها را. برای به دست آوردن آدرس یک متغیر، قبل از نام متغیر & (امپرسند) قرار دهید. علامت & به معنای گرفتن آدرس است.

آدرس یعنی چی؟ سعی میکنم توضیح بدم در برنامه یک متغیر داریم. یک متغیر مقدار خود را در حافظه کامپیوتر ذخیره می کند. بنابراین آدرسی که با & دریافت می کنیم آدرسی در حافظه کامپیوتر است که مقدار متغیر در آن ذخیره می شود.

بیایید به یک برنامه مثال نگاه کنیم که به ما نشان می دهد چگونه از &

#عبارتند از

خالی اصلی (باطل)
{
intx;

Printf("متغیر x را وارد کنید:");
scanf("%d"،&x);
printf("متغیر x=%d",x);
}

حالا بیایید به خط کنترل تابع scanf() برگردیم. از نو:

int scanf(char *control string);

کاراکتر space در خط کنترل دستور می دهد که از یک یا چند فاصله در جریان ورودی رد شوید. علاوه بر یک فاصله، یک برگه یا کاراکتر خط جدید را می توان پذیرفت. یک کاراکتر غیر تهی نشان می دهد که آن کاراکتر را بخوانید و کنار بگذارید.

جداکننده های بین دو عدد ورودی عبارتند از نویسه های فاصله، تب یا خط جدید. * بعد از % و قبل از کد فرمت (مشخص کننده فرمت) دستور می دهد که داده های نوع مشخص شده را بخوانند، اما آن مقدار را تخصیص ندهند.

مثلا:

scanf("%d%*c%d"،&i،&j);

با تایپ 50+20 i روی 50، j روی 20 تنظیم می شود و + خوانده می شود و نادیده گرفته می شود.

دستور format می تواند بزرگترین پهنای فیلد را برای خواندن مشخص کند.

مثلا:

scanf("%5s",str);

خواندن 5 کاراکتر اول از جریان ورودی را مشخص می کند. اگر 1234567890ABC را وارد کنید، آرایه str فقط شامل 12345 می شود، بقیه کاراکترها نادیده گرفته می شوند. جداکننده ها: فاصله، برگه و خط جدید - هنگام وارد کردن یک کاراکتر، مانند سایر کاراکترها با آنها رفتار می شود.

اگر با هر کاراکتر دیگری در رشته کنترل مواجه شد، برای تعیین و رد شدن کاراکتر مربوطه در نظر گرفته شده است. 10plus20 کاراکتر جریان توسط اپراتور

scanf("%dplus%d"،&x،&y);

x را به 10، y را به 20 اختصاص می دهد و از کاراکترهای بعلاوه می گذرد زیرا در خط کنترل قرار دارند.

یکی از ویژگی های قدرتمند تابع scanf() امکان تعیین یک مجموعه اسکن (scanset) است. مجموعه جستجو مجموعه ای از کاراکترها را تعریف می کند که با آنها کاراکترهای خوانده شده توسط scanf() مقایسه می شوند. تابع scanf() تا زمانی که کاراکترها در مجموعه جستجو وجود دارند می خواند. هنگامی که کاراکتر وارد شده در مجموعه جستجو یافت نشد، تابع scanf() به فرمت مشخص کننده بعدی می رود. مجموعه جستجو با لیستی از کاراکترهای محصور در پرانتز تعریف می شود. قبل از پرانتز باز یک علامت % وجود دارد. بیایید با یک مثال به این موضوع نگاه کنیم.

#عبارتند از

خالی اصلی (باطل)
{
char str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
بیایید یک مجموعه کاراکتر وارد کنیم:
12345abcdefg456

در صفحه، برنامه نمایش داده می شود:
12345
abcdefg456

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

scanf("%10"، str1);

همچنین می توانید کاراکترهایی را تعریف کنید که در مجموعه جستجو نیستند. اولین مورد از این کاراکترها با علامت ^ جلوتر است. مجموعه کاراکترها بین حروف کوچک و بزرگ تمایز قائل می شود.

به شما یادآوری می کنم که هنگام استفاده از تابع scanf () باید آدرس متغیرها را به عنوان پارامتر به آن منتقل کنید. کد بالا نوشته شده بود:

charstr; // آرایه برای 80 کاراکتر
scanf("%s",str);

توجه داشته باشید که str قبل از & نیست. این به این دلیل است که str یک آرایه است و نام آرایه، str، نشانگر اولین عنصر آرایه است. بنابراین علامت & قرار نمی گیرد. در حال حاضر آدرس را به تابع scanf() می‌دهیم. خوب، به زبان ساده، str آدرسی در حافظه کامپیوتر است که مقدار اولین عنصر آرایه در آن ذخیره می شود.

نمونه های برنامه

مثال 1
این برنامه پرس و جو "چند ساله هستید؟:" را نمایش می دهد و منتظر ورودی می ماند. اگر مثلاً عدد 20 را وارد کنید، برنامه رشته "You are 20 years old" را نمایش می دهد. وقتی تابع scanf() را فراخوانی کردیم، پیشوند متغیر age را با & قرار دادیم، زیرا تابع scanf() به آدرس متغیرها نیاز دارد. تابع scanf() مقدار وارد شده را مطابق با آن می نویسد آدرس مشخص شده. در مورد ما، مقدار وارد شده 20 به آدرس متغیر سن نوشته می شود.

/* مثال 1 */

#عبارتند از

خالی اصلی (باطل)
{
بین سن

Printf("\nچند سالته؟:");
scanf("%d"،&age);
printf("شما %d سال دارید."، سن);
}

مثال 2
برنامه ماشین حساب. این ماشین حساب فقط می تواند اعداد را اضافه کند. اگر 100+34 را وارد کنید، برنامه نتیجه را برمی‌گرداند: 100+34=134.

/* مثال 2 */

#عبارتند از

خالی اصلی (باطل)
{
int x, y;

Printf("\nماشین حساب:");
scanf("%d+%d"، &x، &y);
printf("\n%d+%d=%d"، x، y، x+y);
}

مثال 3
این مثال نحوه تنظیم عرض فیلد خواندنی را نشان می دهد. در مثال ما، عرض فیلد پنج کاراکتر است. اگر رشته ای با کاراکترهای بیشتر وارد کنید، همه کاراکترهای بعد از 5 حذف می شوند. به فراخوانی تابع scanf() توجه کنید. علامت & قبل از نام آرایه نیست زیرا نام آرایه آدرس اولین عنصر آرایه است.

/* مثال 3 */

#عبارتند از

خالی اصلی (باطل)
{
نام شخصیت؛

Printf("\nنام کاربری خود را وارد کنید (حداکثر 5 کاراکتر):");
scanf("%5s"، name);
printf("\n%s را وارد کردید"، نام);
}

مثال 4
آخرین مثال در این مقاله نشان می دهد که چگونه می توانید از مجموعه جستجو استفاده کنید. پس از شروع برنامه، عددی از 2 تا 5 وارد کنید.

/* مثال 4 */

#عبارتند از

خالی اصلی (باطل)
{
چاربال;

Printf("امتیاز شما 2،3،4،5 است:");
scanf("%"، &bal);
printf("\nامتیاز %c"، bal);
}

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

انواع برنامه

برای برقراری ارتباط موثر با کامپیوتر، که دقیقاً همان چیزی است که می خواهیم، ​​طیف گسترده ای از زبان های برنامه نویسی وجود دارد.

بسته به نوع پروژه، فاکتورهای زیادی برای انتخاب زبان برنامه نویسی وجود دارد. در اینجا لیستی از مهمترین عوامل ذکر شده است:

تالیف، تفسیر و تدوین JIT

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

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

و در نهایت، به اصطلاح کامپایل on-the-fly (یا کامپایل JIT). چنین زبان هایی به سرعت در هنگام اجرای برنامه کامپایل می شوند. برنامه هایی که به زبان های JIT نوشته شده اند، به عنوان یک قاعده، بهینه نمی شوند، در نتیجه روند کامپایل را سرعت می بخشد و تعادل بین عملکرد و کراس پلتفرم را بازیابی می کند.

سطوح برنامه نویسی بالا یا پایین

زبان های سطح پایین عمدتاً مستقیماً با سخت افزار کار می کنند و بنابراین برای نوشتن درایورهای دستگاه مناسب هستند. درایورها برنامه هایی هستند که سخت افزار را کنترل می کنند و به طور مستقیم به آن دسترسی دارند. با این حال، برنامه ای که به زبان سطح پایین نوشته شده است، معمولاً به سختی به پلتفرم های دیگر منتقل می شود. و بنابراین، برای هر سیستم عامل، همان دستگاه با درایورهای مختلف ارائه می شود. زبان های برنامه نویسی سطح پایین تقریبا همیشه کامپایل می شوند.

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

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

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

سیستم نوع داده قوی یا ضعیف

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

// نمونه برنامه C++ #include با استفاده از namespace std. int main()( char string = "مثال"؛ int number = 5؛ cout<< string * number << endl; // умножаем строку на число }

در نتیجه، کامپایلر یک خطا را گزارش خواهد کرد:

خطا: عملوندهای نامعتبر از انواع 'char' و 'int' به 'operator*' باینری

ما سعی خواهیم کرد همین کار را در یک زبان برنامه نویسی بدون تایپ - php انجام دهیم. توجه داشته باشید که حتی هنگام اعلان متغیرها، نیازی به تعیین نوع داده نیست.

نتیجه اجرای این کد صفر خواهد بود. هیچ خطایی رخ نخواهد داد، اگرچه به نظر می رسد که ضرب رشته در یک عدد غیرممکن است. اما در php همه چیز امکان پذیر است. کامپایلر زبان php خطایی را گزارش نمی دهد، اسکریپت کار می کند و حتی نتیجه را می دهد و اگر برنامه ما از 1000 خط کد تشکیل شده باشد، پیدا کردن این خطا برای ما دشوار خواهد بود. این نمونه بارز یک زبان برنامه نویسی با "سیستم نوع داده ضعیف" است، یعنی جلوگیری از چنین عملیات پوچ کاملاً بر دوش برنامه نویس است.

نوع داده تعریف شده یا تعریف نشده

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

نوع داده ایستا یا پویا

اگر زبان به صورت ایستا تایپ شده باشد، کامپایلر/مفسر آن را یک بار قبل از فرآیند کامپایل/تفسیر بررسی می کند. اگر نوع داده پویا باشد، انواع داده ها در زمان اجرا بررسی می شوند.

سیستم نوع داده ایمن یا ناامن

موقعیت هایی وجود دارد که می تواند منجر به یک نتیجه غیرقابل پیش بینی یا یک خطا شود. یک زبان ایمن تا حد امکان محدودیت‌های زیادی را برای اطمینان از عدم بروز چنین موقعیت‌هایی ایجاد می‌کند. در حالی که یک زبان ناامن تمام مسئولیت را بر عهده برنامه نویس می گذارد.

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

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

پارادایم های برنامه نویسی متدولوژی ها یا روش های برنامه نویسی هستند که یک زبان برنامه نویسی از آنها پشتیبانی می کند. در اینجا لیستی از پارادایم های اصلی آمده است:

پارادایم اظهاری

یک زبان برنامه نویسی اعلامی بیشتر بر روی هدف تمرکز می کند تا ابزار رسیدن به آن هدف. کافی است نشان دهیم که چه چیزی باید به دست آید، لازم نیست نشان دهیم از چه ابزاری استفاده کنیم. این پارادایم از عوارض جانبی ناخواسته ای که ممکن است هنگام نوشتن کد شما رخ دهد جلوگیری می کند.

پارادایم عملکردی

برنامه نویسی تابعی زیرمجموعه ای از برنامه نویسی اعلامی است که سعی در حل مسائل از نظر معادلات و توابع ریاضی دارد. برنامه نویسی تابعی، بر خلاف زبان های امری، متغیرها و اشیاء را به عنوان داده هایی که به اشتراک گذاشته نمی شوند، در نظر می گیرد.

پارادایم تعمیم یافته

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

پارادایم ضروری

زبان‌های امری به برنامه‌نویسان اجازه می‌دهند تا فهرستی منظم از دستورالعمل‌های لازم برای تکمیل یک کار را به رایانه بدهند. زبان های برنامه نویسی امری با زبان های برنامه نویسی اعلانی مخالف هستند.

پارادایم ساختاری

هدف زبان های برنامه نویسی ساختاری ارائه نوعی کد - یک ساختار سلسله مراتبی است. هنگامی که ساختار کد به وضوح قابل مشاهده است، ترتیب اجرای دستورات بصری می شود. چنین زبان‌هایی معمولاً برای «پریدن» از یک کد به کد دیگر، مانند عملگر معروف goto که در C و C++ تعریف شده است، اخم می‌کنند.

پارادایم رویه ای

زبان برنامه نویسی رویه ای به زبان برنامه نویسی ساخت یافته ای اطلاق می شود که از مفهوم رویه یا زیر روال پشتیبانی می کند.

پارادایم شی گرا

برنامه نویسی شی گرا (گاهی اوقات به اختصار OOP نامیده می شود) زیرمجموعه ای از برنامه نویسی ساخت یافته است که برنامه ها را بر حسب "اشیاء" بیان می کند. این پارادایم امکان استفاده مجدد از کد را فراهم می کند و به راحتی قابل درک است.

استاندارد سازی

آیا زبان ها استاندارد رسمی دارند؟ استانداردسازی برای اطمینان از درک بدون تعارض برنامه توسط کامپایلرها/مفسران مختلف بسیار مهم است. برخی از زبان ها توسط موسسه استاندارد ملی آمریکا (ANSI) استاندارد شده اند، برخی دیگر توسط سازمان بین المللی استاندارد (ISO) استاندارد شده اند. همه زبان های برنامه نویسی باید استاندارد باشند، در غیر این صورت نمی توان در مورد اینکه چه چیزی در نحو درست است و چه چیزی اشتباه است، توافق کرد.

بیایید زبان برنامه نویسی C++ را مشخص کنیم

اکنون که ویژگی های اصلی زبان های برنامه نویسی را بررسی کردیم، بیایید مشخص کنیم که زبان برنامه نویسی C++ چه عواملی را برآورده می کند.

C++ یک زبان برنامه نویسی استاندارد ISO است.

برای مدتی، C++ استاندارد رسمی نداشت، اما از سال 1998، C++ توسط کمیته ISO استاندارد شده است.

زبان کامپایل شده C++

C++ مستقیماً روی کد ماشین کامپایل می‌شود و آن را به یکی از سریع‌ترین زبان‌ها در جهان تبدیل می‌کند.

C++ یک زبان قوی تایپ شده است.

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

C++ از انواع داده های ایستا و پویا پشتیبانی می کند.

بنابراین، بررسی نوع داده را می توان در زمان کامپایل یا در زمان اجرا انجام داد. و این یک بار دیگر انعطاف پذیری C ++ را ثابت می کند.

C++ از بسیاری از پارادایم ها پشتیبانی می کند.

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

C++ یک زبان برنامه نویسی قابل حمل است.

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

C++ کاملاً با زبان C سازگار است

در C++ می توانید از کتابخانه های C استفاده کنید و آنها به درستی کار خواهند کرد.