مشاركة عبر


خطوة 6: أضف مشاكل الطرح

لإضافة مشكلة الطرح تحتاج إلى:

  • تخزين قيم الطرح.

  • توليد أرقام عشوائية لهذه المشكلة (ثم تأكد من أن الإجابة بين 0 و 100).

  • حدث الطريقة التي تتحقق من الإجابات بحيث يتحقق أسلوب مشكلة الطرح الجديدة جداً.

  • تحديث جهاز ضبط الوقت الخاص بك التجزئة حدث معالج بحيث حدث بتعبئة معالج الإجابة الصحيحة عند وقت تشغيل.

أضف مشاكل الطرح

  1. أولا ، تحتاج إلى مكان لتخزين القيم ، لذلك أضف اثنين من ints (أعداد صحيحة) لطرح المشكلة على النموذج الخاص بك. تعليمات برمجية جديدة يظهر بين أعداد صحيحة إضافة إلى العدد الصحيح لجهاز ضبط الوقت. يجب أن تشبه التعليمة البرمجية المثال للتالى:

    Public Class Form1
    
        ' Create a Random object to generate random numbers.
        Dim randomizer As New Random
    
        ' These Integers will store the numbers
        ' for the addition problem.
        Dim addend1 As Integer
        Dim addend2 As Integer
    
        ' These Integers will store the numbers
        ' for the subtraction problem.
        Dim minuend As Integer
        Dim subtrahend As Integer
    
        ' This Integer will keep track of the time left.
        Dim timeLeft As Integer
    
    public partial class Form1 : Form
    {
        // Create a Random object to generate random numbers.
        Random randomizer = new Random();
    
        // These ints will store the numbers
        // for the addition problem.
        int addend1;
        int addend2;
    
        // These ints will store the numbers
        // for the subtraction problem.
        int minuend;
        int subtrahend;
    
        // This int will keep track of the time left.
        int timeLeft;
    

    ملاحظة

    أسماء رجات الجديدة — minuend و subtrahend — لا يتم ‏‫#Visual C مصطلحات أو شروط حتى البرمجة. تكون الأسماء التقليدية في الحسابي عن الرقم الذي يتم طرح (subtrahend) ورقم يتم مطروحاً من (minuend). يعتبر الاختلاف هو minuend subtrahend ناقص. يمكنك استخدام أسماء أخرى لأنه لا يتطلب البرنامج أسماء معينة لرجات عناصر تحكم أو مكونات أو أساليب. هناك بعض القواعد (تشغيل سبيل المثال، لا تبدأ أسماء الأرقام) ، ولكن بشكل عام، يمكنك استخدام أسماء مثل x 1 x 2 x 3 x 4 و إلخ. لكن سيكون من الصعب قراءة الرمز ، ويكاد يكون من المستحيل تعقب المشاكل. سيتم استخدام أسماء التقليدية الضرب (مضاعفة × multiplicand = المنتج) والقسمة (القاسم ÷ المقسوم = قسمة) لاحقًا في هذا البرنامج التعليمي.

  2. بعد ذلك تعديل **StartTheQuiz()**أسلوب إلى تعبئة المشكلة الطرح عشوائي. تعليمات برمجية جديدة يتبع تعليق "التعبئة في المشكلة الطرح". يجب أن تشبه التعليمة البرمجية المثال للتالى:

    ''' <summary>
    ''' Start the quiz by filling in all of the problems
    ''' and starting the timer.
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub StartTheQuiz()
    
        ' Fill in the addition problem.
        addend1 = randomizer.Next(51)
        addend2 = randomizer.Next(51)
        plusLeftLabel.Text = addend1.ToString
        plusRightLabel.Text = addend2.ToString
        sum.Value = 0
    
        ' Fill in the subtraction problem.
        minuend = randomizer.Next(1, 101)
        subtrahend = randomizer.Next(1, minuend)
        minusLeftLabel.Text = minuend.ToString
        minusRightLabel.Text = subtrahend.ToString
        difference.Value = 0
    
        ' Start the timer.
        timeLeft = 30
        timeLabel.Text = "30 seconds"
        Timer1.Start()
    
    End Sub
    
    /// <summary>
    /// Start the quiz by filling in all of the problems
    /// and starting the timer.
    /// </summary>
    public void StartTheQuiz()
    {
        // Fill in the addition problem.
        addend1 = randomizer.Next(51);
        addend2 = randomizer.Next(51);
        plusLeftLabel.Text = addend1.ToString();
        plusRightLabel.Text = addend2.ToString();
        sum.Value = 0;
    
        // Fill in the subtraction problem.
        minuend = randomizer.Next(1, 101);
        subtrahend = randomizer.Next(1, minuend);
        minusLeftLabel.Text = minuend.ToString();
        minusRightLabel.Text = subtrahend.ToString();
        difference.Value = 0;
    
        // Start the timer.
        timeLeft = 30;
        timeLabel.Text = "30 seconds"; 
        timer1.Start();
    }
    

    تستخدم تعليمات برمجية هذه Randomالفئة **Next()**أسلوب بشكل مختلف قليلاً. عند إعطائه قيمتين ، فإنه يأخذ رقم عشوائي وهذا أكبر من أو يساوي إلى أول واحد وأقل من ثانية واحدة. الخط التالي اختار رقم عشوائي من 1 إلى 100 ، وخزنها في minuend.

    minuend = randomizer.Next(1, 101)
    
    minuend = randomizer.Next(1, 101);
    

    Randomفئة **Next()**يمكن استدعاء الأسلوب في عدة طرق. عند استدعاء أسلوب في أكثر من وحيدة الاتجاه الذي يسمى محمّلة فوق طاقتها أسلوب يمكنك استخدام خاصية التحسس الذكي إلى استكشاف هذا. إلقاء آخر في التلميح نافذة التحسس الذكي **Next()**الأسلوب.

    تلميح الأدوات نافذة Intellisense

    الأسلوب التالي

    لاحظ كيف يوضح تلميح الأداة (+ 2 التحميل الزائد(s)). وهذا يعني أن هناك طريقتين لتسجي الأخرى التي يمكنك الاتصال **Next()**الأسلوب. عند كتابة الجديدة تعليمات برمجية لـ **StartTheQuiz()**الأسلوب، يمكنك مشاهدة مزيد من المعلومات. كما قريباً أثناء اكتب randomizer.Next(,فتح التحسس الذكي نافذة. اضغط مفتاحي سهم لأعلى وسهم لأسفل إلى للمرور تساعد, كما هو موضح في الصورة التالية.

    التحميلات الزائدة للنافذة Intellisense

    التحميلات الزائدة للنافذة Intellisense

    تلك الموجودة في الصورة السابقة لأنه الذي تريده وتتيح لك إمكانية تحديد القيمة الحد الأدنى والحد الأقصى.

  3. تعديل **CheckTheAnswer()**الأسلوب فحص الإجابات الصحيحة الطرح. يجب أن تشبه التعليمة البرمجية المثال للتالى:

    ''' <summary>
    ''' Check the answer to see if the user got everything right.
    ''' </summary>
    ''' <returns>True if the answer's correct, false otherwise.</returns>
    ''' <remarks></remarks>
    Public Function CheckTheAnswer() As Boolean
    
        If ((addend1 + addend2 = sum.Value) AndAlso (minuend - subtrahend = difference.Value)) Then
            Return True
        Else
            Return False
        End If
    
    End Function
    
    /// <summary>
    /// Check the answer to see if the user got everything right.
    /// </summary>
    /// <returns>True if the answer's correct, false otherwise.</returns>
    private bool CheckTheAnswer()
    {
        if ((addend1 + addend2 == sum.Value)
            && (minuend - subtrahend == difference.Value))
            return true;
        else
            return false;
    }
    

    &&هو ‏‫#Visual C logical andعامل التشغيل. في Visual Basic مكافئ عامل التشغيل هو AndAlso. هو نفس saying, "إذا كانت تساوي addend1 زائد addend2 إلى القيمة مجموع NumericUpDown ، وإذا minuend ناقص subtrahend تساوي إلى القيمة الفرق NumericUpDown." **CheckTheAnswer()**أسلوب فقط إرجاع صواب إذا كانت المشكلة الإضافة ومن صحة المشكلة الطرح.

  4. قم بتغير الجزء الأخير من التجزئة جهاز ضبط الحدث للمؤقت بحيث يقوم بتعبئة الإجابة الصحيحة عند نفاذ الوقت. يجب أن تشبه التعليمة البرمجية المثال للتالى:

    Else
        ' If the user ran out of time, stop the timer, show
        ' a MessageBox, and fill in the answers.
        Timer1.Stop()
        timeLabel.Text = "Time's up!"
        MessageBox.Show("You didn't finish in time.", "Sorry")
        sum.Value = addend1 + addend2
        difference.Value = minuend - subtrahend
        startButton.Enabled = True
    End If
    
    else
    {
        // If the user ran out of time, stop the timer, show
        // a MessageBox, and fill in the answers.
        timer1.Stop();
        timeLabel.Text = "Time's up!";
        MessageBox.Show("You didn't finish in time.", "Sorry");
        sum.Value = addend1 + addend2;
        difference.Value = minuend - subtrahend;
        startButton.Enabled = true;
    }
    
  5. حفظ وتشغيل تعليمات برمجية الخاصة بك. يجب أن يكون البرنامج الآن مشكلة طرح كما هو موضح في الصورة التالية.

    اختبار الرياضيات به مشكلة في الطرح

    اختبار الرياضيات به مشكلة في الطرح

للمتابعة أو للمراجعة