Boas, Após as dicas dos utilizadores decidi melhorar o meu codigo C# da calculadora. Penso que esteja mais simples mas tenho um pequeno problema na Raiz quadrada pois tento fazer a conta e o resultado dá-me sempre 0. Show
. Visual Basic NET é uma linguagem de programação de computadores orientada a objetos implementado em NET Framework da Microsoft. . A linguagem fornece um conjunto básico de operadores aritméticos com o qual você pode realizar cálculos simples dentro de seu programa , como adição , subtração, multiplicação ou divisão. No entanto, a fim de realizar operações mais complexas, tais como raízes quadradas , você pode precisar aplicar funções na classe System.Math do NET Framework . . Instruções Declare uma variável que servirá como a resposta à sua operação de raiz quadrada como um tipo duplo igual ao operador Math.Sqrt usando o seguinte formato - Dim MySqrt As Double = Math.Sqrt (4). Substitua o número para o qual você deseja encontrar a raiz quadrada do número 4 no código. Salvar e compilar seu código. Seu programa agora irá conter uma variável chamada MySqrt igual à raiz quadrada do número especificado , que pode ser a saída para o console ou usar para realizar outras operações matemáticas.
C# - Simplificando a raiz quadrada
Vamos começar relembrando alguns conceitos. Abaixo temos a expressão que representa um único número real x que elevado ao índice b resulta o número a : A origem do símbolo usado para representar uma raiz é bastante especulativo. Algumas fontes dizem que o símbolo foi usado pela primeira vez pelos árabes, que o primeiro uso foi de Al-Qalasadi (1421-1486), e que o símbolo vem da letra árabe ?, a primeira letra da palavra "Jadhir".( http://pt.wikipedia.org/wiki/)
Vamos criar um programa na linguagem C# que se propõe a realizar a simplificação da raiz quadrada de qualquer número inteiro. Abra o Visual C# 2010 Express Edition ou o Visual Studio Community mais recente e no menu File clique em New Project e escolha o template Windows Forms Application informando o nome SimplificarRaizQuadrada; A seguir inclua no formulário form1.cs os seguintes controles:
Conforme o leiaute abaixo: No evento Click do botão de comando Simplificar (btnSimplificar) vamos incluir o código abaixo:
Vamos entender o código... 1- Iniciamos convertendo o valor informado pelo usuário para o radicando para double: double valorRadicando = double.Parse(txtRadicando.Text); 2- Verificamos a seguir se o número possui um quadrado perfeito. Neste caso apresentamos o resultado: if (!IsDecimal(Math.Sqrt(valorRadicando))) { txtResultado1.Text = Math.Sqrt(valorRadicando).ToString(); txtResultado2.Text = "-"; return;} Nota: A função IsDecimal é usada para permitir somente valores inteiros e neste caso verifica se o número obtido é um número inteiro.
Outro maneira de calcular o quadrado perfeito é obtida usando este código:(No caso para número inteiros)
3- Iniciamos com o valor inteiro da raiz quadrada do número iniciamos o loop : for (int i = (int)Math.Floor(Math.Sqrt(valorRadicando)); i >= 2; i--){} A seguir testamos cada número para ver se ele é um múltiplo do número original. Se for, então você calculamos a raiz quadrada do mesmo e deixamos o restante no interior do sinal de raiz quadrada.
Executando o projeto e realizando um cálculo como exemplo obtemos seguinte resultado: O algoritmo usado não é necessariamente o mais otimizado nem esta sujeito a falhas, visto que eu não realizei testes mais apurados. Se você encontrar um algoritmo melhor ou encontrar erros me avise. Pegue o projeto completo aqui: SimplificarRaiz.zip e QuadradosPerfeitos.zipJoão 14:27 Deixo-vos a paz, a minha paz vos dou; eu não vo-la dou como o mundo a dá. Não se turbe o vosso coração, nem se atemorize.
Referências: José Carlos Macoratti
Returns a Double specifying the square root of a number. SyntaxSqr(number) The required number argument is a Double or any valid numeric expression greater than or equal to zero. ExampleThis example uses the Sqr function to calculate the square root of a number. Dim MySqr MySqr = Sqr(4) ' Returns 2. MySqr = Sqr(23) ' Returns 4.79583152331272. MySqr = Sqr(0) ' Returns 0. MySqr = Sqr(-4) ' Generates a run-time error.See also
Support and feedbackHave questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
The methods of the System.Math class provide trigonometric, logarithmic, and other common mathematical functions. The following table lists methods of the System.Math class. You can use these in a Visual Basic program:
The following table lists methods of the System.Math class that don't exist in .NET Framework but are added in .NET Standard or .NET Core:
To use these functions without qualification, import the System.Math namespace into your project by adding the following code to the top of your source file: Imports System.MathExample - AbsThis example uses the Abs method of the Math class to compute the absolute value of a number. Dim x As Double = Math.Abs(50.3) Dim y As Double = Math.Abs(-50.3) Console.WriteLine(x) Console.WriteLine(y) ' This example produces the following output: ' 50.3 ' 50.3Example - AtanThis example uses the Atan method of the Math class to calculate the value of pi. Public Function GetPi() As Double ' Calculate the value of pi. Return 4.0 * Math.Atan(1.0) End Function
Note The System.Math class contains Math.PI constant field. You can use it rather than calculating it. Example - CosThis example uses the Cos method of the Math class to return the cosine of an angle. Public Function Sec(angle As Double) As Double ' Calculate the secant of angle, in radians. Return 1.0 / Math.Cos(angle) End FunctionExample - ExpThis example uses the Exp method of the Math class to return e raised to a power. Public Function Sinh(angle As Double) As Double ' Calculate hyperbolic sine of an angle, in radians. Return (Math.Exp(angle) - Math.Exp(-angle)) / 2.0 End FunctionExample - LogThis example uses the Log method of the Math class to return the natural logarithm of a number. Public Function Asinh(value As Double) As Double ' Calculate inverse hyperbolic sine, in radians. Return Math.Log(value + Math.Sqrt(value * value + 1.0)) End FunctionExample - RoundThis example uses the Round method of the Math class to round a number to the nearest integer. Dim myVar2 As Double = Math.Round(2.8) Console.WriteLine(myVar2) ' The code produces the following output: ' 3Example - SignThis example uses the Sign method of the Math class to determine the sign of a number. Dim mySign1 As Integer = Math.Sign(12) Dim mySign2 As Integer = Math.Sign(-2.4) Dim mySign3 As Integer = Math.Sign(0) Console.WriteLine(mySign1) Console.WriteLine(mySign2) Console.WriteLine(mySign3) ' The code produces the following output: ' 1 ' -1 ' 0Example - SinThis example uses the Sin method of the Math class to return the sine of an angle. Public Function Csc(angle As Double) As Double ' Calculate cosecant of an angle, in radians. Return 1.0 / Math.Sin(angle) End FunctionExample - SqrtThis example uses the Sqrt method of the Math class to calculate the square root of a number. Dim mySqrt1 As Double = Math.Sqrt(4) Dim mySqrt2 As Double = Math.Sqrt(23) Dim mySqrt3 As Double = Math.Sqrt(0) Dim mySqrt4 As Double = Math.Sqrt(-4) Console.WriteLine(mySqrt1) Console.WriteLine(mySqrt2) Console.WriteLine(mySqrt3) Console.WriteLine(mySqrt4) ' The code produces the following output: ' 2 ' 4.79583152331272 ' 0 ' NaNExample - TanThis example uses the Tan method of the Math class to return the tangent of an angle. Public Function Ctan(angle As Double) As Double ' Calculate cotangent of an angle, in radians. Return 1.0 / Math.Tan(angle) End FunctionSee also
|