الخصائص العامة ج. وصف وظيفة Scanf C

تتناول هذه المقالة وظيفة scanf () بتنسيق نظرة عامةدون الإشارة إلى معيار معين ، لذلك يتم تضمين البيانات من أي معايير C99 و C11 و C ++ 11 و C ++ 14 هنا. ربما ، في بعض المعايير ، تعمل الوظيفة مع اختلافات عن المواد المعروضة في المقالة.

وظيفة scanf C - الوصف

scanf () هي وظيفة موجودة في ملفات الرأس stdio.h (C) و cstdio (C ++) ، والمعروفة أيضًا باسم إدخال البرنامج المنسق. يقرأ scanf الأحرف من تدفق الإدخال القياسي (stdin) ويحولها وفقًا للتنسيق ، ثم يكتبها إلى المتغيرات المحددة. التنسيق - يعني أن البيانات يتم تحويلها إلى نموذج معين عند الاستلام. لذلك تم وصف وظيفة scanf C:

scanf ("تنسيق٪" ، & متغير 1 [، & متغير 2 ، [...]]) ،

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

يشير بعض المبرمجين إلى وظائف مثل scanf () أو printf () كإجراءات بسبب التشابه مع اللغات الأخرى.

يسمح لك Scanf بإدخال جميع الأنواع الأساسية للغة: char ، int ، float ، string ، إلخ. في حالة متغيرات نوع السلسلة ، ليست هناك حاجة لتحديد علامة العنوان - "&" ، لأن متغير سلسلة النوع عبارة عن مصفوفة ، واسمها هو عنوان العنصر الأول من المصفوفة في ذاكرة الكمبيوتر .

تنسيق الإدخال أو سلسلة التحكم

لنبدأ بإلقاء نظرة على مثال لاستخدام وظيفة scanf C من الوصف.

#يشمل int main () (int x؛ while (scanf ("٪ d"، & x) == 1) printf ("٪ d \ n"، x)؛ return 0؛ // شرط لأنظمة linux)

يتكون تنسيق الإدخال من المعلمات الأربعة التالية:٪ [*] [العرض] [المعدلات] النوع. في هذه الحالة ، تعد علامة "٪" والنوع معلمات إلزامية. وهذا يعني أن الشكل الأدنى للتنسيق يبدو كالتالي: "٪ s" و "٪ d" وما إلى ذلك.

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

  • محددات التنسيق - كل شيء يبدأ بالحرف٪ ؛
  • الفاصل أو أحرف المسافة - هي مسافة ، علامة تبويب (\ t) ، سطر جديد (\ n) ؛
  • أحرف غير المسافة البيضاء.

قد لا تكون الوظيفة آمنة.

استخدم الدالة scanf_s () بدلاً من scanf ().

(رسالة من استوديو مرئي)

اكتب أو محددات التنسيق أو أحرف التحويل أو أحرف التحكم

يجب أن يحتوي إعلان scanf C ، كحد أدنى ، على محدد تنسيق محدد في نهاية التعبيرات التي تبدأ بعلامة "٪". يخبر البرنامج نوع البيانات المتوقع عند الدخول ، عادة من لوحة المفاتيح. قائمة بجميع محددات التنسيق في الجدول أدناه.

معنى

البرنامج ينتظر إدخال شخصية. يجب أن يكون المتغير المراد كتابته من النوع char.

يتوقع البرنامج إدخال عدد صحيح عشري. يجب أن يكون المتغير من النوع int.

يتوقع البرنامج إدخال رقم فاصلة عائمة (فاصلة) في شكل أسي. يجب أن يكون المتغير من النوع float.

يتوقع البرنامج إدخال رقم فاصلة عائمة (فاصلة). يجب أن يكون المتغير من النوع float.

7

يتوقع البرنامج إدخال رقم فاصلة عائمة (فاصلة). يجب أن يكون المتغير من النوع float.

يتوقع البرنامج إدخال رقم ثماني. يجب أن يكون المتغير من النوع int.

البرنامج ينتظر إدخال سلسلة. السلسلة هي مجموعة من أي أحرف تصل إلى أول حرف فاصل يتم مواجهته. يجب أن يكون المتغير من نوع سلسلة.

يتوقع البرنامج إدخال رقم سداسي عشري. يجب أن يكون المتغير من النوع int.

يتوقع المتغير إدخال مؤشر. يجب أن يكون المتغير من نوع المؤشر.

يكتب إلى المتغير قيمة عددية تساوي عدد الأحرف التي تمت قراءتها حتى الآن بواسطة وظيفة scanf.

يقرأ البرنامج عددًا صحيحًا بدون إشارة. يجب أن يكون نوع المتغير عددًا صحيحًا بدون إشارة.

