سؤال في c++

السلام عليكم لدي كود (C++) وظيفته حساب كم مرة تم استدعاء الدالة

طبعا بدون استخدام الstatic او global variables… اربد شرح كيف يعمل الكود

جزاكم الله خيرا

#include <iostream>
using namespace std;
void count() {
int a;
a++;
cout << a << " time" << endl;
};

int main() {
int i;
for(i=1;i<=10;++i){
return 0;
}

  1. السلام عليكم الاخ محمد اتمنى انك بخير 🙂
    بنسبة للكود الموضح لديك ليس له علاقة باستدعاء الدالة بل سيعطيك الoutput خطا ولتفادى ذلك عليك باغلاقك ال for loop اولا ومن ثم توضيح كيفية استدعائك للدالة
    الاهم من ذلك ساقوم باذن الله بتوضيح كيفية استدعاء تلك الدالة و كيف تقوم بدوران…
    ولكن علينا الاتفاق انه لا يمكن لل output ان يضع قيمة لانه لا يوجد قيمة للمتغير int a
    فيجب علينا نقل القيم عبر parameters لانه لا يمكن ان يتم وضع اى قيمة داخل الدالة count لانه لا توجد قيمة داخلها
    فكيف سيزيد العداد واى قيمة سيطبع ؟؟ ( رقم )
    لقد اكثرت عليك ولكن كل ذلك ليتم توضيح كيف اجابت انا على ذلك.
    يقوم الcompiler بالدخول فى الدالة الرئيسية
    int main
    ثم يقرا ال(for loop )
    ليجد انه سيتم الدوران 10 مرات لوجود الشرط
    i <= 10
    وفى اول دورة تكون قيمة ال
    i = 1
    يبدا الدوران من اللفة رقم 1 ويتحقق الشرط الذى == i <= 10
    ليدخل عند نطاق ال (for loop)
    ليجد الدالة ( void count )
    ويجب ارسال قيم للمتغير المتواجد داخل تلك الدالة
    المتغير هو = int a
    ليقوم بعمل العداد لرقم المرسل عبر ال parameter
    ثم يتم الطباعة من الدالة نفسها
    ف مثلا تم ارسال الرقم 1 ////////
    سيدخل الدالة ويزيد بقيمة واحد لوجود a++
    a++ تعنى a = a+1
    وسيتم زيادة الرقم المرسل الذى كان 1 الى 2 ///////////
    وسيتم طباعة 2 times /////////
    وهذا كله داخل الدالة = void count
    ثم لا يوجد م يتم قراته ف ينتقل الدالة count
    ولا ننسى انه الى اللان كان داخل ال for loop
    وسيرجع لل for loop
    وهنا تكون قيمة ال i = 2
    اى انه الدورة الثانية وسيتحقق الشرط لان الاثنين اصغر من ال10 وهكذا

    ويتم الدخول ف الدالة الاخرى ويتم اعادة ما تم 10 مرات
    وسيتم طباعة
    /////// 2 times //////
    10 مرات
    هذا هو عمل الدالة بكل بساطة .
    ارجو انى قدمت المساعدة ولو قليلا.

    • 2
أضف اجابة

أضف اجابة

‫تصفح