المشغل الأحادي في C++

Almshghl Alahady Fy C



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

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

المثال 1: عوامل الزيادة (++) والتناقص (-).

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







دعونا نستكشف هذه العوامل من خلال مثال عملي:



#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

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

كثافة العمليات عداد = 0 ;

// عامل الزيادة
cout << 'القيمة البدائية: ' << عداد << endl ;

عداد ++ ;
cout << 'القيمة بعد الزيادة:' << عداد << endl ;

// إنقاص عامل التشغيل
عداد -- ;
cout << 'القيمة بعد التخفيض:' << عداد << endl ;

يعود 0 ;
}

يشتمل برنامج C++ البسيط هذا على مكتبة دفق الإدخال/الإخراج الضرورية مع '#include '. ضمن الدالة 'main()'، نقوم بإنشاء مثيل لمتغير عدد صحيح يسمى 'counter' ونخصص له قيمة أولية 0. باستخدام عبارة 'cout'، نقوم بطباعة القيمة الأولية لـ 'counter' إلى وحدة التحكم، مما يوفر خط الأساس لمظاهرتنا. للمضي قدمًا، يتم استخدام عامل الزيادة (counter++) لرفع قيمة المتغير 'العداد' بمقدار 1.



بعد هذه العملية، يتم عرض القيمة المحدثة لـ 'counter' باستخدام عبارة 'cout' أخرى. بعد ذلك، نستخدم عامل التناقص (counter—) لتقليل قيمة 'العداد' بمقدار 1. يتم عرض النتيجة لاحقًا على وحدة التحكم. في النهاية، يختتم البرنامج بـ 'return 0;' عبارة تشير إلى التنفيذ الناجح.





تُظهر الصورة الناتجة القيمة الأولية، والقيمة بعد الزيادة، والقيمة المتناقصة.



المثال 2: عوامل التشغيل الموجبة (+) والسالبة (-).

في حين نادرًا ما يتم استخدام العامل الأحادي الموجب، إلا أن العامل السلبي ضروري لتغيير إشارة المتغير.

#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات رئيسي ( ) {
كثافة العمليات قيمة إيجابية = 10 ;
كثافة العمليات قيمة سالبة = - قيمة إيجابية ;

cout << 'القيمة الإيجابية:' << قيمة إيجابية << endl ;
cout << 'قيمة سالبة: ' << قيمة سالبة << endl ;

يعود 0 ;
}

نقوم بتهيئة متغيرين صحيحين لرمز المثال هذا وهما 'positiveValue' و'negativeValue'. يتم تعيين 'القيمة الإيجابية' بقيمة 10. وبعد ذلك، نعلن عن 'القيمة السلبية' ونخصصها بنفي 'القيمة الإيجابية' باستخدام عامل التشغيل الأحادي ناقص. يقوم هذا العامل بتغيير إشارة القيمة الأصلية بشكل فعال. نستخدم بعد ذلك عبارة 'cout' لعرض كل من الإخراج الإيجابي والسلبي على وحدة التحكم. وأخيرا، يقوم البرنامج بإرجاع 0 مما يشير إلى إكمال الوظيفة الرئيسية بنجاح.

عند تنفيذه، يقوم هذا البرنامج بإخراج القيم الإيجابية والسلبية.

مثال 3: عامل التشغيل المنطقي NOT (!).

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

فيما يلي مثال بسيط يوضح استخدام عامل التشغيل المنطقي NOT:

#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات رئيسي ( ) {
منطقي صحيح = حقيقي ;
منطقي هو زائف = خطأ شنيع ;

منطقي resultNotTrue = ! صحيح ;
منطقي resultNotFalse = ! هو زائف ;

cout << 'القيمة الأصلية: ' << صحيح << '، بعد لا: ' << resultNotTrue << endl ;
cout << 'القيمة الأصلية: ' << هو زائف << '، بعد لا: ' << resultNotFalse << endl ;

يعود 0 ;
}

