الانتقال إلى المحتوى

تصميم الخوارزميات وحل المشكلات

IGCSE علوم الحاسوب · الموضوع 7

درس فيديو لهذا الموضوع افتح صفحة الفيديو
9:17

دورة حياة تطوير البرامج

كل تطبيق على هاتفك كُتب بواسطة شخص مثلك. لكنهم لم يبدأوا بكتابة الكود. قبل السطر الأول، تم دراسة المشكلة، والحل…

سرد باللغة الإنجليزية · ترجمة مدمجة بالإنجليزية + الصينية

المنهج
يجب أن يكون المرشحون قادرين على: ملاحظات وإرشادات
1 افهم دورة حياة تطوير البرنامج، مقيدة بـ: التحليل، التصميم، البرمجة والاختبار • يشمل تحديد كل مرحلة وإنجاز المهام التالية لكل مرحلة: – التحليل: التجريد، تفكيك المشكلة، تحديد المشكلة والمتطلبات – التصميم: التفكيك، المخططات الهيكلية، المخططات الانسيابية، الكود الوهمي – البرمجة: كتابة كود البرنامج واختباره بشكل تكراري – الاختبار: اختبار كود البرنامج باستخدام بيانات الاختبار
2 (أ) افهم أن كل نظام حاسوبي يتكون من نظم فرعية تتكون بدورها من نظم فرعية أخرى (ب) افهم كيفية تفكيك المشكلة إلى أجزائها المكوِّنة • يشمل: – المدخلات – العمليات – المخرجات – التخزين
(ج) استخدم طرقاً مختلفة لتصميم وبناء حل للمشكلة • يشمل: – المخططات الهيكلية – المخططات الانسيابية – الكود الوهمي
3 اشرح الغرض من خوارزمية معينة • يشمل: – صياغة غرض الخوارزمية – وصف العمليات المصاحبة للخوارزمية
4 افهم الطرق القياسية للحلول • مقيدة بـ: – البحث الخطي – الفرز الفقاعي – المجموع – العد – إيجاد القيم العظمى والصغرى والمتوسطة
5 (أ) افهم الحاجة لإجراء فحوصات التحقق على بيانات الإدخال وأنواعها المختلفة • يشمل: – فحص النطاق – فحص الطول – فحص النوع – فحص الوجود – فحص التنسيق – رقم التحقق
(ب) افهم الحاجة لإجراء فحوصات التأكد على بيانات الإدخال وأنواعها المختلفة • يشمل: – الفحص البصري – إدخال مزدوج
6 اقترح وطبّق بيانات اختبار مناسبة • مقيدة بـ: – عادية – غير عادية – متطرفة – حدودية • البيانات المتطرفة هي أكبر/أصغر قيمة مقبولة • البيانات الحدودية هي أكبر/أصغر قيمة مقبولة والقيمة المقابلة الأصغر/الأكبر المرفوضة
7 أكمل جدول التتبع لتوثيق تشغيل جاف لخوارزمية • يشمل، في كل خطوة من خطوات الخوارزمية: – المتغيرات – المخرجات – رسائل المستخدم
8 حدد الأخطاء في الخوارزميات المعطاة واقترح طرقاً لتحيحها
9 اكتب وعدّل الخوارزميات لمشاكل أو سيناريوهات معينة، مستخدماً: الكود الوهمي، وكود البرنامج، والمخططات الانسيابية • مطلوب الدقة عند كتابة الخوارزميات، مثلاً: x > y مقبول لكن x is greater than y غير مقبول • انظر القسم 4 لرموز المخططات الانسيابية • انظر القسم 4 للكود الوهمي

المصدر: منهج كامبريدج الدولي

7.1

دورة حياة تطوير البرنامج

دورة حياة تطوير البرنامج هي مجموعة المراحل المستخدمة لإنشاء برنامج. توجد أربع مراحل.

مبرمج يكتب الكود على جهاز كمبيوتر
يتم كتابة البرمجيات بواسطة المبرمجين، الذين يتبعون دورة الحياة التطويرية
المرحلة ما تفعله
التحليل دراسة المشكلة وتحديد ما هو مطلوب
التصميم التخطيط لكيفية عمل البرنامج
الكتابة البرمجية كتابة كود البرنامج واختباره أثناء البناء
الاختبار تشغيل البرنامج النهائي ببيانات اختبار لاكتشاف الأخطاء
أربع مراحل متجاورة — تحليل، تصميم، كتابة برمجية، اختبار — مع سهم يعيد التغذية من الاختبار إلى التصميم
المراحل الأربع لتطوير البرنامج؛ يعيد الاختبار التغذية لتصحيح وتصميم التحسينات
مخطط انسيابي لبرنامج يحتوي على صناديق عمليات وماسيات قرار
مخطط انسيابي لبرنامج يوضح خطوات وقرارات البرنامج خلال مرحلة التصميم

