أخبار الموقع

الخوارزميات العودية (Récursivité / Recursion) في البرمجة: المفهوم والتطبيقات مع تمارين بكالوريا محلولة — الثالثة ثانوي (بكالوريا) إعلام آلي — شعبة تقني رياضي — المنهاج الجزائري

الخوارزميات العودية (Récursivité)

العودية (Récursivité أو Recursion) هي تقنية برمجية تقوم فيها الدالة باستدعاء نفسها لحل مشكلة بتقسيمها إلى مسائل فرعية أصغر. تعتبر من المفاهيم الهامة في امتحانات البكالوريا شعبة تقني رياضي.

1. مفهوم الدالة العودية

الدالة العودية هي دالة تستدعي نفسها ضمن تعريفها. يجب أن تحتوي على شرط توقف (Condition darrêt) يمنع التكرار اللانهائي.

function Factorielle(n : integer) : integer;
begin
  if n <= 1 then
    Factorielle := 1        { شرط التوقف }
  else
    Factorielle := n * Factorielle(n - 1);  { استدعاء عودي }
end;

2. شروط الدالة العودية

  • شرط التوقف (Cas de base): حالة بسيطة يمكن حلها مباشرة
  • الاستدعاء العودي (Appel récursif): استدعاء الدالة نفسها بقيمة أصغر
  • التقارب: يجب أن تقترب كل استدعاء من شرط التوقف

3. مقارنة بين الخوارزميات العودية والتكرارية

الخوارزميات العودية الخوارزميات التكرارية
أسهل في الفهم والكتابة قد تكون أطول في الكتابة
تستهلك ذاكرة أكثر (Stack) تستهلك ذاكرة أقل
مناسبة للمسائل ذات البنية العودية (الأشجار) مناسبة للعمليات البسيطة
قد تكون أبطأ عادة أسرع في التنفيذ

📝 تمرين بكالوريا محلول – حساب المضروب (Factorielle)

التمرين: اكتب برنامجاً في Pascal يستخدم دالة عودية لحساب مضروب عدد صحيح n (n!) حيث n يُدخله المستخدم. ملاحظة: n! = 1 × 2 × 3 × … × n.

الحل النموذجي:

program FactorielleRecursive;
uses wincrt;
var
  n : integer;

function Fact(n : integer) : integer;
begin
  if n <= 1 then
    Fact := 1
  else
    Fact := n * Fact(n - 1);
end;

begin
  write("Entrez un entier positif : ");
  readln(n);
  if n < 0 then
    writeln("Erreur : nombre negatif !")
  else
    writeln(n, "! = ", Fact(n));
end.

📝 تمرين بكالوريا محلول – متتالية فيبوناتشي

التمرين: اكتب دالة عودية في Pascal لحساب حد متتالية فيبوناتشي حيث: Fib(0)=0, Fib(1)=1, Fib(n)=Fib(n-1)+Fib(n-2).

function Fibonacci(n : integer) : integer;
begin
  if n <= 1 then
    Fibonacci := n
  else
    Fibonacci := Fibonacci(n-1) + Fibonacci(n-2);
end;

📌 نصائح للبكالوريا

  • حدد دائماً شرط التوقف أولاً قبل كتابة الاستدعاء العودي
  • تأكد أن المشكلة الفرعية أصغر من المشكلة الأصلية
  • يمكن تحويل معظم الخوارزميات العودية إلى تكرارية والعكس
  • في امتحان البكالوريا، اكتب الخوارزمية العودية إذا كانت أبسط في الفهم

📍 دروس مشابهة:
المصفوفات (Tableaux) في لغة Pascal: التعريف والتصريح والمعالجة مع تمارين بكالوريا محلولة
خوارزميات الفرز والبحث: الفرز الفقاعي والبحث الثنائي مع تمارين بكالوريا محلولة

شاهد أيضا

بنك الأسئلة التربوية (2) — للتلاميذ: طرق المراجعة والتحفيز الدراسي (75 سؤالاً)

📚 بنك الأسئلة التربوية (2) — للتلاميذ: طرق المراجعة والتحفيز الدراسي الحلقة الثانية من بنك …

موضوع امتحان بكالوريا 2021 في التربية الإسلامية مع الحل – جميع الشعب

امتحان شهادة البكالوريا 2021 – التربية الإسلامية – جميع الشعب المدة: 2 ساعة – المعامل: …

موضوع امتحان بكالوريا 2022 في الرياضيات مع الحل – شعبة تقني رياضي

امتحان شهادة البكالوريا 2022 – الرياضيات – شعبة تقني رياضي المدة: 4 ساعات – المعامل: …

موضوع امتحان بكالوريا 2023 في التاريخ والجغرافيا مع الحل – شعبة آداب وفلسفة

امتحان شهادة البكالوريا 2023 – التاريخ والجغرافيا – شعبة آداب وفلسفة المدة: 3 ساعات – …

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *