الثانوية العامة 2026الاستعلام عن النتيجةاعرف الكليات المناسبة لمجموعكتنسيق 2026

البرمجة والذكاء الاصطناعي · الصف الأول الثانوي · الترم الأول

تطوير تطبيق اختبارات بالذكاء الاصطناعي ومراجعته

تطوير تطبيق ويب لاختبار من متعدد بلغات HTML وCSS وJavaScript بمساعدة الذكاء الاصطناعي التوليدي: تخزين الأسئلة في مصفوفة، وعرض الخيارات أزرارًا، والتحقق من الإجابة بعبارة if وelse، وحساب النسبة المئوية للنتيجة، ثم مراجعة ما تعلمته من التطبيق.

آخر تحديث: · كيف نراجع المحتوى

أهداف التعلم

  • أن تستخدم الذكاء الاصطناعي التوليدي لإنشاء تطبيق اختبار من متعدد وتطويره.
  • أن تشرح كيف تُخزن الأسئلة والخيارات في مصفوفة.
  • أن تتتبع كيف يتحقق التطبيق من الإجابة بعبارة if ~ else ويحسب النتيجة.
  • أن تصنف ما تعلمته إلى ما كنت تعرفه وما لم تكن تعرفه، وتستكمل فهمك.

شرح الدرس

خطوات التطوير

  1. أمر توجيهي: “أنشئ تطبيقًا بسيطًا لاختبار من متعدد (Quiz App) يحتوي على سؤال واحد فقط”.
  2. شغّل الكود، وعدّل نص السؤال والإجابات، واطلب: “اشرح هذا الكود”.
  3. تطوير: “اجعل الاختبار يتكون من 3 أسئلة”، ثم شغّل واطلب الشرح مجددًا.
  4. تخصيص: أضف ميزات مثل زيادة عدد الخيارات، وعرض نسبة الإجابات الصحيحة، وجعل ترتيب الأسئلة عشوائيًّا.

فكرة التطبيق

الجزءدوره
مصفوفة questionsتخزن كل سؤال: نصه، وخياراته (مصفوفة choices)، ورقم الإجابة الصحيحة
المتغير currentرقم السؤال الحالي (يبدأ من 0)
المتغير scoreعدد الإجابات الصحيحة
الدالة showQuestionتعرض السؤال الحالي وتنشئ زرًّا لكل خيار
الدالة checkAnswerتقارن اختيار المستخدم بالإجابة الصحيحة، ثم تنتقل للسؤال التالي أو تعرض النتيجة

أمثلة وتطبيقات

ملف HTML:

<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
  <meta charset="UTF-8">
  <title>اختبار سريع</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <h1>اختبار سريع</h1>
  <p id="question"></p>
  <div id="choices"></div>
  <p id="result"></p>
  <script src="script.js"></script>
</body>
</html>

ملف JavaScript:

const questions = [
  { text: "ما عاصمة مصر؟", choices: ["الإسكندرية", "القاهرة", "أسوان"], answer: 1 },
  { text: "كم عدد البتات في البايت؟", choices: ["4", "8", "16"], answer: 1 },
  { text: "أي لغة تبني هيكل صفحة الويب؟", choices: ["HTML", "CSS", "Python"], answer: 0 }
];
let current = 0;
let score = 0;

const questionEl = document.getElementById("question");
const choicesEl = document.getElementById("choices");
const resultEl = document.getElementById("result");

function showQuestion() {
  const q = questions[current];
  questionEl.textContent = q.text;
  choicesEl.innerHTML = "";
  q.choices.forEach((choice, i) => {
    const btn = document.createElement("button");
    btn.textContent = choice;
    btn.className = "choice";
    btn.addEventListener("click", () => checkAnswer(i));
    choicesEl.appendChild(btn);
  });
}

function checkAnswer(i) {
  if (i === questions[current].answer) {
    score = score + 1;
    resultEl.textContent = "إجابة صحيحة!";
    resultEl.style.color = "green";
  } else {
    resultEl.textContent = "إجابة خاطئة";
    resultEl.style.color = "red";
  }
  current = current + 1;
  if (current < questions.length) {
    showQuestion();
  } else {
    questionEl.textContent = "انتهى الاختبار";
    choicesEl.innerHTML = "";
    const percent = Math.round(score / questions.length * 100);
    resultEl.textContent = "نتيجتك: " + score + " من " + questions.length + " (" + percent + "%)";
    resultEl.style.color = "black";
  }
}

showQuestion();

تتبع التنفيذ: إذا أجاب الطالب “القاهرة” ثم “16” ثم “HTML”:

