§1 معلومات عامة عن اللغة. مراحل تصميم البرنامج

تتضمن المكتبة القياسية C / C ++ عددًا من الوظائف للقراءة والكتابة على وحدة التحكم (لوحة المفاتيح والشاشة). تقوم هذه الوظائف بقراءة وكتابة البيانات كتدفق بسيط من الأحرف.

يرتبط مفهوم الدفق (الدفق) ، المستخدم في البرمجة ، ارتباطًا وثيقًا بالفهم اليومي المعتاد للكلمة. يمكن مقارنة تدفق الإدخال بأنبوب يدخل من خلاله الماء (المعلومات) إلى البركة (ذاكرة الكمبيوتر) ، وتدفق الإخراج - بأنبوب يخرج من خلاله الماء البركة. من السمات المهمة لهذا الأنبوب أن البيانات لا يمكن أن تتحرك إلا في اتجاه واحد في كل مرة. حتى إذا تم استخدام نفس الأنبوب للمدخل والمخرج ، فلا يمكن أن يحدث هذا في نفس الوقت: لتبديل اتجاه التدفق ، يجب إيقافه ، ويجب تنفيذ بعض الإجراءات ، وعندها فقط يجب توجيه التدفق في الاتجاه المعاكس . ميزة أخرى للتيار هي أنه لا يجف أبدًا. يجف أحيانًا ، لكن لا يمكن أن تكون هذه الفترة طويلة إذا كان النظام يعمل بشكل طبيعي.

وظيفة الإخراج القياسية printf ()

وظيفة printf () هي وظيفة إخراج قياسية. باستخدام هذه الوظيفة ، يمكنك عرض سلسلة أحرف ورقم وقيمة متغيرة ...

دالة printf () لها نموذج أولي في ملف stdio.h
int printf (char * control string، ...) ؛

إذا نجحت ، تقوم وظيفة printf () بإرجاع عدد الأحرف المطبوعة.

تحتوي سلسلة التحكم على نوعين من المعلومات: الأحرف ، التي يتم طباعتها مباشرة على الشاشة ، ومحددات التنسيق ، التي تحدد كيفية عرض الوسائط.

وظيفة printf () هي وظيفة إخراج منسقة. هذا يعني أنه في معلمات الوظيفة ، يجب عليك تحديد تنسيق البيانات التي سيتم إخراجها. تتم الإشارة إلى تنسيق البيانات بواسطة محددات التنسيق. يبدأ محدد التنسيق بحرف٪ متبوعًا بكود تنسيق.

محددات التنسيق:

٪مع رمز
٪ د عدد صحيح عشري
٪ أنا عدد صحيح عشري
٪ ه رقم عشري بالصيغة x.xx e + xx
٪ هـ رقم عشري بالصيغة x.xx E + xx
٪ F
٪ F xx.xxxx الفاصلة العشرية
٪ ز ٪ f أو٪ e ، أيهما أقصر
٪ ز ٪ F أو٪ E ، أيهما أقصر
٪ س رقم ثماني
٪ س سلسلة أحرف
٪ u رقم عشري بدون إشارة
٪ x رقم سداسي عشري
٪ X رقم سداسي عشري
%% رمز ٪
٪ ص المؤشر
٪ ن المؤشر

بالإضافة إلى ذلك ، يمكن تطبيق المعدلات l و h على أوامر التنسيق.

٪ ld طباعة كثيفة طويلة
٪ هو طباعة قصيرة بدون توقيع
٪ Lf طباعة مزدوجة طويلة

في محدد التنسيق ، يمكن تحديد الدقة (عدد الأرقام بعد الفاصلة العشرية) بعد رمز٪. تم تعيين الدقة على النحو التالي:٪ .n<код формата>... حيث n هو عدد الأرقام بعد الفاصلة العشرية ، و<код формата>- أحد الرموز المذكورة أعلاه.

على سبيل المثال ، إذا كان لدينا متغير x = 10.3563 من النوع float وأردنا عرض قيمته بدقة تصل إلى 3 أرقام بعد الفاصلة العشرية ، فعلينا كتابة:

printf ("المتغير x =٪ .3f" ، x) ؛

نتيجة:
المتغير س = 10.356

يمكنك أيضًا تحديد الحد الأدنى للهامش القابل للطباعة. إذا كان السطر أو الرقم أكبر من عرض الحقل المحدد ، فستتم طباعة السطر أو الرقم بالكامل.

على سبيل المثال ، إذا كتبت:

printf ("٪ 5d" ، 20) ؛

ثم ستكون النتيجة كالتالي:
20

لاحظ أن الرقم 20 لم تتم طباعته من بداية السطر. إذا كنت تريد ملء المساحات غير المستخدمة في الحقل بالأصفار ، فأنت بحاجة إلى وضع الحرف 0 أمام عرض الحقل.

على سبيل المثال:

printf ("٪ 05d" ، 20) ؛

نتيجة:
00020

بالإضافة إلى محددات تنسيق البيانات ، يمكن أن تحتوي سلسلة التحكم على أحرف تحكم:

\ ب BS ، قاع البئر
\ F صفحة جديدة ، ترجمة الصفحة
\ ن خط جديد ، خط تغذية
\ r إرجاع
\ t مساحة أفقية
\ الخامس علامة تبويب عمودية
\" اقتباس مزدوج
\" الفاصلة العليا
\\ شرطة مائلة للخلف
\0 حرف فارغ ، بايت فارغ
\ أ الإشارة
\ ن ثابت ثماني
\ xN ثابت سداسي عشري
\? علامة استفهام

في أغلب الأحيان سوف تستخدم \ n الشخصية. باستخدام شخصية التحكم هذه ، ستتمكن من تغذية الخطوط. انظر إلى نماذج البرامج وسوف تفهم كل شيء.

أمثلة على البرامج.

/ * مثال 1 * /
#تضمن

باطل رئيسي (باطل)
{
إنت أ ، ب ، ج ؛ // بيان المتغيرات أ ، ب ، ج
أ = 5 ؛
ب = 6 ؛
ج = 9 ؛
printf ("a =٪ d ، b =٪ d ، c =٪ d" ، أ ، ب ، ج) ؛
}

نتيجة البرنامج:
أ = 5 ، ب = 6 ، ج = 9

