أخبار الموقع

تمارين بكالوريا محلولة في الخوارزميات والمخططات الانسيابية — الثالثة ثانوي (بكالوريا) — شعبة تقني رياضي — الإعلام الآلي

📘 بطاقة الدرس

المادة الإعلام الآلي
المستوى الثالثة ثانوي (بكالوريا — شعبة تقني رياضي)
الوحدة الخوارزميات والبرمجة — تمارين بكالوريا محلولة
المدة الزمنية حصتان (ساعتان)

🎯 أهداف التعلم

  • تطبيق المفاهيم الخوارزمية في حل مسائل بكالوريا
  • التمكن من كتابة الخوارزميات والمخططات الانسيابية
  • تحويل الخوارزميات إلى برامج بلغة Pascal
  • الاستعداد الجيد لامتحان البكالوريا في الإعلام الآلي

🔍 تمهيد

تعتبر مادة الإعلام الآلي في البكالوريا (شعبة تقني رياضي) من المواد الأساسية التي تتطلب فهماً عميقاً للخوارزميات والقدرة على تحويلها إلى برامج. في هذا الدرس، نقدم مجموعة من التمارين المحلولة التي تغطي أنماط الأسئلة المتكررة في امتحانات البكالوريا.

📝 التمرين الأول: الأعداد الأولية (بكالوريا 2018)

اكتب خوارزمية ومخطط انسيابي وبرنامجاً بلغة Pascal يقرأ عدداً صحيحاً موجباً N ثم يتحقق مما إذا كان عدداً أولياً أم لا. (العدد الأولي هو عدد يقبل القسمة على 1 وعلى نفسه فقط).

🟢 الحل الكامل

1. التحليل:

  • المدخلات: عدد صحيح N
  • المخرجات: رسالة “أولي” أو “ليس أولياً”
  • الخوارزمية: نقسم N على الأعداد من 2 إلى N-1، إذا وجدنا قاسماً فليس أولياً

2. الشيفرة الوصفية (Pseudo-code):

خوارزمية Prime_Check
المتغيرات:
  N, i: صحيح
  isPrime: منطقي
البداية:
  اكتب("أدخل عدداً: ")
  اقرأ(N)
  إذا كان N <= 1 فإن
    اكتب("ليس أولياً")
  وإلا
    isPrime ← صحيح
    بالنسبة i من 2 إلى N-1
      إذا كان N Mod i = 0 فإن
        isPrime ← خطأ
        اخرج من الحلقة
      نهاية إذا
    نهاية بالنسبة
    إذا كان isPrime = صحيح فإن
      اكتب(N, " عدد أولي")
    وإلا
      اكتب(N, " ليس أولياً")
    نهاية إذا
  نهاية إذا
نهاية الخوارزمية

3. برنامج Pascal:

Program PrimeCheck;
Var
  N, i: Integer;
  isPrime: Boolean;
Begin
  Write('أدخل عدداً صحيحاً موجباً: ');
  ReadLn(N);
  
  If N <= 1 Then
    WriteLn(N, ' ليس عدداً أولياً')
  Else
  Begin
    isPrime := True;
    For i := 2 To N-1 Do
      If N Mod i = 0 Then
      Begin
        isPrime := False;
        Break;
      End;
    
    If isPrime Then
      WriteLn(N, ' عدد أولي')
    Else
      WriteLn(N, ' ليس عدداً أولياً');
  End;
  ReadLn;
End.

4. تحسين الكفاءة:

يمكن تحسين الخوارزمية بالاقتصار على القسمة على الأعداد حتى √N بدلاً من N-1:

For i := 2 To Trunc(Sqrt(N)) Do
  If N Mod i = 0 Then
  Begin
    isPrime := False;
    Break;
  End;

📝 التمرين الثاني: البحث عن أكبر عنصر في مصفوفة (بكالوريا 2017)

اكتب خوارزمية وبرنامجاً بلغة Pascal يقوم بالآتي:

  1. قراءة عدد صحيح N (10 ≤ N ≤ 50)
  2. ملء مصفوفة T بعدد N من الأعداد الصحيحة
  3. إيجاد وعرض أكبر عنصر في المصفوفة مع موقعه (الرقم الترتيبي)
🟢 الحل الكامل

