Exercício - Executar operações matemáticas

Concluído

Agora que você entende os conceitos básicos de adição e, mais importante, a conversão de tipo implícita entre tipos de dados numéricos e de cadeia de caracteres, vamos examinar várias outras operações matemáticas comuns em dados numéricos.

Executar operações matemáticas básicas

Escreva código para executar adição, subtração, multiplicação e divisão com inteiros

  1. Selecione todo o código no Editor .NET e pressione Delete ou Backspace para excluí-lo.

  2. Insira o seguinte código no Editor .NET:

    int sum = 7 + 5;
    int difference = 7 - 5;
    int product = 7 * 5;
    int quotient = 7 / 5;
    
    Console.WriteLine("Sum: " + sum);
    Console.WriteLine("Difference: " + difference);
    Console.WriteLine("Product: " + product);
    Console.WriteLine("Quotient: " + quotient);
    
  3. Execute o código. Deverá ver o seguinte resultado:

    Sum: 12
    Difference: 2
    Product: 35
    Quotient: 1
    

Como pode ver:

  • + é o operador de adição
  • - é o operador de subtração
  • * é o operador de multiplicação
  • / é o operador de divisão

No entanto, o quociente resultante do exemplo de divisão pode não ser o que você poderia esperar. Os valores após o decimal são truncados a partir do quotient desde que é definido como um int, e int não pode conter valores após o decimal.

Adicionar código para executar a divisão usando dados decimais literais

Para ver a divisão funcionando corretamente, você precisa usar um tipo de dados que ofereça suporte a dígitos fracionários após o ponto decimal, como decimal.

  1. Exclua o código das etapas anteriores e insira o seguinte código no Editor .NET:

    decimal decimalQuotient = 7.0m / 5;
    Console.WriteLine($"Decimal quotient: {decimalQuotient}");
    
    
  2. Execute o código. Deverá ver o seguinte resultado:

    Decimal quotient: 1.4
    

Para que isso funcione, o quociente (à esquerda do operador de atribuição) deve ser do tipo decimal e pelo menos um dos números que estão sendo divididos também deve ser do tipo decimal (ambos os números também podem ser um decimal tipo).

Seguem-se mais dois exemplos que funcionam igualmente bem:

decimal decimalQuotient = 7 / 5.0m;
decimal decimalQuotient = 7.0m / 5.0m;

Contudo, as seguintes linhas de código não funcionarão (ou originarão resultados imprecisos):

int decimalQuotient = 7 / 5.0m;
int decimalQuotient = 7.0m / 5;
int decimalQuotient = 7.0m / 5.0m;
decimal decimalQuotient = 7 / 5;

Adicionar código para transmitir resultados da divisão inteira

E se não estiver a trabalhar com valores literais? Por outras palavras, e se tiver de dividir duas variáveis do tipo int, mas não quiser que o resultado seja truncado? Neste caso, tem de realizar uma conversão de tipo de dados de int para decimal. A conversão é um tipo de conversão de dados que ordena ao compilador que trate temporariamente um valor como se fosse um tipo de dados diferente.

Para converter int em decimal, tem de adicionar o operador de conversão antes do valor. Use o nome do tipo de dados entre parênteses na frente do valor para convertê-lo. Nesse caso, você adicionaria (decimal) antes das variáveis first e second.

  1. Exclua o código das etapas anteriores e insira o seguinte código no Editor .NET:

    int first = 7;
    int second = 5;
    decimal quotient = (decimal)first / (decimal)second;
    Console.WriteLine(quotient);
    
  2. Execute o código. Deverá ver o seguinte resultado:

    1.4
    

Nota

Você viu três usos para o operador de parênteses: invocação de método, ordem de operações e fundição.

Escreva o código para determinar o restante após a divisão de inteiros

O operador % de módulo informa o restante da int divisão. O que aprende realmente com isto é se um número é divisível por outro. Isto pode ser útil se, durante longas operações de processamento em que se exploram centenas ou milhares de registos de dados, quiser dar feedback ao utilizador final a cada 100 registos de dados processados.

  1. Exclua o código das etapas anteriores e insira o seguinte código no Editor .NET:

    Console.WriteLine($"Modulus of 200 / 5 : {200 % 5}");
    Console.WriteLine($"Modulus of 7 / 5 : {7 % 5}");
    
    
  2. Execute o código. Deverá ver o seguinte resultado:

    Modulus of 200 / 5 : 0
    Modulus of 7 / 5 : 2
    

Quando o módulo é 0, isto significa que o dividendo é divisível pelo divisor.

Ordem de operações

Como você aprendeu no exercício anterior, você pode usar os () símbolos como a ordem dos operadores de operações . No entanto, esta não é a única forma através da qual se determina a ordem das operações.

Em matemática, PEMDAS é um acrônimo que ajuda os alunos a se lembrarem da ordem das operações. A ordem é:

  1. Parênteses (o que estiver dentro dos parênteses é realizado em primeiro lugar)
  2. Expoentes
  3. Multiplicação e Divisão (da esquerda para a direita)
  4. Adição e Subtração (da esquerda para a direita)

O C# segue a mesma ordem do acrónimo PEMDAS, exceto no que diz respeito aos expoentes. Embora não haja nenhum operador expoente em C#, você pode usar o System.Math.Pow método. O módulo "Chamar métodos da Biblioteca de Classes .NET Framework com C#" incluirá este método e outros.

Escrever código para exercer a ordem de operações do C#

  1. Exclua o código das etapas anteriores e insira o seguinte código no Editor .NET:

    int value1 = 3 + 4 * 5;
    int value2 = (3 + 4) * 5;
    Console.WriteLine(value1);
    Console.WriteLine(value2);
    

    Aqui você vê a diferença ao executar as mesmas operações em uma ordem diferente.

  2. Execute o código. Deverá ver o seguinte resultado:

    23
    35
    

Recapitulação

Aqui está o que você aprendeu até agora sobre operações matemáticas em C#:

  • Utilize operadores como +, -, * e / para realizar operações matemáticas básicas.
  • A divisão de dois valores int resultará na truncagem de todos os valores à direita da vírgula. Para reter valores após o ponto decimal, você precisa lançar o divisor ou dividendo (ou ambos) em um número de int ponto flutuante como decimal primeiro, então o quociente deve ser do mesmo tipo de ponto flutuante também, a fim de evitar truncamento.
  • Realize uma operação de conversão para tratar temporariamente um valor como se fosse de um tipo de dados diferente.
  • Utilize o operador % para obter o resto depois da divisão.
  • A ordem das operações seguirá as regras do acrónimo PEMDAS.