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

بدون تكرار

بدأه ibr_exn في 26 يوليو 2011 · 1 رد · 1,647 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته،

كل عام وانتم بخير و رمضان كريم وتقبل الله منا ومنكم صالح الاعمال. :)

ارجو المسامحة من الادارة ومن الاعضاء على التقصير ولكن الظروف الحالية التي نمر بها محبطة فعلا. :wacko:

موضوع بدون تكرار اقصد فيه كيفية حل المسائل دون اللجوء الى تعليمات التكرار التقليدية (for, while, do, go to, ... etc ) واستخدام طريقة الاستدعاء الذاتي :happy: . كلما طبق الطالب امثلة اكثر في هذا الموضوع كلما زدا فهمه لهذه التقنية المهمة واستطاع التمكن من حل مسائل صعبة جدا بخطوات بسيطه. :sleep:

في هذا الموضوع ساعطي امثلة بسيطة وبعض التمارين. ساكتب فقط الخوارزمية ويمكن تحويلها بعد ذلك الى اي لغة برمجه. :cool:

مثال 1 : طباعة الاعداد من 1 الى 1000 بدون تكرار.

function MyPrint(x)
   begin  
   if x >0 then   
      begin     
      MyPrint(x-1)     
      print(x)     
      end     
   end  
============
MyPrint(1000)

الخط الفاصل لفصل الدالة عن البرنامج الرئيسي.

سيتم الاستدعاء للدالة بشكل متكرر من الالف الى الصفر وبعد ذلك يتم الرجوع من الصفر الى الالف مرة اخرى. ما يتم كتابته بعد عملية الاستدعاء يتم تنفيذه اثناء العودة وبالتالي سيتم طباعة الاعداد بشكل تصاعدي من الواحد الى الالف.

مثال 2 : طباعة الاعداد من 1000 الى 1 بدون تكرار.

function MyPrint(x)
   begin  
   if x >0 then   
      begin     
      print(x)     
      MyPrint(x-1)     
      end     
   end  
============
MyPrint(1000)

لاحظ ان كل ماعملناه هو نقل امر الطباعة ليتم تنفيذه قبل الاستدعاء وبالتالي سيتم طباعة الاعداد بشكل تنازلي من الالف الى الواحد.

بعض التمارين البسيطة : بدون استخدام التكرار. :)

س1: اكتب خوارزمية لحساب مضروب عدد صحيح موجب يتم ادخاله من قبل المستخدم .

س2: اكتب خوارزمية لحساب مجموع الاعداد من واحد الى 1000.

س3: اكتب خوارزمية لطباعة الاعداد الزوجية بين الواحد وبين عدد صحيح موجب يتم ادخاله من قبل المستخدم.

س4: اكتب خوارزمية لطباعة الاعدادالفردية ثم الاعداد الزوجية بين الصفر و حتى عدد صحيح موجب يتم ادخاله من قبل المستخدم.

مثلا اذا تم ادخال 10 يقوم بطباعة :

1

3

5

7

9

2

4

6

8

10

بالتوفيق

تم تعديل هذه المشاركة بواسطة ibr_exn في 26 يوليو 2011 في 23:23

الحمد لله الذي هدانا لهذا وماكنا لنهتدي لولا ان هدانا الله

#2

س2:

def f(x):
 return x*(x+1)/2

Results

In [24]: def f(x):
   ....:     return x*(x+1)/2
   ....: 

In [25]: f(1000)
Out[25]: 500500

وَمَا أُوتِيتُمْ مِنْ الْعِلْمِ إِلاَّ قَلِيلاً

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