1. التحليل:

  • نستخدم مصفوفة أحادية البعد (One-dimensional array)
  • نفترض أن أول عنصر هو الأكبر، ثم نقارن مع باقي العناصر
  • كلما وجدنا عنصراً أكبر، نحدّث القيمة القصوى والموقع

2. برنامج Pascal:

Program MaxElement;
Var
  T: Array[1..50] Of Integer;
  N, i, max, pos: Integer;
Begin
  // التحقق من صحة الإدخال
  Repeat
    Write('أدخل عدد العناصر (10-50): ');
    ReadLn(N);
    If (N < 10) Or (N > 50) Then
      WriteLn('خطأ! العدد يجب أن يكون بين 10 و 50.');
  Until (N >= 10) And (N <= 50);

  // ملء المصفوفة
  For i := 1 To N Do
  Begin
    Write('T[', i, '] = ');
    ReadLn(T[i]);
  End;

  // إيجاد أكبر عنصر
  max := T[1];
  pos := 1;
  For i := 2 To N Do
    If T[i] > max Then
    Begin
      max := T[i];
      pos := i;
    End;

  // عرض النتيجة
  WriteLn('أكبر عنصر هو ', max, ' في الموقع ', pos);
  ReadLn;
End.

3. سؤال إضافي (للمتفوقين):

عدّل البرنامج ليجد أصغر عنصر أيضاً.

📝 التمرين الثالث: حساب المضروب (Factorial) — بكالوريا 2016

المضروب (Factorial) لعدد صحيح موجب N هو جداء الأعداد من 1 إلى N. يرمز له بـ N!.

مثال: 5! = 5 × 4 × 3 × 2 × 1 = 120

اكتب خوارزمية وبرنامجاً بلغة Pascal:

  1. يقرأ عدداً صحيحاً N (N > 0)
  2. يحسب ويعرض N!
  3. يتأكد من صحة الإدخال (N يجب أن يكون موجباً)
🟢 الحل الكامل

1. برنامج Pascal:

Program Factorial;
Var
  N, i: Integer;
  fact: LongInt;
Begin
  Repeat
    Write('أدخل عدداً صحيحاً موجباً: ');
    ReadLn(N);
    If N <= 0 Then
      WriteLn('خطأ! الرجاء إدخال عدد موجب.');
  Until N > 0;

  fact := 1;
  For i := 1 To N Do
    fact := fact * i;

  WriteLn(N, '! = ', fact);
  ReadLn;
End.

2. التوسّع: حساب N! باستخدام While:

Program FactorialWhile;
Var
  N, i: Integer;
  fact: LongInt;
Begin
  Repeat
    Write('أدخل عدداً صحيحاً موجباً: ');
    ReadLn(N);
  Until N > 0;

  fact := 1;
  i := 1;
  While i <= N Do
  Begin
    fact := fact * i;
    i := i + 1;
  End;

  WriteLn(N, '! = ', fact);
  ReadLn;
End.

📝 التمرين الرابع: التحقق من تناظر عدد (Palindrome) — بكالوريا 2020

العدد المتناظر (Palindrome) هو عدد يبقى كما هو عند قراءته من اليسار إلى اليمين أو العكس.

أمثلة: 121, 1331, 12321

اكتب خوارزمية وبرنامجاً بلغة Pascal:

  1. يقرأ عدداً صحيحاً موجباً N
  2. يختبر إذا كان N عدداً متناظراً أم لا
  3. يعرض النتيجة
🟢 الحل الكامل

1. التحليل:

  • لعكس عدد: نأخذ باقي قسمة العدد على 10 لنحصل على آخر رقم
  • نضيف الرقم إلى العدد المعكوس (نضرب المعكوس في 10 ثم نجمع الرقم)
  • نقسم العدد الأصلي على 10 (نتجاهل الرقم الأخير)
  • نكرر حتى يصبح العدد 0

2. برنامج Pascal:

Program Palindrome;
Var
  N, original, reversed, remainder: Integer;
Begin
  Write('أدخل عدداً صحيحاً موجباً: ');
  ReadLn(N);
  
  original := N;
  reversed := 0;
  
  While N > 0 Do
  Begin
    remainder := N Mod 10;
    reversed := reversed * 10 + remainder;
    N := N Div 10;
  End;
  
  If original = reversed Then
    WriteLn(original, ' عدد متناظر')
  Else
    WriteLn(original, ' ليس عدداً متناظراً');
    
  ReadLn;
End.