التحليل

في التحليل تفهم المشكلة. مهارتان رئيسيتان تساعدان:

  • التجريد — الاحتفاظ فقط بالتفاصيل المهمة وتجاهل الباقي؛
  • التفكيك — تقسيم مشكلة كبيرة إلى أجزاء أصغر وأسهل.

التصميم

في التصميم تخطط للحل، غالباً باستخدام التفكيك. يمكنك عرض الأجزاء كـ أنظمة فرعية في مخطط هيكلي (رسم بياني يقسم نظاماً إلى صناديق أصغر).

الكتابة البرمجية والاختبار

في الكتابة البرمجية تكتب كود البرنامج. تستخدم الاختبار التكراري — تختبر أجزاء صغيرة مراراً وتكراراً أثناء بنائها. في الاختبار تشغيل البرنامج الكامل بـ بيانات اختبار للتحقق من عمله.

مفردات تدريب
English العربية
program development life cycle/ˈprəʊɡræm dɪˈveləpmənt laɪf ˈsaɪkl/ دورة حياة تطوير البرنامج
analysis/əˈnæləsɪs/ التحليل
design/dɪˈzaɪn/ التصميم
coding/ˈkəʊdɪŋ/ البرمجة
testing/ˈtestɪŋ/ الاختبار
abstraction/əbˈstrækʃn/ التجريد
decomposition/ˌdiːkɒmpəˈzɪʃn/ تحلل
sub-systems/sʌb ˈsɪstəmz/ الأنظمة الفرعية
structure diagram/ˈstrʌktʃə ˈdaɪəɡræm/ مخطط الهيكل
iterative testing/ˈɪtərətɪv ˈtestɪŋ/ الاختبار التكراري
test data/test ˈdeɪtə/ بيانات الاختبار
flowchart/ˈfləʊtʃɑːt/ مخطط انسيابي
7.2

أدوات التصميم

يمكنك التخطيط للحل بثلاث طرق رئيسية.

  • مخطط هيكلي — يظهر أجزاء النظام وكيف ترتبط ببعضها؛
  • مخطط انسيابي — رسم بياني يستخدم صناديق وأسهم لإظهار الخطوات بالترتيب؛
  • الكود الوهمي — خطوات مكتوبة بلغة إنجليزية بسيطة شبيهة بالكود (وليس لغة حقيقية).
مخطط انسيابي لجمع الأرقام من 1 إلى n، مع رموز البدء/الإنهاء، الإدخال/الإخراج، العملية والقرار، بالإضافة مفتاح يسمي كل شكل
مخطط انسيابي لخوارزمية المجموع، باستخدام الرموز القياسية (البدء/الإنهاء، الإدخال/الإخراج، العملية، القرار)
7.3

الخوارزميات

فرز الفقاعات، مررة بمررة

الخوارزمية هي مجموعة من الخطوات، بالترتيب الصحيح، تحل مشكلة. يمكن تقسيم كل خوارزمية إلى ثلاثة أجزاء:

  • المدخلات — البيانات التي تدخل؛
  • المعالجة — العمل المنجز على البيانات؛
  • المخرجات — النتيجة التي تظهر.

يُسمى هذا تفكيك المدخلات والمعالجات والمخرجات. على سبيل المثال، لـ "إيجاد متوسط ثلاث علامات": المدخلات هي الثلاث علامات؛ المعالجة هي جمعهن وقسمتهن على 3؛ المخرجات هي المتوسط.

