Partilhar via


Etapa 6: Adicionar um problema de subtração

Para adicionar um problema de subtração, você precisa:

  • Armazene os valores de subtração.

  • Gerar números aleatórios para o problema (e certifique-se de que a resposta está entre 0 e 100).

  • Atualizar o método verifica as respostas para que o método verifica o Nova problema de subtração muito.

  • Atualize o manipulador de Evento Tick do timer de para que o manipulador de Evento preenche a resposta correta ao Hora se esgotar.

Para adicionar um problema de subtração

  1. Em primeiro lugar, você precisa de um local para armazenar os valores, para adicionar dois ints (números inteiros) para o problema de subtração ao seu formulário. O Nova código aparece entre os inteiros de adição e o timer de Número Número inteiro. O código deve parecer semelhante ao seguinte.

    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;
    
    ObservaçãoObservação

    Os nomes do Nova ints — de minuend e subtrahend — não são os termos do Visual c# ou termos de programação ainda. Eles são os nomes tradicionais na aritmética para o número que está sendo subtraídas (o subtrahend) e o número que está sendo subtraído do (a minuend). A diferença é o minuend menos o subtrahend. Você pode usar outros nomes, como seu programa não requerem nomes específicos para ints, controles, componentes ou métodos. Existem algumas regras (por exemplo, nomes não podem começar com dígitos), mas em geral, você pode usar nomes sistema autônomo x1, x2, X3, x4 e assim por diante. Mas seria difícil Leitura o código e praticamente impossível para rastrear problemas. Você usará os nomes de tradicionais de multiplicação (multiplicand × multiplicador = produto) e divisão (dividendo ÷ divisor = quociente) mais adiante neste tutorial.

  2. Em seguida, Modificar o **StartTheQuiz()**método para Preenchimento um problema de subtração Aleatório. O Nova código segue o comentário "Preenchimento o problema de subtração". O código deve parecer semelhante ao seguinte.

    ''' <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();
    }
    

    Esse código usa a Randomclasse de **Next()**método um pouco diferente. Quando você atribuir-lhe dois valores, ele escolherá um número aleatório que é Maior ou igual a ao primeiro e Menos que a segunda. A linha a seguir escolhe um número aleatório de 1 a 100 e o armazena no minuend.

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

    RandomClasse **Next()**chamado de método de várias maneiras. Quando você pode chamar um método em maior que uma forma, que é chamada de método sobrecarregado um e você pode usar o IntelliSense para explorar isso. Examinar outra a IntelliSense janela dica de ferramenta para o **Next()**método.

    Dica de ferramenta de janela do IntelliSense

    Método Next

    Observe como a dica de ferramenta mostra (+ 2 sobrecarga(s)). Isso significa que há Dois outras maneiras que você pode chamar o **Next()**método. Quando você Tipo o Nova código para o **StartTheQuiz()**método, você pode ver mais Informação. sistema autônomo logo sistema autônomo digitar randomizer.Next(,o IntelliSense janela será aberta. Pressionar sistema autônomo teclsistema autônomo de seta para cima e seta Abaixo para percorrer sistema autônomo sobrecargsistema autônomo, conforme mostrado no exemplo a seguir Imagem.

    Sobrecargas da janela do IntelliSense

    Sobrecargas da janela do IntelliSense

    Na anterior Imagem for a desejada, pois ele permite que você especifique um valor mínimo e Valor máximo.

  3. Modifique o **CheckTheAnswer()**método para Seleção se a resposta correta de subtração. O código deve parecer semelhante ao seguinte.

    ''' <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;
    }
    

    &&É o Visual c# logical andoperador. No Visual Basic, o operador equivalente é AndAlso. É o mesmo sistema autônomo dizendo, "Se addend1 mais addend2 for igual ao valor da soma NumericUpDown e se minuend menos subtrahend for igual ao valor da diferença NumericUpDown." O **CheckTheAnswer()**método Apenas Devoluções true se o problema de adição está correto e o problema de subtração está correto.

  4. Alterar Último parte do manipulador de Evento Tick do timer para que ela preencha a resposta correta ao Hora execuções Saída. O código deve parecer semelhante ao seguinte.

    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. salvar e execute seu código. O programa agora deve ter um problema de subtração, conforme mostrado a seguir Imagem.

    Teste de matemática com problema de subtração

    Teste de matemática com problema de subtração

Para continuar ou revisar