السلسة27
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

السلسة27

  • 202 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
202
On Slideshare
202
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ‫1‬ ‫سلسلة هيمو لعلوم الحاسب‬ ‫الدرس (27)‬ ‫‪RECURSION‬‬ ‫التكرار و العودة‬ ‫التاليف البرمجي‬ ‫هيثم مالك فهمي محمد الشريف‬
  • 2. ‫سلسلة هيمو لعلوم الحاسب‬ 2 ‫انشاء برنامج يقوم بجمع قيمة عددية من خالل المسلسلة تنازلي لنفس ذلك العدد ؟‬ ‫الحل‬ #include<iostream> #include<algorithm> using namespace std; int summation(int number); int main() { int num; int reslut; cout <<"n t t Enter number Recursion t"; cin>> num; reslut =summation( num); cout <<"n t t The Value is:"<<reslut<<endl; system("pause"); return 0; } int summation(int number) { if(number==1) return 1; return (number+summation(number-1)); } ‫فكرة البرنامج‬ ‫برنامج يجمع االرقام‬ 1+2+3+4+5 …. Number ‫يمكن كتابة االرقام هكذا‬ ‫مجموع كل االعدد القبلية لهذا العدد‬Num+ (num-1) ‫اي يكون‬ ‫اي وضع العدد 4 يكون كا التالي‬ 4 ‫جمع ماقبل العدد 4و هو 3+2+1 يعطي قيمة 6 ثم اضف قيمة 4 ليصبح الناتج 11 لمتناقصات العدد‬
  • 3. ‫3‬ ‫سلسلة هيمو لعلوم الحاسب‬ ‫الشرح‬ ‫1- سوف اقوم باالعالن عن الوظيفة ‪ summation‬و هي من النوع ‪integer‬‬ ‫2- ثم بعد ذلك انتقل الي الجزء السفلي من البرنامج لكتابة الكود الخاص بعملية حساب العدد المختار لعرض قيمتة‬ ‫3- سوف اقوم بوضع الشرط ‪ if‬في حالة اذا كان العدد المكتوب يساوي 1 قم بطباعة و اعادة القيمة الي 1 حيث ال‬ ‫يوجد للعدد 1 قيم تنازلية و يخرج من التكرار و العودة‬ ‫4- اما اذا كان العدد اكبر من القيمة العددية 1 فهذا يعني وجود قيم تنازلية للعدد‬ ‫5- لو فرضت ان القيمة الموضوعة هي 5 يوضع داخل الدالة ثم يذهب الي الشرط نجد ان الشرط ال يتحقق حيث انه‬ ‫اكبر من 1‬ ‫6- فيذهب الي الكود التالي و هو ))1-‪)number+summation (number‬‬ ‫7- يصبح 5 = ‪ + number‬قيمة )1-‪ summation (number‬اي تساوي 4 حيث طرح العدد 5 من المتغير‬ ‫‪ number‬ثم تم اضافتة الي المتغير ‪summation‬‬ ‫8- الي ان تصل قيمة العدد في المتغير ‪ number‬الي 1 و من ثم تخضع لشرط الخروج من التكرار و العودة‬ ‫الشرح المرسوم‬ ‫)‪int summation(int number‬‬ ‫{‬ ‫)1==‪if(number‬‬ ‫;1 ‪return‬‬ ‫;))1-‪return (number+ summation(number‬‬ ‫}‬ ‫مما سبق‬ ‫القيمة المدخلة هي 4‬ ‫و من الدالة يكون التالي‬ ‫بما ان الدالة االساسية اصبحت تساوي القيمة المدخلة 4( 4(‪summation‬‬ ‫))1-‪return (number+ summation(number‬‬ ‫)1-4(‪4+summation‬‬ ‫اي‬ ‫4‬ ‫)3(‪4+summation‬‬ ‫3‬ ‫)2(‪4+summation‬‬ ‫2‬ ‫)1(‪4+summation‬‬ ‫1‬ ‫)0(‪4+summation‬‬ ‫11‬ ‫يصبح القيمة الكاملة‬