البرمجة

تغيير قيم المتغيرات في الدوال بلغة C++

في هذا الكود، يبدو أن القضية الأساسية التي تواجهها هي عدم تغيير قيم المتغيرات i و j داخل الدالة الرئيسية main. دعوني أشرح لك السبب وأوضح الطريقة التي يمكنك من خلالها تغيير قيمهما.

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

بمعنى آخر، عند تمرير متغير إلى دالة باستخدام الإشارة (&)، فإن أي تعديل يتم على هذا المتغير داخل الدالة سينعكس على القيمة الأصلية للمتغير خارج الدالة.

لذا، إذا أردت تغيير قيم المتغيرات i و j داخل الدالة main عن طريق استدعاء الدالة rev، يمكنك فعل ذلك ببساطة من خلال تمريرهما كمعاملات بالإشارة إلى الدالة. وهكذا، سيتم تعديل قيمهما داخل الدالة وسينعكس هذا التعديل على القيمة الأصلية للمتغيرات في الدالة main.

هذا هو الكود بتعديلات ليتمكن من تغيير قيم المتغيرات i و j داخل الدالة rev:

cpp
#include using namespace std; int rev(int& sourcenum) { int temp = sourcenum; int sum = 0; while (temp!=0) { sum*=10; sum += temp%10; temp/=10; } return sum; }; int main() { int i,j; cin >> i >> j; // تعديل قيم i و j داخل الدالة rev باستخدام الإشارة (&) int add = rev(i)+rev(j); cout<" "<rev(add); }

باستخدام هذا التعديل، يمكنك الآن تغيير قيم المتغيرات i و j داخل الدالة rev دون أي مشكلة، وستنعكس هذه التغييرات على القيم الأصلية للمتغيرات في الدالة main.

المزيد من المعلومات

بالطبع! دعوني أواصل الشرح.

عند تنفيذ الشفرة المعطاة، يتم قراءة القيم المدخلة للمتغيرين i و j باستخدام الدالة cin. ثم يتم استدعاء الدالة rev مرتين، وناتج كل مكالمة يتم تخزينه في المتغير add.

بعد ذلك، يتم طباعة قيم المتغيرين i و j، تليها قيمة المتغير add. وأخيرًا، يتم طباعة نتيجة تطبيق دالة rev على المتغير add، مما يظهر العدد الذي تمثله هذه النتيجة بعد تنفيذ عملية عكس الأرقام.

الآن، بعد أن قمت بتعديل الكود ليمكنك من تغيير قيم المتغيرات i و j داخل الدالة rev، يمكنك تجربته لرؤية النتائج بنفسك وفهم كيفية عمل الشفرة بشكل أعمق.

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

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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