يتوقع البرنامج إدخال رقم ثنائي. يجب أن يكون المتغير من النوع int.

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

الأحرف في سلسلة التنسيق

رمز النجمة (*)

علامة النجمة (*) هي علامة تشير إلى وجوب إلغاء عملية التخصيص. يتم وضع علامة النجمة مباشرة بعد علامة "٪". على سبيل المثال،

Scanf ("٪ d٪ * c٪ d" ، & x ، & ص) ؛ // تجاهل الحرف بين عددين صحيحين. scanf ("٪ s٪ * d٪ s" ، str ، str2) ؛ // تجاهل عدد صحيح بين سلسلتين.

بمعنى ، إذا قمت بإدخال السطر "45-20" في وحدة التحكم ، فسيقوم البرنامج بما يلي:

  1. سيتم تعيين القيمة 45 للمتغير "x".
  2. سيتم تعيين القيمة 20 للمتغير "y".
  3. وسيتم تجاهل علامة الطرح (الشرطة) "-" بفضل "٪ * c".

العرض (أو عرض الهامش)

هذا عدد صحيح بين علامة "٪" ومحدد التنسيق الذي يحدد الحد الأقصى للمبلغأحرف لقراءتها لعملية القراءة الحالية.

هناك عدة نقاط مهمة يجب وضعها في الاعتبار:

  1. سيجهض scanf إذا واجه حرفًا فاصلًا ، حتى لو لم يحسب 20 حرفًا.
  2. إذا تم إدخال أكثر من 20 حرفًا ، فستتم كتابة أول 20 حرفًا فقط إلى str.

معدِّلات الكتابة (أو الدقة)

هذه هي العلامات الخاصة التي تعدل نوع البيانات المتوقعة للإدخال. العلم محدد على يسار محدد النوع:

  • L أو l (صغير L) عند استخدام "l" مع المحددات d ، i ، o ، u ، x ، يخبر العلم البرنامج أنه من المتوقع أن يكون الإدخال طويلاً. عند استخدام "l" مع محدد e أو f ، تخبر العلامة البرنامج أنه يجب أن يتوقع قيمة مزدوجة. استخدام "L" يخبر البرنامج أنه من المتوقع مضاعفة طويلة. استخدام "l" مع محددات "c" و "s" يخبر البرنامج أنه من المتوقع ظهور أحرف ثنائية البايت مثل wchar_t. على سبيل المثال ، "٪ lc" ، "٪ ls" ، "٪ l".
  • h هو علم يشير إلى النوع القصير.
  • hh - يشير إلى أن المتغير هو مؤشر لقيمة من نوع char أو char غير الموقعة. يمكن استخدام العلم مع المحددات d ، i ، o ، u ، x ، n.
  • يشير ll (حرفان صغيران L) إلى أن المتغير هو مؤشر لقيمة من النوع الموقعة int أو long int long int. يتم استخدام العلم مع المحددات: d ، i ، o ، u ، x ، n.
  • j - تشير إلى أن المتغير هو مؤشر للنوع intmax_t أو uintmax_t من ملف الرأس stdint.h. تُستخدم مع المحددات: d ، i ، o ، u ، x ، n.
  • z - يشير إلى أن المتغير هو مؤشر لنوع size_t ، وتعريفه موجود في stddef.h. تُستخدم مع المحددات: d ، i ، o ، u ، x ، n.
  • t - يشير إلى أن المتغير هو مؤشر لنوع ptrdiff_t. تعريف هذا النوع موجود في stddef.h. تُستخدم مع المحددات: d ، i ، o ، u ، x ، n.

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

شخصيات أخرى

سيتم تجاهل أي أحرف مصادفة في التنسيق. وتجدر الإشارة إلى أن وجود مسافة بيضاء أو أحرف فاصلة (سطر جديد ، مسافة ، علامة تبويب) في سلسلة التحكم يمكن أن يؤدي إلى سلوك مختلف للوظيفة. في إصدار واحد ، ستقرأ scanf () بدون حفظ أي عدد من الفواصل حتى تواجه حرفًا آخر غير الفاصل ، وفي إصدار آخر ، لا تلعب المسافات (فقط هم) دورًا والتعبير "٪ d +٪ d" يكافئ "٪ d +٪ d".

أمثلة

دعنا نفكر في عدد من الأمثلة التي تسمح لك بالتفكير وفهم عمل الوظيفة بشكل أكثر دقة.

