الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شـرح مثـال .؟

بدأه آمـــال في 10 يونيو 2011 · 2 رد · 493 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ممكن تشرحو لي كيف عمل هذا المثال ..


void someFunction( int [], int, int ); // function prototype

int main()
{
const int arraySize = 10;
int a[ arraySize ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

cout << "The values in the array are:" << endl;
someFunction( a, 0, arraySize );
cout << endl;
return 0; // indicates successful termination
} // end main

// What does this function do?
void someFunction( int b[], int current, int size )
{
if ( current < size )
{
someFunction( b, current + 1, size );
cout << b[ current ] <<" ";
} // end if

}
#include<iostream.h>

المخرجات بتساوي

اقتباس
The values in the array are:

10 9 8 7 6 5 4 3 2 1

كيف و ليه قلب المصفوفه :mad:

#2

عليكم السلام

مرحبا اختي منال

 // What does this function do?
  void someFunction( int b[], int current, int size )
  {
  if ( current < size )
  {
  someFunction( b, current + 1, size );
  cout << b[ current ] <<" ";
  } // end if

  }

هذه دالة function تقوم بعملية Recursion استدعاء ذاتي

لمزيد من المعرفة حول recursion بنراجع مصدر مفصّل آخر

آسفة happy.gif

السبب حول طباعة عناصر المصفوفة بالمقلوب هو:

وجود استدعاء الدالة لذاتها قبل سطر الطباعة

فتبدأ الدالة أولاً بالإستدعاء الدخول لنفسها مرة تلو الأخرى بعدد عناصر المصفوفة 10 مرات يعني

وبعد الإنتهاء من النداء الآخير بتتم طباعة آخر عنصر 10 ثم تعود للنداء السابق 9 ثم تعود 8 وهيك لغاية 1

جربي واكتبي سطر الطباعة cout قبل سطر الإستدعاء الزاتي بتكون شغلة عادية 1 2 3 4 5 6 7...

موفقة يارب

1

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#3

بئى كذا :wacko:

الله يسعدك حوريـه

وماشا الله عليك ,

فهمت شكرررررررآ الـف

تم تعديل هذه المشاركة بواسطة آمـــال في 10 يونيو 2011 في 17:41

مواضيع مشابهة