ثلاثة صناديق — INPUT (الـ 3 علامات)، PROCESS (جمعها، القسمة على 3)، OUTPUT (المتوسط) — متصلة بأسهم
كل خوارزمية تتفكك إلى مدخلات ومعالجة ومخرجات — هنا، إيجاد متوسط ثلاث علامات
مفردات تدريب
English العربية
input/ˈɪnpʊt/ مدخلات
processing/ˈprəʊsesɪŋ/ معالجة
output/ˈaʊtpʊt/ نقرة فأرة تُبدأ عملاً هي مثال على
validation/ˌvælɪˈdeɪʃn/ التحقق من صحة
range check/reɪndʒ tʃek/ فحص النطاق
length check/leŋθ tʃek/ فحص الطول
type check/taɪp tʃek/ فحص النوع
presence check/ˈprezəns tʃek/ فحص الحضور
format check/ˈfɔːmæt tʃek/ فحص التنسيق
check digit/tʃek ˈdɪdʒɪt/ رقم التحقق
verification/ˌverɪfɪˈkeɪʃn/ التحقق
visual check/ˈvɪʒuːəl tʃek/ الفحص البصري
double entry/ˈdʌbl ˈentri/ التدقيق المزدوج
bubble sort/ˈbʌbl sɔːt/ فرز الفقاعات
totalling/ˈtəʊtəlɪŋ/ جمع المجموع الكلي
counting/ˈkaʊntɪŋ/ عدّ
maximum/ˈmæksɪməm/ الأقصى
minimum/ˈmɪnɪməm/ الحد الأدنى
7.4

التحقق والتحقق من الصحة

عند إدخال البيانات، تقوم بفحصها لتقليل الأخطاء.

التحقق من صحة يتأكد من أن البيانات منطقية وتتبع القواعد. لا يمكنه التحقق من صحة البيانات، بل فقط من سماحتها.

فحص التحقق من الصحة ما يفحصه
فحص النطاق القيمة تقع بين أدنى وأعلى قيمة مسموح بها
فحص الطول عدد الأحرف مسموح به (مثلاً كلمة مرور ≥ 8)
فحص النوع البيانات من النوع الصحيح (مثلاً رقم وليس أحرفاً)
فحص الوجود تم إدخال شيء فعلياً (لم يُترك فارغاً)
فحص التنسيق البيانات في النمط الصحيح (مثلاً تاريخ بصيغة dd/mm/yyyy)
الرقم التحققي رقم إضافي يؤكد إدخال الرقم بشكل صحيح

التحقق من الدقة يتأكد من أن البيانات تم نسخها أو إدخالها بشكل صحيح (بدون أخطاء أثناء الكتابة). طريقتان:

  • الفحص البصري — يقارن شخص ما البيانات المكتوبة مع الأصلية؛
  • الإدخال المزدوج — يتم إدخال البيانات مرتين ومقارنة النسختين مع بعضهما.
7.5

جداول التتبع

يسجل جدول التتبع قيمة كل متغير أثناء تشغيل الخوارزمية خطوة بخطوة. يساعدك على:

جدول تتبع بأعمدة count و total و output
يسجل جدول التتبع قيمة كل متغير أثناء تشغيل البرنامج
  • التحقق من صحة عمل الخوارزمية؛
  • تحديد ماذا تفعل الخوارزمية عن طريق تتبعها ببيانات معطاة.

مثال: تابع هذه الخوارزمية بإدخال 5.

INPUT N
Total ← 0
FOR I ← 1 TO N
    Total ← Total + I
NEXT I
OUTPUT Total
i total OUTPUT
1 1
2 3
3 6
4 10
5 15 15

يُظهر جدول التتبع أن الخوارزمية تجمع 1 إلى n. مع الإدخال 5، يكون الإخراج 15.

مثال محلل. تابع هذه الخوارزمية وأعطِ الإخراج.

X ← 20
Count ← 0
WHILE X > 1
    X ← DIV(X, 2)
    Count ← Count + 1
ENDWHILE
OUTPUT Count

DIV يعطي فقط الجزء الصحيح من القسمة. خذ سطراً واحداً لكل دورة: تصبح x = 10 (count = 1)، ثم 5 (count = 2)، ثم 2 (count = 3)، ثم 1 (count = 4). الآن x > 1 غير صحيح، لذا تتوقف الحلقة ويكون الإخراج 4. عادةً ما تحمي هاتان العادلتان الدرجات: اختبر الشرط قبل كل دورة بدلاً من بعدها، واكتب سراً جديداً لـكل دورة - فإن محاولة الاحتفاظ بالقيم في ذهنك هي ما يسبب الأخطاء في الجداول.

استكشف

جدول التتبع

مرر عبر الحلقة واملأ جدول التتبع، صف واحد لكل دورة.

مفردات تدريب
English العربية
pseudocode/ˈsuːdəʊkəʊd/ الكود الوهمي
algorithm/ˈælɡərɪθəm/ خوارزمية
trace table/treɪs ˈteɪbl/ جدول التتبع
normal/ˈnɔːml/ العادي
abnormal/əbˈnɔːml/ غير طبيعي / شاذ
extreme/ekˈstriːm/ متطرف / شديد
boundary/ˈbaʊndəri/ حدود
7.6

بيانات الاختبار