scanf ("٪ 3s" ، str) ؛ // إذا أدخلت السلسلة "1d2s3d1؛ 3" في وحدة التحكم ، فستتم كتابة "1d2" فقط إلى str scanf ("٪ dminus٪ d"، & x، & y)؛ // سيتم تجاهل الأحرف الناقصة بين رقمين scanf ("٪ 5" ، str) ؛ // سيتم إدخال الأحرف في str حتى يصبح هناك 5 أحرف وتكون الأحرف أرقامًا من 0 إلى 9. scanf ("٪ lf"، & d)؛ // توقع فحص إدخال مزدوج ("٪ hd" ، & x) ؛ // العدد المتوقع لنوع المسح القصير ("٪ hu" ، & y) ؛ // توقع مسح ضوئي قصير للرقم بدون إشارة ("lx"، & z) ؛ // العدد المتوقع من النوع طويل int

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

Scanf C - وصف للمبتدئين

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

  • الميزة مهملة إلى حد ما. هناك العديد من التطبيقات المختلفة في المكتبات إصدارات مختلفة. على سبيل المثال ، وظيفة scanf S C المحسّنة ، والتي يمكن العثور على وصف لها في Microsoft.
  • يجب أن يتطابق عدد المحددات في التنسيق مع عدد الوسائط التي تم تمريرها إلى الوظيفة.
  • يجب فصل عناصر دفق الإدخال فقط بأحرف فاصلة: مسافة ، علامة تبويب ، سطر جديد. الفاصلة والفاصلة المنقوطة والنقطة وما إلى ذلك - هذه الأحرف ليست فواصل لوظيفة scanf ().
  • إذا واجه scanf حرفًا فاصلًا ، فسيتم إيقاف الإدخال. إذا كان هناك أكثر من متغير واحد للقراءة ، فسينتقل scanf إلى قراءة المتغير التالي.
  • يؤدي أدنى تناقض في تنسيق بيانات الإدخال إلى نتائج غير متوقعة للبرنامج. حسنًا ، إذا انتهى البرنامج للتو بخطأ. لكن غالبًا ما يستمر البرنامج في العمل ويفعله بشكل خاطئ.
  • scanf ("٪ 20s ..." ، ...) ؛ إذا تجاوز تدفق الإدخال 20 حرفًا ، فسيقوم scanf بقراءة أول 20 حرفًا وإما إحباط أو الانتقال إلى قراءة المتغير التالي ، إذا تم تحديد واحد. في هذه الحالة ، ستستمر المكالمة التالية لـ scanf في قراءة دفق الإدخال من النقطة التي توقف فيها عمل المكالمة السابقة إلى scanf. إذا تمت مصادفة حرف فاصل أثناء قراءة أول 20 حرفًا ، فسيجهض scanf أو ينتقل إلى قراءة المتغير التالي ، حتى لو لم يقرأ 20 حرفًا للمتغير الأول. في هذه الحالة ، سيتم إرفاق جميع الأحرف غير المقروءة بالمتغير التالي.
  • إذا بدأت مجموعة الأحرف الممسوحة ضوئيًا بعلامة "^" ، فسيقوم scanf بقراءة البيانات حتى تواجه حرفًا محددًا أو حرفًا من المجموعة. على سبيل المثال ، "٪ [^ A-E1-5]" سيقرأ البيانات من الدفق حتى تتم مصادفة أحد الأحرف الإنجليزية الكبيرة من A إلى E أو أحد الأرقام من 1 إلى 5.
  • تقوم وظيفة scanf C ، بحكم التعريف ، بإرجاع رقم مساو لعدد مرات الكتابة الناجحة إلى المتغيرات. إذا كتب scanf 3 متغيرات ، فإن نتيجة نجاح الوظيفة ستعيد الرقم 3. إذا لم يتمكن scanf من كتابة أي متغيرات ، فستكون النتيجة 0. وأخيرًا ، إذا تعذر بدء scanf على الإطلاق لسبب ما ، ستكون النتيجة EOF.
  • إذا أكملت وظيفة scanf () عملها بشكل غير صحيح. على سبيل المثال ، scanf ("٪ d"، & x) - كان الرقم متوقعًا ، لكن الإدخال تلقى الأحرف. ستبدأ المكالمة التالية لـ scanf () عند النقطة في دفق الإدخال حيث توقفت استدعاء الوظيفة السابقة. للتغلب على هذه المشكلة ، من الضروري التخلص من شخصيات المشكلة. يمكن القيام بذلك ، على سبيل المثال ، من خلال استدعاء scanf ("٪ * s"). أي أن الوظيفة ستقرأ سلسلة من الأحرف وترميها بعيدًا. بهذه الطريقة الصعبة ، يمكنك الاستمرار في إدخال البيانات الضرورية.
  • بعض تطبيقات scanf () لا تسمح بفحص "-" في مجموعة الأحرف.
  • يقرأ المحدد "٪ c" كل حرف من الدفق. أي أنه يقرأ أيضًا الحرف الفاصل. لتخطي حرف المحدد ومتابعة قراءة الحرف المطلوب ، يمكن استخدام "٪ 1s".
  • عند استخدام محدد "c" ، من المقبول استخدام العرض "٪ 10c" ، ولكن بعد ذلك في النموذج متغير الوظيفةيحتاج scanf إلى تمرير مجموعة من العناصر من النوع char.
  • تعني "٪" "جميع الأحرف الصغيرة من الأبجدية الإنجليزية" ، وتعني "٪" 3 أحرف فقط: "z" و "a" و "-". بمعنى آخر ، يعني الحرف "-" نطاقًا فقط إذا كان بين حرفين بالترتيب الصحيح. إذا كانت "-" في نهاية تعبير ما ، في البداية ، أو بترتيب خاطئ للأحرف على جانبيها ، فهذا يعني أنها مجرد حرف واصلة ، وليست نطاقًا.

