• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
السلسة27
 

السلسة27

on

  • 168 views

 

Statistics

Views

Total Views
168
Views on SlideShare
168
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    السلسة27 السلسة27 Document Transcript

    • ‫1‬ ‫سلسلة هيمو لعلوم الحاسب‬ ‫الدرس (27)‬ ‫‪RECURSION‬‬ ‫التكرار و العودة‬ ‫التاليف البرمجي‬ ‫هيثم مالك فهمي محمد الشريف‬
    • ‫سلسلة هيمو لعلوم الحاسب‬ 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‬ ‫سلسلة هيمو لعلوم الحاسب‬ ‫الشرح‬ ‫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‬ ‫يصبح القيمة الكاملة‬