/ * المثال 2 * /
#تضمن

باطل رئيسي (باطل)
{
تعويم x ، y ، z ؛

س = 10.5 ؛
ص = 130.67 ؛
ض = 54 ؛

Printf ("إحداثيات الكائن: x:٪. 2f، y:٪. 2f، z:٪. 2f"، x، y، z)؛
}

نتيجة البرنامج:
إحداثيات الكائن: x: 10.50 ، y: 130.67 ، z: 54.00

/ * المثال 3 * /
#تضمن

باطل رئيسي ()
{
كثافة العمليات × ؛

س = 5 ؛
printf ("x =٪ d" ، x * 2) ؛
}

نتيجة البرنامج:
س = 10

/ * المثال 4 * /
#تضمن

باطل رئيسي (باطل)
{
printf ("\" نص بين علامتي اقتباس \ "")؛
printf ("\ n محتوى الأكسجين: 100 ٪٪") ؛
}

نتيجة البرنامج:
"نص بين علامتي اقتباس"
محتوى الأكسجين: 100٪

/ * المثال 5 * /
#تضمن

باطل رئيسي (باطل)
{
الباحث أ ؛

أ = 11 ؛ // 11 عشري يساوي ب سداسي عشري
printf ("a-dec =٪ d ، a-hex =٪ X" ، a ، a) ؛
}

نتيجة البرنامج:
a-dec = 11 ، a-hex = ب

/ * المثال 6 * /
#تضمن

باطل رئيسي (باطل)
{
شار ch1 ، ch2 ، ch3 ؛

Ch1 = "A" ؛
ch2 = "ب" ؛
ch3 = "C" ؛

Printf ("٪ c٪ c٪ c" ، ch1 ، ch2 ، ch3) ؛
}

نتيجة البرنامج:
ABC

/ * المثال 7 * /
#تضمن

باطل رئيسي (باطل)
{
char * str = "سلسلتي" ؛

Printf ("هذا هو٪ s" ، str) ؛
}

نتيجة البرنامج:
هذا هو الخط الخاص بي.

/ * المثال 8 * /
#تضمن

باطل رئيسي (باطل)
{
printf ("Hello! \ n") ؛ // بعد الطباعة ، سيكون هناك سطر جديد - \ n
printf ("اسمي Pavel.") ؛ // ستتم طباعة هذا على سطر جديد
}

نتيجة البرنامج:
مرحبا!
اسمي بافل.

Scanf () وظيفة الإدخال القياسية

وظيفة scanf () هي وظيفة إدخال منسقة. بمساعدتها ، يمكنك إدخال البيانات من جهاز إدخال قياسي (لوحة المفاتيح). يمكن أن تكون بيانات الإدخال أعدادًا صحيحة وأرقام فاصلة عائمة وأحرفًا وسلاسل ومؤشرات.

تحتوي وظيفة scanf () على النموذج الأولي التالي في ملف stdio.h:
int scanf (سلسلة char * control) ؛

ترجع الدالة عدد المتغيرات التي تم تخصيص قيمة لها.

تحتوي سلسلة التحكم على ثلاثة أنواع من الأحرف: محددات التنسيق ، والمسافات ، والأحرف الأخرى. تبدأ محددات التنسيق بحرف٪.

محددات التنسيق:

عند إدخال سلسلة باستخدام الدالة scanf () (محدد التنسيق٪ s) ، يتم إدخال السلسلة قبل المسافة الأولى !! أولئك. إذا قمت بإدخال السطر "Hello world!" باستخدام وظيفة scanf ()


scanf ("٪ s" ، str) ؛

ثم بعد الإدخال ، ستتكون السلسلة الناتجة ، والتي سيتم تخزينها في مصفوفة str ، من كلمة واحدة "Hello". الوظيفة تدخل خطًا قبل الفضاء الأول! إذا كنت تريد إدخال سطور بها مسافات ، فاستخدم الوظيفة

char * يحصل (char * buf) ؛

باستخدام وظيفة gets () ، يمكنك إدخال سلاسل كاملة. تقوم وظيفة gets () بقراءة الأحرف من لوحة المفاتيح حتى يظهر حرف سطر جديد (\ n). يظهر حرف السطر الجديد نفسه عند الضغط على مفتاح الإدخال. تقوم الوظيفة بإرجاع مؤشر إلى buf. buf هو مخزن مؤقت (ذاكرة) لسلسلة الإدخال.

على الرغم من أن get () خارج نطاق هذه المقالة ، فلنكتب نموذجًا لبرنامج يسمح لك بإدخال سطر كامل من لوحة المفاتيح وعرضه على الشاشة.

#تضمن

باطل رئيسي (باطل)
{
شار العازلة // مجموعة (عازلة) لسلسلة الإدخال

يحصل (عازلة) ؛ // أدخل سطرًا واضغط على Enter
printf ("٪ s" ، المخزن المؤقت) ؛ // عرض السطر الذي تم إدخاله على الشاشة
}

ملاحظة مهمة أخرى! لإدخال البيانات باستخدام وظيفة scanf () ، تحتاج إلى تمرير عناوين المتغيرات إليها كمعلمات ، وليس المتغيرات نفسها. للحصول على عنوان المتغير ، تحتاج إلى وضع علامة & (علامة العطف) أمام اسم المتغير. تعني العلامة & أخذ عنوان.

ماذا يعني العنوان؟ سأحاول أن أشرح. لدينا متغير في البرنامج. المتغير يخزن قيمته في ذاكرة الكمبيوتر. لذا فإن العنوان الذي نحصل عليه مع & هو العنوان الموجود في ذاكرة الكمبيوتر حيث يتم تخزين قيمة المتغير.

دعنا نلقي نظرة على نموذج برنامج يوضح لنا كيفية استخدام &

#تضمن

باطل رئيسي (باطل)
{
كثافة العمليات × ؛

Printf ("أدخل المتغير x:")؛
scanf ("٪ d" ، & x) ؛
printf ("المتغير x =٪ d" ، x) ؛
}

الآن دعنا نعود إلى خط التحكم scanf (). تكرارا:

int scanf (سلسلة char * control) ؛

يرشد حرف المسافة في سطر التحكم إلى تخطي مسافة واحدة أو أكثر في تدفق الإدخال. بالإضافة إلى المسافة ، يمكن إدراك علامة تبويب أو حرف سطر جديد. يشير الحرف غير الصفري إلى قراءة هذه الشخصية وتجاهلها.

المحددات بين رقمين تم إدخالهما هي مسافة أو علامة تبويب أو سطر جديد. يرشد الرمز * بعد٪ وقبل رمز التنسيق (محدد التنسيق) إلى قراءة البيانات من النوع المحدد ، ولكن لا يتم تعيين هذه القيمة.

على سبيل المثال:

scanf ("٪ d٪ * c٪ d" ، & i ، & j) ؛

سيؤدي كتابة 50 + 20 إلى تعيين i على 50 ، و j على 20 ، وسيتم قراءة + وتجاهلها.

يمكن لأمر التنسيق تحديد أكبر عرض للحقل ليتم قراءته.

على سبيل المثال:

scanf ("٪ 5s" ، str) ؛

يشير إلى ما إذا كان سيتم قراءة الأحرف الخمسة الأولى من تدفق الإدخال. إذا أدخلت 1234567890ABC ، ​​فسيحتوي مصفوفة str فقط على 12345 ، وسيتم تجاهل باقي الأحرف. الفواصل: المسافة وعلامة الجدولة والسطر الجديد - عند كتابتها ، تتم معاملتها مثل جميع الأحرف الأخرى.

إذا تم العثور على أي أحرف أخرى في سلسلة التحكم ، فإن الغرض منها هو تحديد وتخطي الحرف المقابل. تيار من الأحرف 10plus20 من قبل المشغل

scanf ("٪ dplus٪ d"، & x، & y) ؛

سيعين x على 10 ، y إلى 20 ، ويتخطى أحرف الجمع لأنها تظهر في سطر التحكم.

إحدى الميزات القوية لوظيفة scanf () هي القدرة على تحديد مجموعة مسح ضوئي. تحدد مجموعة البحث مجموعة الأحرف التي ستتم مقارنة الأحرف التي تقرأها وظيفة scanf (). تقوم وظيفة scanf () بقراءة الأحرف طالما أنها تظهر في مجموعة البحث. بمجرد أن لا يظهر الحرف الذي تم إدخاله في مجموعة البحث ، ينتقل scanf () إلى محدد التنسيق التالي. يتم تحديد مجموعة عمليات البحث من خلال قائمة من الأحرف محاطة بأقواس مربعة. قوس مفتوح مسبوق بعلامة٪. دعونا نلقي نظرة على هذا بمثال.

#تضمن

باطل رئيسي (باطل)
{
شار str1 ، str2 ؛
scanf ("٪٪ s" ، str1 ، str2) ؛
printf ("\ n٪ s \ n٪ s"، str1، str2) ؛
}
دعنا نقدم مجموعة من الرموز:
12345abcdefg456

سيعرض البرنامج على الشاشة:
12345
abcdefg456

عند تحديد مجموعة من عمليات البحث ، يمكنك أيضًا استخدام حرف الواصلة لتحديد التباعد ، بالإضافة إلى الحد الأقصى لعرض حقل الإدخال.

scanf ("٪ 10" ، str1) ؛

يمكنك أيضًا تحديد الأحرف التي لم يتم تضمينها في مجموعة البحث. أول هذه الأحرف يسبقه ^. مجموعة الأحرف تميز بين الأحرف الصغيرة والكبيرة.

دعني أذكرك أنه عند استخدام وظيفة scanf () ، تحتاج إلى تمرير عناوين المتغيرات إليها كمعلمات. تمت كتابة الكود أعلاه:

شارع شار // مجموعة من 80 حرفًا
scanf ("٪ s" ، str) ؛

لاحظ أن str لا يسبقه &. هذا لأن str مصفوفة ، واسم المصفوفة ، str ، هو مؤشر للعنصر الأول من المصفوفة. لذلك ، لا يتم استخدام العلامة &. لقد قمنا بالفعل بتمرير العنوان إلى scanf (). حسنًا ، ببساطة ، str هو العنوان الموجود في ذاكرة الكمبيوتر حيث سيتم تخزين قيمة العنصر الأول من المصفوفة.

أمثلة على البرامج.

مثال 1.
يعرض هذا البرنامج الاستعلام "كم عمرك؟:" وينتظر إدخال البيانات. على سبيل المثال ، إذا قمت بإدخال الرقم 20 ، فسيعرض البرنامج السطر "أنت تبلغ من العمر 20 عامًا." عند استدعاء الدالة scanf () ، نضع العلامة & أمام متغير العمر ، نظرًا لأن وظيفة scanf () تحتاج إلى عناوين المتغيرات. ستكتب وظيفة scanf () القيمة المدخلة إلى العنوان المحدد. في حالتنا ، ستتم كتابة القيمة المدخلة 20 على عنوان العمر المتغير.

/ * مثال 1 * /

#تضمن

باطل رئيسي (باطل)
{
عمر int

Printf ("\ n كم عمرك؟:")؛
scanf ("٪ d" ، & العمر) ؛
printf ("عمرك٪ d سنة."، العمر)؛
}

مثال 2.
برنامج الآلة الحاسبة. يمكن لهذه الآلة الحاسبة إضافة أرقام فقط. إذا أدخلت 100 + 34 ، فسيعطي البرنامج النتيجة: 100 + 34 = 134.

/ * المثال 2 * /

#تضمن

باطل رئيسي (باطل)
{
int x ، y ؛

Printf ("\ n آلة حاسبة:")؛
scanf ("٪ d +٪ d" ، & x ، & y) ؛
printf ("\ n٪ d +٪ d =٪ d" ، س ، ص ، س + ص) ؛
}

مثال 3.
يوضح هذا المثال كيفية ضبط عرض القراءة. في مثالنا ، عرض الحقل هو خمسة أحرف. إذا أدخلت سلسلة بها عدد كبير من الأحرف ، فسيتم تجاهل كل الأحرف بعد الخامس. لاحظ استدعاء وظيفة scanf (). لا تسبق العلامة & اسم الصفيف لأن اسم الصفيف هو عنوان العنصر الأول في المصفوفة.

/ * المثال 3 * /

#تضمن

باطل رئيسي (باطل)
{
اسم شار

Printf ("\ n أدخل اسم المستخدم الخاص بك (لا يزيد عن 5 أحرف):")؛
scanf ("٪ 5s" ، الاسم) ؛
printf ("\ n لقد أدخلت٪ s" ، الاسم) ؛
}

مثال 4.
يوضح المثال الأخير في هذه المقالة كيف يمكنك استخدام عمليات بحث متعددة. بعد بدء البرنامج ، أدخل رقمًا من 2 إلى 5.

/ * المثال 4 * /

#تضمن

باطل رئيسي (باطل)
{
شار بال

Printf ("تقييمك هو 2،3،4،5:") ؛
scanf ("٪" ، & بال) ؛
printf ("\ n التقييم٪ c" ، بال) ؛
}

1 المقدمة

تحتاج البرمجة إلى نماذج خوارزمية عالمية جديدة ، وتقوم الأجهزة بتنفيذ خوارزميات ليس فقط في شكل مختلف ، ولكن أيضًا على أساس نموذج خوارزمي آخر - نموذج آلي. إن اقتراض التكنولوجيا من مجال تطوير الأجهزة هو الفكرة الأساسية لبرمجة الأوتوماتا. ومع ذلك ، فإن تركيب الأجهزة الرقمية يختلف عن البرمجة. لكن ، باستعارة النموذج ، من ناحية ، ليس من المرغوب فيه تغييره بشكل كبير ، ومن ناحية أخرى ، لا يمكن للمرء أن يتجاهل النظرية والممارسة القائمة بالفعل للبرمجة.

بعد ذلك ، سننظر في تقنية SWITCH لتصميم البرامج القائمة على التشغيل الآلي ، والتي تصادف فيها مثل هذه العمليات طوال الوقت. من ناحية ، غيرت نموذج آلة الحالة بطريقة جعلته في الواقع خارج نطاق نظرية الأوتوماتا. من ناحية أخرى ، فإنه يقدم مفاهيم البرمجة التي يصعب على المبرمجين إدراكها ، وفي بعض الأحيان ، تكون ببساطة غير ضرورية. هناك نظائر مألوفة أكثر من نظرية البرنامج وممارسة البرمجة.

كأساس لمناقشة مشاكل برمجة الأتمتة ، دعونا نلقي محاضرة أخيرة لـ A.A. Shalyto. ومقالاته "البرمجية" حول تعريف نموذج البرمجة الآلي.

هذه الدروس متاحة للجميع ، سواء كنت جديدًا في البرمجة أو لديك خبرة واسعة في البرمجة بلغات أخرى! هذه المادة مخصصة لأولئك الذين يرغبون في تعلم لغات C / C ++ من أسسها إلى الهياكل الأكثر تعقيدًا.

C ++ هي لغة برمجة ، ستسمح لك معرفة لغة البرمجة هذه بالتحكم في جهاز الكمبيوتر الخاص بك على أعلى مستوى. من الناحية المثالية ، يمكنك جعل الكمبيوتر يفعل ما تريد. سيساعدك موقعنا في إتقان لغة البرمجة C ++.

التثبيت / IDE

أول شيء يجب عليك فعله قبل البدء في تعلم C ++ هو التأكد من أن لديك IDE - بيئة تطوير متكاملة (البرنامج الذي ستقوم بالبرمجة فيه). إذا لم يكن لديك IDE ، فهذا هو المكان المناسب لك. بمجرد أن تقرر IDE ، قم بتثبيته وتدرب على إنشاء مشاريع بسيطة.

مقدمة في لغة سي ++

C ++ عبارة عن مجموعة من الأوامر التي تخبر الكمبيوتر بما يجب القيام به. تسمى هذه المجموعة من الأوامر عادةً التعليمات البرمجية المصدر أو التعليمات البرمجية فقط. الأوامر إما "وظائف" أو "كلمات أساسية". الكلمات الرئيسية (الكلمات المحجوزة C / C ++) هي اللبنات الأساسية للغة. الدوال هي لبنات بناء معقدة لأنها مكتوبة من حيث وظائف أبسط - سترى هذا في برنامجنا الأول ، والذي يظهر أدناه. يشبه هيكل الوظائف محتوى الكتاب. يمكن أن يظهر جدول المحتويات فصول الكتاب ، ويمكن أن يكون لكل فصل في الكتاب جدول محتويات خاص به ، يتكون من فقرات ، ويمكن أن يكون لكل فقرة فقرات فرعية خاصة بها. على الرغم من أن C ++ توفر العديد من الوظائف الشائعة والكلمات المحجوزة التي يمكنك استخدامها ، فلا تزال هناك حاجة لكتابة وظائفك الخاصة.

أين بداية البرنامج؟ يحتوي كل برنامج في C ++ على وظيفة واحدة ، تسمى الوظيفة الرئيسية أو الوظيفة الرئيسية ، ويبدأ تنفيذ البرنامج بهذه الوظيفة. من الوظيفة الرئيسية ، يمكنك أيضًا استدعاء أي وظائف أخرى ، لا يهم ما إذا كانت مكتوبة بواسطتنا ، أو ، كما ذكرنا سابقًا ، تم توفيرها بواسطة المترجم.

إذن كيف يمكنك الوصول إلى هذه الميزات القياسية؟ للوصول إلى الوظائف القياسية التي تأتي مع المترجم ، تحتاج إلى تضمين ملف الرأس باستخدام توجيه المعالج - تضمين #. لماذا هي فعالة؟ دعنا نلقي نظرة على مثال لبرنامج العمل:

#تضمن << "Моя первая программа на С++\n"; cin.get(); }

دعونا نفكر بالتفصيل في عناصر البرنامج. #include هو توجيه للمعالج المسبق يخبر المترجم بوضع الكود من ملف رأس iostream في برنامجنا قبل إنشاء الملف القابل للتنفيذ. من خلال توصيل ملف الرأس بالبرنامج ، يمكنك الوصول إلى العديد من الوظائف المختلفة التي يمكنك استخدامها في برنامجك. على سبيل المثال ، يتطلب عامل التشغيل cout وجود iostream. السطر باستخدام مساحة الاسم الأمراض المنقولة جنسيا ؛ يخبر المترجم باستخدام مجموعة من الوظائف التي تعد جزءًا من مكتبة قياسية. يسمح هذا الخط أيضًا للبرنامج باستخدام عبارات مثل cout. الفاصلة المنقوطة جزء من بناء جملة C ++. يخبر المترجم أن هذه هي نهاية الأمر. سترى لاحقًا أنه يتم استخدام الفواصل المنقوطة لإكمال معظم الأوامر في C ++.

السطر التالي المهم من البرنامج هو int main (). يخبر هذا السطر المترجم أن هناك دالة تسمى main ، وأن الدالة ترجع عددًا صحيحًا من النوع int. تشير الأقواس المتعرجة (و) إلى بداية (ونهاية) دالة. تُستخدم الأقواس المتعرجة في كتل أخرى من التعليمات البرمجية ، لكنها تعني دائمًا نفس الشيء - بداية الكتلة ونهايتها ، على التوالي.

في لغة C ++ ، يتم استخدام كائن cout لعرض النص (يُنطق C out). يستخدم الرموز<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

الأمر التالي هو cin.get (). هذا هو استدعاء دالة آخر يقرأ البيانات من دفق بيانات الإدخال وينتظر الضغط على مفتاح ENTER. يحافظ هذا الأمر على إغلاق نافذة وحدة التحكم حتى يتم الضغط على مفتاح ENTER. يمنحك هذا الوقت لرؤية إخراج البرنامج.

عند الوصول إلى نهاية الوظيفة الرئيسية (قوس الإغلاق المتعرج) ، سيرجع برنامجنا 0 لنظام التشغيل. هذه القيمة المرتجعة مهمة لأنه من خلال تحليلها ، يمكن لنظام التشغيل الحكم على ما إذا كان برنامجنا قد اكتمل بنجاح أم لا. القيمة المرجعة 0 تعني النجاح ويتم إرجاعها تلقائيًا (ولكن فقط لنوع البيانات int ، تتطلب الوظائف الأخرى إرجاعًا يدويًا) ، ولكن إذا أردنا إرجاع شيء آخر ، على سبيل المثال 1 ، فسيتعين علينا القيام بذلك يدويًا.

#تضمن استخدام اسم للمحطة؛ int main () (cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

لدمج المادة ، اكتب رمز البرنامج في IDE الخاص بك وقم بتشغيله. بعد بدء البرنامج ورؤية النتائج ، جرب قليلاً باستخدام عبارة cout. سيساعدك هذا على التعود على اللغة.

تأكد من التعليق على برامجك!

أضف تعليقات إلى الكود لجعله أكثر وضوحًا ليس فقط لنفسك ولكن أيضًا للآخرين. يتجاهل المترجم التعليقات عند تنفيذ التعليمات البرمجية ، مما يسمح باستخدام أي عدد من التعليقات لوصف الكود الفعلي. لإنشاء تعليق ، استخدم إما // ، الذي يخبر المترجم أن باقي السطر عبارة عن تعليق ، أو / * ثم * /. عندما تتعلم البرمجة ، من المفيد أن تكون قادرًا على التعليق على أقسام معينة من الكود لترى كيف تتغير نتيجة عمل البرنامج. يمكنك أن تقرأ عن أسلوب التعليق بالتفصيل.

ماذا تفعل بكل هذه الأنواع من المتغيرات؟

قد يكون محيرًا في بعض الأحيان أن يكون لديك أنواع متعددة من المتغيرات عندما يبدو أن بعض أنواع المتغيرات زائدة عن الحاجة. من المهم جدًا استخدام نوع المتغير الصحيح ، حيث تتطلب بعض المتغيرات ذاكرة أكثر من غيرها. بالإضافة إلى ذلك ، نظرًا للطريقة التي يتم بها تخزينها في الذاكرة ، فإن أرقام الفاصلة العائمة وأنواع البيانات العائمة والمزدوجة "غير دقيقة" ويجب عدم استخدامها عند الحاجة إلى تخزين قيمة عدد صحيح.

إعلان المتغيرات في C ++

لتعريف متغير ، استخدم نوع بناء الجملة<имя>؛ ... فيما يلي بعض الأمثلة على التصريحات المتغيرة:

عدد كثافة العمليات ؛ شخصية شار تعويم عدد_سطح ؛

يجوز التصريح عن عدة متغيرات من نفس النوع في سطر واحد ، ولهذا يجب فصل كل متغيرات بفاصلة.

كثافة العمليات x ، y ، z ، d ؛

إذا نظرت عن كثب ، فربما تكون قد لاحظت أن إعلان المتغير يتبعه دائمًا فاصلة منقوطة. يمكنك قراءة المزيد عن الاصطلاح - "حول تسمية المتغيرات".

الأخطاء الشائعة عند التصريح عن المتغيرات في C ++

إذا حاولت استخدام متغير لم تعلنه ، فلن يقوم البرنامج بترجمة وستتلقى رسالة خطأ. في C ++ ، تكون جميع الكلمات الأساسية للغة وجميع الوظائف وجميع المتغيرات حساسة لحالة الأحرف.

استخدام المتغيرات

الآن أنت تعرف كيف تصرح عن متغير. إليك نموذج برنامج يوضح استخدام متغير:

#تضمن استخدام اسم للمحطة؛ int main () (رقم int ؛ cout<< "Введите число: "; cin >> رقم ؛ cin.ignore () ؛ كوت<< "Вы ввели: "<< number <<"\n"; cin.get(); }

دعنا نتصفح هذا البرنامج ونفحص الكود الخاص به ، سطراً بسطر. تقول الكلمة الأساسية int أن هذا الرقم هو عدد صحيح. تقوم وظيفة cin >> بقراءة قيمة إلى رقم ، ويجب على المستخدم الضغط على إدخال بعد الرقم الذي تم إدخاله. cin.ignore () وظيفة تقرأ حرفًا وتتجاهلها. لقد قمنا بتنظيم مدخلاتنا في البرنامج ، بعد إدخال رقم ، نضغط على المفتاح ENTER ، والذي يتم تمريره أيضًا إلى تدفق الإدخال. لسنا بحاجة إلى هذا ، لذلك نتجاهله. ضع في اعتبارك أنه تم التصريح عن المتغير من نوع عدد صحيح ، إذا حاول المستخدم إدخال رقم عشري ، فسيتم اقتطاعه (أي سيتم تجاهل الجزء العشري من الرقم). حاول إدخال رقم عشري أو سلسلة من الأحرف ، عند تشغيل البرنامج النموذجي ، ستعتمد الإجابة على قيمة الإدخال.

لاحظ أنه لا يتم استخدام علامات الاقتباس عند الطباعة من متغير. عدم وجود علامات الاقتباس يخبر المترجم بوجود متغير ، وبالتالي يجب على البرنامج التحقق من قيمة المتغير لاستبدال اسم المتغير بقيمته في وقت التشغيل. العديد من مشغلي النوبات على نفس الخط جيد وسيتم الإخراج بنفس الترتيب. يجب أن تفصل بين القيم الحرفية للسلسلة (السلاسل المقتبسة) والمتغيرات ، مع إعطاء كل منها عامل تحويل مختلف<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

تغيير ومقارنة القيم

بالطبع ، بغض النظر عن نوع البيانات الذي تستخدمه ، فإن المتغيرات ليست ذات أهمية كبيرة بدون القدرة على تغيير قيمتها. فيما يلي بعض العوامل المستخدمة جنبًا إلى جنب مع المتغيرات:

  • * عمليه الضرب،
  • - الطرح ،
  • + إضافة ،
  • / قطاع،
  • = مهمة ،
  • == المساواة ،
  • > أكثر ،
  • < меньше.
  • ! = غير متكافئ
  • > = أكبر من أو يساوي
  • <= меньше или равно

يجب استخدام عوامل التشغيل التي تؤدي وظائف رياضية إلى يمين علامة التخصيص ، لتعيين النتيجة إلى متغير على اليسار.

وهنا بعض الأمثلة:

أ = 4 * 6 ؛ // استخدم تعليق الخط والفاصلة المنقوطة ، a يساوي 24 a = a + 5 ؛ // يساوي مجموع القيمة الأصلية وخمسة أ == 5 // خمسة لم يتم تعيينها ، يتم التحقق مما إذا كانت 5 أم لا

ستستخدم غالبًا == في التركيبات مثل الشرطية والحلقات.

أ< 5 // Проверка, a менее пяти? a >5 // تحقق مما إذا كانت a أكبر من خمسة؟ a == 5 // تحقق مما إذا كان a هو خمسة؟ أ! = 5 // تحقق ، لكن لا تساوي خمسة؟ a> = 5 // تحقق مما إذا كانت a أكبر من أو تساوي خمسة؟ أ<= 5 // Проверка, a меньше или равно пяти?

هذه الأمثلة ليست واضحة جدًا بشأن استخدام علامات المقارنة ، ولكن عندما نبدأ في دراسة عوامل التحديد ، ستفهم سبب ضرورة ذلك.

C ++ (يقرأ C-plus-plus) هي لغة برمجة للأغراض العامة مجمعة ومكتوبة بشكل ثابت يمكنك من خلالها إنشاء برامج من أي تعقيد.
لأكثر من 20 عامًا ، كانت هذه اللغة من بين أكثر ثلاث لغات برمجة شعبية وطلبًا. (يمكنك التحقق من ذلك من خلال زيارة موقع TIOBE).
نشأت اللغة في أوائل الثمانينيات ، عندما جاء بيورن ستروستروب موظف Bell Labs بعدد من التحسينات على لغة C لتناسب احتياجاته الخاصة.

Bjarne Stroustrup - مبتكر لغة C ++

قرر Stroustrup استكمال لغة C بإمكانيات لغة Simula. لغة C ، باعتبارها اللغة الأساسية لنظام UNIX الذي تعمل عليه أجهزة كمبيوتر Bell ، هي لغة سريعة وغنية بالميزات وقابلة للحمل. أضاف Stroustrup القدرة على العمل مع الفئات والعناصر إليها. نتيجة لذلك ، أصبحت مشكلات النمذجة العملية متاحة لحلها من حيث وقت التطوير (بفضل استخدام فئات تشبه Simula) ومن حيث وقت الحساب (بفضل سرعة C).
هكذا يقول مطور اللغة نفسه عن ذلك:



في عام 1998 ، تم نشر معيار اللغة الأول ، المعروف باسم C ++ 98 ، من قبل لجنة التقييس. تواصل C ++ التطور لتلبي المتطلبات الحديثة. إحدى المجموعات التي تطور لغة C ++ وترسل اقتراحات لتحسينها إلى لجنة توحيد C ++ هي يعزز، والتي تشارك ، من بين أمور أخرى ، في تحسين قدرات اللغة عن طريق إضافة ميزات البرمجة الوصفية إليها. تم إصدار المعيار الأخير في عام 2017 ويسمى سي ++ 17... لن يكون المعيار التالي طويلاً في المستقبل وسيظهر كما هو متوقع في عام 2020.
لا أحد يمتلك حقوق لغة C ++ ، فهي مجانية. في مارس 2016 ، تم إنشاء مجموعة عمل WG21 C ++ في روسيا. تم تنظيم المجموعة لجمع المقترحات الخاصة بمعيار C ++ ، وإرسالها إلى اللجنة والدفاع عنها في الاجتماعات العامة للمنظمة الدولية للتوحيد القياسي.
C ++ هي لغة متعددة النماذج (من الكلمة paradigm - أسلوب كتابة برامج الكمبيوتر) ، والتي تتضمن مجموعة واسعة من الأساليب والتقنيات المختلفة للبرمجة. غالبًا ما يشار إليها على أنها لغة موجهة للكائنات ، ولكنها ليست كذلك بالمعنى الدقيق للكلمة. في عملية العمل ، يكتسب المطور الحرية المطلقة في اختيار الأدوات بحيث يتم حل المشكلة باستخدام هذا النهج أو ذاك بأكبر قدر ممكن من الكفاءة. بمعنى آخر ، لا تجبر C ++ المبرمج على الالتزام بنمط واحد فقط من تطوير البرامج (على سبيل المثال ، موجه للكائنات).
يحتوي C ++ على مكتبة قياسية غنية تتضمن حاويات وخوارزميات مشتركة ، و I / O ، وتعبيرات منتظمة ، ودعم متعدد مؤشرات الترابط ، والمزيد. أثرت C ++ على العديد من لغات البرمجة ، بما في ذلك: Java ، C # ، D. نظرًا لأن C ++ تنتمي إلى عائلة اللغات استنادًا إلى بناء جملة لغة C ، يمكنك بسهولة إتقان لغات البرمجة الأخرى لهذه العائلة : JavaScript و PHP و Perl و Objective-C وغيرها الكثير. ... أخرى ، بما في ذلك اللغة الأم نفسها - C. ()
خلال وجودها ، رسخت لغة C ++ أساطير مستقرة يمكن دحضها بسهولة (انظر هنا: الجزء الأول والجزء الثاني)

تاريخ اللغة وإصدار المعايير

1983

مبتكر اللغة - بيورن ستروستروب، موظف Bell Labs ، قدم إصدارًا مبكرًا من C ++ ("C مع الفئات")

1985

أول إصدار تجاري لـ C ++ ، تأخذ اللغة اسمها الحديث

1986

الطبعة الأولى من لغة البرمجة C ++ ، كتاب عن C ++ كتبه Björn Stroustrup

1998

تم التصديق على المعيار الدولي للغة C ++: ISO / IEC 14882: 1998 "معيار لغة البرمجة C ++"

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 ++

في The Design and Evolution of C ++ (2007) ، يصف Björne Stroustrup المبادئ التي اتبعها في تصميم C ++ (مختصر):

  • احصل على لغة عامة مع أنواع بيانات ثابتة ، وكفاءة وإمكانية نقل لغة C.
  • دعم العديد من أنماط البرمجة بشكل مباشر وشامل.
  • امنح المبرمج حرية الاختيار ، حتى لو أعطته الفرصة لاختيار الخطأ.
  • حافظ على التوافق مع لغة سي قدر الإمكان ، مما يجعل الانتقال سهلًا من برمجة لغة سي.
  • تجنب الخلط بين C و C ++: أي بناء مسموح به في كلتا اللغتين يجب أن يعني نفس الشيء في كل منهما ويؤدي إلى نفس سلوك البرنامج.
  • تجنب الميزات التي تعتمد على النظام الأساسي أو ليست عامة.
  • لا تدفع مقابل ما لم يتم استخدامه - لا ينبغي لأي أداة لغوية أن تقلل من أداء البرامج التي لا تستخدمها.
  • لا تتطلب بيئة برمجة معقدة للغاية.

C و C ++

إن بناء جملة C ++ موروث من لغة C. على الرغم من أن أحد مبادئ C ++ ، رسميًا ، يظل الحفاظ على التوافق مع لغة C ، في الواقع ، فإن مجموعات توحيد هذه اللغات لا تتفاعل ، والتغييرات التي يجرونها لا ترتبط فقط ، ولكنها غالبًا ما تتعارض بشكل أساسي مع بعضها البعض أيديولوجيًا. على سبيل المثال ، العناصر التي تضيفها معايير C الجديدة إلى النواة هي عناصر من المكتبة القياسية في معيار C ++ وهي غائبة تمامًا في النواة ، على سبيل المثال ، المصفوفات الديناميكية ، والمصفوفات ذات الحدود الثابتة ، ومرافق المعالجة المتوازية. قال ستروستروب إنه سيكون من المفيد جدًا الجمع بين تطوير اللغتين ، لكن من غير المرجح أن يكون ذلك ممكنًا من الناحية السياسية. لذلك فإن التوافق العملي بين C و C ++ سوف يضيع تدريجياً.
في هذا المثال ، اعتمادًا على المترجم المستخدم ، سيخرج إما "C ++" أو "C":

البرنامج 9.1

#تضمن int main () (printf ("٪ s \ n"، (sizeof ("a") == sizeof (char))؟ "C ++": "C")؛ return 0؛)

هذا يرجع إلى حقيقة أن ثوابت الحرف في C من النوع int ، وفي C ++ تكون من النوع char ، لكن أحجام هذه الأنواع مختلفة.

نماذج دورة حياة التطبيق

دورة الحياةالبرمجيات هي فترة زمنية تبدأ من اللحظة التي يتم فيها اتخاذ قرار بشأن الحاجة إلى إنشاء منتج برمجي وتنتهي في وقت تقاعده الكامل. هذه الدورة هي عملية بناء وتطوير البرمجيات (البرمجيات). هناك العديد من نماذج دورة الحياة.
نموذج تتاليدورة الحياة (نموذج الشلال المهندس) في عام 1970 من قبل وينستون رويس. يوفر التنفيذ المتسلسل لجميع مراحل المشروع بترتيب ثابت تمامًا. الانتقال إلى المرحلة التالية يعني استكمال العمل في المرحلة السابقة. يتم توثيق المتطلبات ، التي تم تحديدها في مرحلة تكوين المتطلبات ، بدقة في شكل مواصفات فنية ويتم إصلاحها طوال فترة تطوير المشروع بالكامل. تنتهي كل مرحلة بإصدار مجموعة كاملة من الوثائق الكافية لمواصلة التطوير بواسطة فريق تطوير آخر.
مراحل المشروع حسب نموذج الشلال:

  1. تشكيل المتطلبات ؛
  2. تصميم؛
  3. التنفيذ؛
  4. اختبارات؛
  5. التنفيذ؛
  6. التشغيل والصيانة.

في نموذج الشلال ، يفترض الانتقال من مرحلة واحدة من مراحل المشروع إلى أخرى صحة نتيجة المرحلة السابقة تمامًا. في المشاريع الكبيرة ، يكاد يكون من المستحيل تحقيق ذلك. لذلك ، هذا النموذج مناسب فقط لتطوير مشروع صغير. (لم يلتزم دبليو رويس بهذا النموذج واستخدم نموذجًا تكراريًا).
النموذج التكراري
بديل لنموذج الشلال هو نموذج التطوير التكراري والمتزايد (IID) الذي تم الحصول عليه من T. Gilb في السبعينيات. اسم النموذج التطوري. يفترض نموذج IID تقسيم دورة حياة المشروع إلى سلسلة من التكرارات ، كل منها يشبه "مشروع صغير" ، بما في ذلك جميع عمليات التطوير المطبقة على إنشاء أجزاء وظيفية أصغر ، مقارنة بالمشروع ككل. الهدف من كل تكرار هو الحصول على إصدار عمل من نظام البرنامج يتضمن الوظيفة المحددة بواسطة المحتوى المتكامل لجميع التكرارات السابقة والحالية. تحتوي نتيجة التكرار النهائي على جميع الوظائف المطلوبة للمنتج. وهكذا ، مع اكتمال كل تكرار ، يتلقى المنتج زيادة - زيادة - في قدراته ، والتي تتطور بالتالي تطوريًا.


يتم تنفيذ إصدارات مختلفة من النهج التكراري في معظم منهجيات التطوير الحديثة:

عملية التطوير - العملية الموحدة العقلانية (RUP)

العملية العقلانية الموحدة (RUP)(Lean Unified Process) هي منهجية لتطوير البرمجيات مدعومة من قبل Rational Software (IBM). توفر المنهجية توصيات لجميع مراحل التطوير: من نمذجة الأعمال إلى اختبار البرنامج النهائي وتشغيله. تستخدم لغة النمذجة الموحدة (UML) كلغة نمذجة.
تتكون دورة الحياة الكاملة لتطوير المنتج من أربع مراحل ، تتضمن كل منها تكرارًا واحدًا أو أكثر.

  • المرحلة الأولية (التأسيس)
  • تحديد نطاق المشروع ومقدار الموارد المطلوبة. يتم تحديد المتطلبات الأساسية والقيود والوظائف الرئيسية للمنتج. يتم تقييم المخاطر. تخطيط العمل. في نهاية المرحلة الأولية ، يتم تقييم إنجاز المرحلة الرئيسية لهدف دورة الحياة ، والذي يفترض مسبقًا اتفاقًا بين أصحاب المصلحة على استمرار المشروع.

  • تفصيل
  • توثيق المتطلبات. تصميم وتنفيذ واختبار بنية قابلة للتنفيذ. توضيح الشروط والتكلفة. تقليل المخاطر الكبرى. يعني الإكمال الناجح لمرحلة التطوير الوصول إلى المرحلة الأساسية في هندسة دورة الحياة.

  • بناء
  • في مرحلة "البناء" ، يتم تنفيذ معظم وظائف المنتج: اكتمل تصميم التطبيق ، وكتابة الكود المصدري. تنتهي مرحلة البناء بالإصدار الخارجي الأول للنظام وإحدى مراحل القدرة التشغيلية الأولية.

  • انتقال
  • في مرحلة "التنفيذ" ، يتم إنشاء الإصدار النهائي للمنتج ونقله من المطور إلى العميل. يتضمن ذلك برنامج اختبار بيتا وتدريب المستخدم وتحديد جودة المنتج. إذا كانت الجودة لا تلبي توقعات المستخدمين أو المعايير المحددة في مرحلة البدء ، يتم تكرار مرحلة التنفيذ مرة أخرى. يعني تحقيق جميع الأهداف الوصول إلى مرحلة إصدار المنتج وإكمال دورة التطوير الكاملة.



"تكنولوجيا المعلومات. هندسة النظم والبرمجيات. عمليات دورة حياة البرمجيات ". تم اعتماد هذا المعيار من قبل الوكالة الفيدرالية للتنظيم الفني والمقاييس في الاتحاد الروسي وهو مشابه للمعيار الدولي ISO / IEC 12207: 2008. يحدد هذا المعيار إطارًا عامًا لعمليات دورة حياة البرامج التي يمكن توجيهها في صناعة البرمجيات. لا يقدم المعيار نموذج دورة حياة محدد. أحكامه شائعة في أي نماذج دورة حياة وأساليب وتقنيات لإنشاء البرامج. يصف هيكل عمليات دورة الحياة دون تحديد كيفية تنفيذ أو أداء الأنشطة والمهام المدرجة في هذه العمليات.

عرض الدرس
مواضيع الرسائل
  • مؤسسة البرمجيات الحرة (FSF)
  • تراخيص البرمجيات الحرة
  • برنامج FreeSoftware والمصدر المفتوح
  • تاريخ تطور لغات البرمجة
  • تاريخ C. C و C ++
  • قصة
  • نقد C ++
  • تاريخ UNIX
  • نموذج دورة حياة البرنامج الحلزوني
  • UML (لغة النمذجة الإنجليزية الموحدة)
  • إطار عمل حلول Microsoft
  • IDE لبرمجة C / C ++ على Windows
  • مترجمي C / C ++
  • إنشاء تطبيق وحدة التحكم على Windows
أسئلة
  1. لماذا لا يتم تطبيق نموذج الشلال لتطوير البرمجيات على المشاريع الكبيرة؟
  2. ما هو الفرق بين نموذج الشلال ونماذج التطوير التكرارية؟
  3. ضع قائمة بمراحل تطوير البرمجيات في منهجية Rational Unified Process (RUP)

تعلم أساسيات وتعقيدات لغة البرمجة C ++. كتاب مدرسي به مهام واختبارات عملية. هل تريد أن تتعلم البرمجة؟ فأنت في المكان الصحيح - هنا تدريب مجاني على البرمجة. لا يهم إذا كنت من ذوي الخبرة أم لا ، ستساعدك دروس البرمجة هذه على البدء في إنشاء برامج C ++ وتجميعها وتصحيحها في بيئات تطوير مختلفة: Visual Studio أو Code :: Blocks أو Xcode أو Eclipse.

الكثير من الأمثلة والتفسيرات التفصيلية. مثالي للمبتدئين (الدمى) والأكثر تقدمًا. يتم شرح كل شيء من البداية إلى التفاصيل ذاتها. ستمنحك هذه الدروس (200+) أساسًا جيدًا في فهم البرمجة ليس فقط في C ++ ، ولكن أيضًا في لغات البرمجة الأخرى. وهو مجاني تمامًا!

يغطي أيضًا إنشاء لعبة خطوة بخطوة في C ++ ، ومكتبة رسومات SFML وأكثر من 50 مهمة لاختبار مهاراتك ومعرفتك في C ++. المكافأة المضافة هي.

ل repost +20 الكرمة وشكري!

الفصل # 0. مقدمة. بداية العمل

الفصل 1. أساسيات C ++

الفصل 2. المتغيرات وأنواع البيانات الأساسية في C ++

الفصل 3. عوامل التشغيل في C ++

الفصل 4. النطاق وأنواع أخرى من المتغيرات في C ++

الفصل 5. ترتيب تنفيذ الكود في البرنامج. الحلقات والفروع في C ++