خاتمة

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

تتضمن المكتبة القياسية 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 أيهما أقصر
٪ o رقم ثماني
٪س سلسلة أحرف
٪ 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 ("اسمي بول") ؛ // ستتم طباعة هذا على سطر جديد
}

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

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

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

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

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

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

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

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


scanf ("٪ s" ، str) ؛

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

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

باستخدام وظيفة gets () ، يمكنك إدخال سلاسل كاملة. تقوم وظيفة gets () بقراءة الأحرف من لوحة المفاتيح حتى يظهر الحرف خط جديد(\ن). يظهر حرف السطر الجديد نفسه عند الضغط على مفتاح الإدخال. تقوم الدالة بإرجاع مؤشر إلى 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) ؛

يحدد لقراءة أول 5 أحرف من دفق الإدخال. إذا أدخلت 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 * /

#يشمل

باطل رئيسي (باطل)
{
charname.

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

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

/ * المثال 4 * /

#يشمل

باطل رئيسي (باطل)
{
Charbal.

Printf ("نتيجتك هي 2،3،4،5:") ؛
scanf ("٪" ، & بال) ؛
printf ("\ nScore٪ c"، bal)؛
}

لغة البرمجة C ++

آخر تحديث: 08/28/2017

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

لها جذورها في لغة C ، التي تم تطويرها في 1969-1973 في Bell Labs بواسطة المبرمج Dennis Ritchie. في أوائل الثمانينيات ، طور المبرمج الدنماركي Bjarne Stroustrup ، ثم في Bell Labs ، C ++ كامتداد للغة C. في الواقع ، في البداية ، استكملت لغة ++ C لغة C ببعض ميزات البرمجة الموجهة للكائنات. وهكذا أطلق عليها Stroustrup نفسه في البداية "C مع الفصول" ("C مع الفصول").

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

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

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

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

معالم التطور

في 1979-80 ، طور Bjarne Stroustrup امتدادًا للغة C - "C مع الفصول". في عام 1983 تمت إعادة تسمية اللغة إلى C ++.

في عام 1985 ، تم إصدار أول نسخة تجارية من لغة C ++ ، وكذلك الإصدار الأول من كتاب "The C ++ Programming Language" ، والذي مثل الوصف الأول لهذه اللغة في غياب معيار رسمي.

صدر عام 1989 نسخة جديدة C ++ 2.0 ، والتي تضمنت عددًا من الميزات الجديدة. بعد ذلك ، تطورت اللغة ببطء نسبيًا حتى عام 2011. ولكن في الوقت نفسه ، في عام 1998 ، جرت المحاولة الأولى لتوحيد اللغة من قبل ISO (المنظمة الدولية للتوحيد القياسي). كان المعيار الأول يسمى ISO / IEC 14882: 1998 أو C ++ 98 للاختصار. في وقت لاحق من عام 2003 ، تم نشر نسخة جديدة من معيار C ++ 03.

في عام 2011 ، تم نشر معيار C ++ 11 الجديد ، والذي احتوى على العديد من الإضافات وإثراء لغة C ++. عدد كبيروظائف جديدة. تبع ذلك في عام 2014 إضافة بسيطة إلى المعيار ، المعروف أيضًا باسم C ++ 14. ومن المقرر إصدار رئيسي آخر للغة في عام 2017.

المجمعين وبيئات التطوير

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

يمكنك أيضًا استخدام IDEs مثل Visual Studio و Netbeans و Eclipse و Qt وما إلى ذلك لإنشاء برامج.

تعلم أساسيات وخواص لغة البرمجة 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 ++

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

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

تركيب / IDE

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

مقدمة إلى C ++

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

int x ، y ، z ، d ؛

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



تحميل...
قمة