بيانات الاختبار هي البيانات التي تستخدمها لاختبار برنامج. هناك أربعة أنواع يجب أن تعرفها.

النوع المعنى مثال (العمر 0–120 مسموح)
عادي بيانات منطقية يجب قبولها 25
غير عادي بيانات خاطئة يجب رفضها -4 أو "cat"
متطرفة القيم الأكبر والأصغر المسموحة حالياً 0 و 120
حدية القيم على جانبي حد معين (واحدة مسموحة وأخرى غير مسموحة) 120 و 121
7.7

طرق الحل القياسية

يجب أن تعرف هذه الخوارزميات الشائعة.

البحث الخطي

يعمل البحث الخطي على فحص كل عنصر في قائمة ما، واحداً تلو الآخر، حتى يجد القيمة المطلوبة أو يصل إلى النهاية.

Found ← FALSE
FOR I ← 0 TO 9
    IF List[I] = SearchValue
      THEN
        Found ← TRUE
    ENDIF
NEXT I
OUTPUT Found
قائمة من ثمانية أرقام يتم مسحها من اليسار إلى اليمين للبحث عن 5؛ لا تتطابق أول أربعة وعadores يتم العثور عليه
يعمل البحث الخطي على فحص كل عنصر بالتتابع من البداية حتى يجد القيمة

ترتيب الفقاعات

يقوم فرز الفقاعات بترتيب قائمة ما. يقارن كل زوج من العناصر المتجاورة ويبدلهما إذا كانا في ترتيب خاطئ. يكرر هذا حتى لا تكون هناك حاجة لمزيد من التبديل.

FOR I ← 0 TO 8
    IF List[I] > List[I + 1]
      THEN
        Temp ← List[I]
        List[I] ← List[I + 1]
        List[I + 1] ← Temp
    ENDIF
NEXT I
قائمة حيث الزوج الأول 5 و 2 غير مرتب، يظهر تبديلهما إلى 2 و 5، مع ملاحظة لتكرار ذلك لكل زوج
يقارن فرز الفقاعات كل زوج متجاور ويبدلهما إذا كانا غير مرتبين، مكرراً حتى الترتيب

الجمع والإعداد

  • الجمع — استمر في إضافة القيم إلى المجموع الكلي المتزايد (Total ← Total + Value).
  • الإعداد — أضف 1 إلى العداد كل مرة يحدث فيها شيء ما (Count ← Count + 1).

القصوى والقصوى والمتوسط

  • لإيجاد القيمة العظمى: احتفظ بالأكبر قيمة رأيتها حتى الآن.
  • لإيجاد القيمة الصغرى: احتفظ بالأصغر قيمة رأيتها حتى الآن.
  • لإيجاد المتوسط: قسّم المجموع الكلي على عدد القيم.
Total ← 0
FOR I ← 0 TO 9
    Total ← Total + List[I]
NEXT I
Average ← Total / 10
OUTPUT Average
مفردات تدريب
English العربية
linear search/ˈlɪnɪə sɜːtʃ/ البحث الخطي
average/ˈævrɪdʒ/ متوسط
7.8

نصائح للامتحان

  • احفظ مراحل دورة الحياة الأربع: التحليل → التصميم → البرمجة → الاختبار. التجريد يحافظ فقط على التفاصيل المهمة؛ التفكيك يكسر المشكلة إلى أجزاء أصغر.
  • التحقق من الصحة يتحقق من أن البيانات منطقية (فحوصات النطاق والطول والنوع والوجود والتنسيق)؛ التحقق من الدقة يتحقق من أنها نُسخت بشكل صحيح (فحص بصري أو إدخال مزدوج).
  • احفظ الأنواع الأربعة لبيانات الاختبار: عادي (مقبول)، غير عادي (مرفوض)، متطرف (الأكبر/الأصغر المسموح به)، حدي (القيم على جانبي الحد).
  • لمعرفة ما تفعله الخوارزمية، املأ جدول التتبع — اكتب قيمة كل متغير في كل خطوة.
  • اعرف الخوارزميات القياسية: البحث الخطي (فحص كل عنصر بالتتابع) وفرز الفقاعات (تبديل الأزواج المتجاورة حتى لا تكون هناك حاجة للتبديل).

دروس تفاعلية حول هذا الموضوع

ا-working عليه خطوة بخطوة، مع تمارين تحقق فوري.

أوراق الامتحانات السابقة

المزيد من المواضيع في IGCSE علوم الحاسوب

تسجيل الدخول أو إنشاء حساب

IGCSE, A-Level & AP