Exercício - Executar operações matemáticas
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
Selecione todo o código que você escreveu anteriormente no Editor de Códigos C# e pressione Delete ou Backspace para excluí-lo.
Insira o seguinte código no Editor de códigos C#:
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);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.
Exclua o código das etapas anteriores e insira o seguinte código no Editor de Códigos C#:
decimal decimalQuotient = 7.0m / 5; Console.WriteLine($"Decimal quotient: {decimalQuotient}");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 decimale 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 decimalQuotientA = 7 / 5.0m;
int decimalQuotientB = 7.0m / 5;
int decimalQuotientC = 7.0m / 5.0m;
decimal decimalQuotientD = 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.
Exclua o código das etapas anteriores e insira o seguinte código no Editor de Códigos C#:
int first = 7; int second = 5; decimal quotient = (decimal)first / (decimal)second; Console.WriteLine(quotient);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.
Exclua o código das etapas anteriores e insira o seguinte código no Editor de Códigos C#:
Console.WriteLine($"Modulus of 200 / 5 : {200 % 5}"); Console.WriteLine($"Modulus of 7 / 5 : {7 % 5}");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 é:
- Parênteses (o que estiver dentro dos parênteses é realizado em primeiro lugar)
- Expoentes
- Multiplicação e Divisão (da esquerda para a direita)
- 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#
Exclua o código das etapas anteriores e insira o seguinte código no Editor de Códigos C#:
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.
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
intresultará 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 deintponto flutuante comodecimalprimeiro, 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.