في هذا المثال، نعلن عن متغيرين منطقيين، 'isTrue' و'isFalse'. نقوم بعد ذلك بتطبيق عامل التشغيل NOT المنطقي على كل متغير، وتخزين النتائج في 'resultNotTrue' و'resultNotFalse' على التوالي. يقوم البرنامج بعد ذلك بطباعة القيم الأصلية ونتائج عملية NOT المنطقية لكلا المتغيرين.

عند تنفيذ هذا البرنامج، سنلاحظ أن المعامل NOT المنطقي يعكس قيمة الحقيقة 'isTrue' (التي تم ضبطها في البداية على true)، مما يجعلها خاطئة. وبالمثل، فإنه يعكس قيمة الحقيقة لـ 'isFalse' (خطأ في الأصل)، مما يؤدي إلى الحصول على قيمة صحيحة.

يوضح الإخراج بوضوح عكس قيم الحقيقة التي يتم تحقيقها بواسطة عامل التشغيل NOT المنطقي.

المثال 4: عامل تشغيل Bitwise NOT (~).

عامل التشغيل NOT (~) في لغة C++ هو عامل تشغيل أحادي يقوم بإجراء نفي كل بت من معامله. وهو يعمل مع أنواع البيانات الأساسية، وخاصة تلك المتكاملة، مثل الأعداد الصحيحة. يتم تحقيق النتيجة عن طريق عكس كل بتة فردية في المعامل، وتحويل 0s إلى 1s و1s إلى 0s.

لتوضيح استخدامه، خذ بعين الاعتبار مقتطف الكود التالي:

#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات رئيسي ( ) {
كثافة العمليات القيمة الأصلية = 5 ;

كثافة العمليات resultBitwiseNot = ~القيمة الأصلية ;

cout << 'القيمة الأصلية: ' << القيمة الأصلية << '، بعد Bitwise NOT: ' << resultBitwiseNot << endl ;

يعود 0 ;
}

في هذا المثال، نعلن عن متغير صحيح 'originalValue' بقيمة '5'. بعد ذلك، نستخدم عامل التشغيل NOT (~) على هذا المتغير. يتم تخزين نتيجة هذا المتغير في 'resultBitwiseNot'. يقوم البرنامج بعد ذلك بطباعة القيمة الأصلية والنتيجة بعد عملية NOT من خلال استخدام العبارة 'cout'.

عندما نقوم بتشغيل هذا البرنامج، سنرى أن معامل البت NOT يعكس كل بت من التمثيل الثنائي لـ 'originalValue'، مما يؤدي إلى قيمة جديدة.

مثال 5: عوامل تشغيل العنوان وغير الاتجاه

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

دعونا نفهم المفهوم بمثال:

#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات رئيسي ( ) {
كثافة العمليات قيمة = 99 ;

cout << 'القيمة الأصلية: ' << قيمة << endl ;

كثافة العمليات * بتر = & قيمة ;
cout << 'عنوان الذاكرة:' << بتر << endl ;

كثافة العمليات قيمة مستردة = * بتر ;
cout << 'القيمة المستردة:' << قيمة مستردة << endl ;

يعود 0 ;
}

يمثل هذا الرمز استخدام عوامل العنوان والمراوغة. أولاً، تتم تهيئة متغير عدد صحيح يسمى 'القيمة' بقيمة 99. ثم يتم إخراج القيمة الأصلية لـ 'القيمة' إلى وحدة التحكم. بعد ذلك، يتم الإعلان عن متغير مؤشر 'ptr'، ويتم استخدام عنوان المشغل (&) لتعيين عنوان الذاكرة 'القيمة' إلى 'ptr'. يقوم البرنامج بعد ذلك بإخراج عنوان الذاكرة هذا، مع عرض العملية الأساسية لمشغل 'العنوان'.

بعد ذلك، يتم الإعلان عن متغير صحيح جديد وهو 'retrieveValue'، ويتم استخدام عامل الاتجاه غير المباشر (*) لاسترداد القيمة المخزنة في عنوان الذاكرة المشار إليه بواسطة 'ptr'. ثم يتم إخراج القيمة المستردة إلى وحدة التحكم.

خاتمة

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