السؤالاختيار الطالبالإجابة الصحيحةالنتيجة المعروضةscore
1القاهرة (رقم 1)1إجابة صحيحة!1
216 (رقم 2)1إجابة خاطئة1
3HTML (رقم 0)0—2

في النهاية: “نتيجتك: 2 من 3 (67%)”؛ لأن 23×100≈66.7\frac{2}{3} \times 100 \approx 66.7 وتقريبها بالدالة Math.round يعطي 67.

أفكار للفهم:

  • questions.length عدد الأسئلة (3)، فالشرط current < questions.length يعني “ما زالت هناك أسئلة”.
  • document.createElement("button") تنشئ زرًّا جديدًا، وappendChild تضيفه إلى الصفحة.
  • choicesEl.innerHTML = "" تمسح أزرار السؤال السابق.
  • الترتيب العشوائي: يمكن خلط الأسئلة قبل عرضها باستخدام الدالة Math.random() التي تولد عددًا عشوائيًّا من 0 إلى أقل من 1، مثل الدالة RAND في جداول البيانات.

مراجعة تطبيق الاختبارات (الموضوع 13-8)

لخّص ما فهمته من تطبيقك وفق النقاط الآتية:

  1. موضوع الاختبار: مثل “اختبار عن الفضاء” أو “اختبار عن الحيوانات”.
  2. ما تعلمته في HTML: مثل تحديد عنوان التطبيق بالوسم <title>، وتعيين class للعنصر للإشارة إليه في CSS.
  3. ما تعلمته في CSS: مثل تحديد لون الخلفية والخط للمحدد body، وتنسيق حجم أزرار الخيارات ولونها بالمحدد .choice.
  4. ما تعلمته في JavaScript: مثل التعامل مع الخيارات بمصفوفة اسمها choices، وتغيير لون النص للإجابة الصحيحة أو الخاطئة بعبارة if ~ else.

ثم صنّف ما لخصته إلى “أشياء كنت أعرفها” و”أشياء لم أكن أعرفها”، واسأل الذكاء الاصطناعي عن الثانية، مثل: “ماذا يفعل الكود <p id="result"></p>؟” أو “ماذا يعني background: #f5f5f5;؟”.

ملاحظات مهمة

  • ترقيم الخيارات في المصفوفة يبدأ من 0 كما في Python؛ فالإجابة answer: 1 تعني الخيار الثاني.
  • في JavaScript تُستخدم === للمقارنة بين اختيار الطالب ورقم الإجابة.
  • اختبر تطبيقك بإجابات صحيحة وخاطئة للتأكد من أن النتيجة تُحسب بدقة، وتأكد من صحة معلومات الأسئلة نفسها.
  • اطلب من زميل تجربة تطبيقك؛ فالمستخدمون الآخرون يكتشفون مشكلات لم تنتبه لها.

المفاهيم الأساسية

  • تطبيق الاختبار: مصفوفة أسئلة + عرض السؤال والخيارات + التحقق من الإجابة + حساب النتيجة.
  • if ~ else للتحقق من صحة الإجابة وتغيير لون الرسالة.
  • النسبة المئوية = عدد الإجابات الصحيحة ÷ عدد الأسئلة × 100.
  • المراجعة: تلخيص ما تعلمته في HTML وCSS وJavaScript، وتصنيفه إلى معروف وجديد.

ملخص الدرس

طورنا بمساعدة الذكاء الاصطناعي التوليدي تطبيق اختبار من متعدد: نخزن الأسئلة وخياراتها في مصفوفة، ونعرض كل خيار زرًّا، ونتحقق من الإجابة بعبارة if وelse، ونحسب النتيجة ونسبتها المئوية. ثم راجعنا ما تعلمناه في HTML وCSS وJavaScript، وسألنا عما لم نكن نعرفه لنعمّق فهمنا.

أسئلة للتدريب

  1. في مصفوفة الأسئلة، ماذا تعني answer: 0؟
  2. ما وظيفة المتغيرين current وscore؟
  3. طالب أجاب إجابة صحيحة عن 4 أسئلة من 5. ما النسبة المئوية التي يعرضها التطبيق؟
  4. أضف سؤالًا رابعًا إلى المصفوفة عن موضوع تختاره.
  5. اذكر شيئًا تعلمته من التطبيق كنت تعرفه، وشيئًا لم تكن تعرفه.
حلّ أسئلة هذا الدرساختبر فهمك بأسئلة اختيار من متعدد وأسئلة مقالية مع نموذج إجابة، أو خض اختبارًا تفاعليًا سريعًا
أبلغ عن خطأ في هذا الدرس