3. اختبار البرنامج:

  • المدخل: 121 → original=121, reversed=121 → “متناظر” ✅
  • المدخل: 123 → original=123, reversed=321 → “ليس متناظراً” ✅
  • المدخل: 1221 → original=1221, reversed=1221 → “متناظر” ✅

📝 التمرين الخامس: متوسط الأعداد الفردية في مصفوفة (سؤال بكالوريا مركب)

اكتب برنامجاً بلغة Pascal يقوم بالآتي:

  1. قراءة عدد صحيح N (5 ≤ N ≤ 30)
  2. ملء مصفوفة T بـ N من الأعداد الصحيحة
  3. حساب وعرض متوسط الأعداد الفردية الموجودة في المصفوفة
  4. إذا لم توجد أعداد فردية، اعرض رسالة “لا توجد أعداد فردية”
🟢 الحل الكامل
Program OddAverage;
Var
  T: Array[1..30] Of Integer;
  N, i, sum, count: Integer;
  avg: Real;
Begin
  Repeat
    Write('أدخل عدد العناصر (5-30): ');
    ReadLn(N);
  Until (N >= 5) And (N <= 30);
  
  For i := 1 To N Do
  Begin
    Write('T[', i, '] = ');
    ReadLn(T[i]);
  End;
  
  sum := 0;
  count := 0;
  For i := 1 To N Do
    If T[i] Mod 2 <> 0 Then
    Begin
      sum := sum + T[i];
      count := count + 1;
    End;
  
  If count > 0 Then
  Begin
    avg := sum / count;
    WriteLn('عدد الأعداد الفردية: ', count);
    WriteLn('متوسطها: ', avg:0:2);
  End
  Else
    WriteLn('لا توجد أعداد فردية في المصفوفة');
    
  ReadLn;
End.

💡 نصائح لبكالوريا الإعلام الآلي

  • افهم الخوارزمية أولاً قبل كتابة الكود: ارسم مخططاً انسيابياً أو اكتب pseudo-code.
  • التحقق من صحة المدخلات (Validation) — استخدم Repeat … Until مع شرط مناسب.
  • انتبه لأنواع البيانات: استخدم Integer للأعداد الصحيحة و Real للأعداد العشرية و LongInt للأعداد الكبيرة.
  • اختبار الحالات الحدية: اختبر برنامجك بـ N=0, N=1, N سالب (إن أمكن).
  • التهيئة الصحيحة: لا تنس تهيئة المتغيرات قبل استخدامها (مثل sum := 0).

📌 ملخص التمارين

  • التمرين 1: الأعداد الأولية — استخدام الحلقات و If مع Mod.
  • التمرين 2: أكبر عنصر في مصفوفة — المصفوفات أحادية البعد والمقارنة.
  • التمرين 3: حساب المضروب — الحلقات التكرارية مع الجداء.
  • التمرين 4: الأعداد المتناظرة — عكس الأرقام باستخدام While و Mod و Div.
  • التمرين 5: متوسط الأعداد الفردية — المصفوفات مع الشرط والتراكم.

📍 دروس مشابهة:

شاهد أيضا

النظافة والبيئة في الحي — التربية المدنية — السنة الثالثة ابتدائي — المنهاج الجزائري

[K] النظافة والبيئة في الحي المنهاج: الجزائري | المرحلة: ابتدائي [H] أهداف التعلم أن يدرك …

المستقيمات المتوازية والمستقيمات المتعامدة — الرياضيات — السنة الثالثة ابتدائي — المنهاج الجزائري

[K] المستقيمات المتوازية والمستقيمات المتعامدة المنهاج: الجزائري | المرحلة: ابتدائي [H] أهداف التعلم أن يتعرف …

آداب الطعام والشراب في الإسلام (للأطفال) — التربية الإسلامية — السنة الثانية ابتدائي — المنهاج الجزائري

[K] آداب الطعام والشراب في الإسلام (للأطفال) المنهاج: الجزائري | المرحلة: ابتدائي [H] أهداف التعلم …

المسكن (أنواع المساكن وأجزاء المنزل) — التربية المدنية — السنة الثانية ابتدائي — المنهاج الجزائري

[K] المسكن (أنواع المساكن وأجزاء المنزل) المنهاج: الجزائري | المرحلة: ابتدائي [H] أهداف التعلم أن …

اترك تعليقاً

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