C# - Calculando a enésima raiz de um número (para iniciantes) |
Neste artigo eu mostro como realizar cálculos usando a classe Math para calcular a enésima raiz de um número. |
Para calcular a raiz enésima de um número podemos usar a fórmula : raiz = K1/N
A definição para a raiz enésima nos números reais é definida assim:
Seja a um número real e n um número natural não nulo. O número x é chamado raiz enésima de a se, e somente se, elevado ao expoente n, reproduz a : x ^ n = a
Vou a seguir mostrar como calcular a raiz enésima usando a linguagem C#.
Recursos usados:
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando o projeto no VS Community
Abra o VS Community 2015 e clique em New Project;
Selecione a linguagem Visual C# e o template Windows Forms Application;
Informe o nome Raiz_Enesima e clique no botão OK;
No formulário form1.cs inclua a partir da ToolBox os seguintes controles:
1 Picturebox
2 Labels
2 TextBox - txtRadicando e txtIndice
1 Button - btnCalcular
1 PictureBox e 2 Labels
1 Label
1 TextBox = txtResultado
Disponha os controles conforme o leiaute da figura a seguir:
Vamos definir a propriedade KeyPreview do formulário como True e a seguir no evento KeyDown do formulário definir o código abaixo que troca o ENTER pelo TAB:
//Recebe ENTER e envia TAB no formulario (KeyPreview=True)
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
}
}
|
Neste código a pressionar o ENTER seu funcionamento será equivalente ao TAB.
O código !e.Shift indica que é para mudar para o próximo campo se pressionado ENTER, e ir para o campo anterior se pressionados SHIFT e ENTER simultaneamente (o mesmo funcionamento do SHIFT + TAB).
No evento KeyPress dos controles TextBox txtRadicando e txtIndice vamos incluir o código a seguir que permite somente valores numéricos:
//so numeros no textbox
private void txtRadicando_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
}
//so numeros no textbox
private void txtIndice_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
}
|
No evento KeyPress dos TextBox somente será permitido dígitos e a tecla BACKSPACE.
Agora no evento Click do botão btnCalcular digite o código abaixo que calcula o valor da raiz enésima:
private void btnCalcular_Click(object sender, EventArgs e)
{
//valida o valor do radicando
if(string.IsNullOrEmpty(txtRadicando.Text))
{
MessageBox.Show("Informe o valor do radicando");
return;
}
else
{
lblRadicando.Text = txtRadicando.Text;
}
//valida o valor do indice
if (string.IsNullOrEmpty(txtIndice.Text))
{
MessageBox.Show("Informe o valor do índice");
return;
}
else
{
lblIndice.Text = txtIndice.Text;
}
//calcula a raiz enesima
try
{
radicando = double.Parse(txtRadicando.Text);
indice = double.Parse(txtIndice.Text);
resultado = Math.Pow(radicando, 1 / indice);
txtresultado.Text = resultado.ToString();
}
catch(Exception ex)
{
MessageBox.Show("Erro :" + ex.Message);
}
}
|
O código é bem simples e usa os seguintes conceitos básicos:
Estamos convertendo o valor string para double usando double.Parse(string). Outra opção seria usar Convert.ToDouble(string). A diferença de desempenho é pequena.
O cálculo esta sendo feito usando a classe Math e seu método estático Pow() : Math.Pow(radicando, indice) que retorna o valor de uma expressão base elevada a uma potência especificada.
Para mais detalhes veja o artigo : C# - A classe Math - Macoratti.net
Agora é só alegria...
Executando o projeto e realizando um cálculo teremos o seguinte resultado :
Fique a vontade para alterar o projeto e incrementar novas funcionalidades.
Pegue o projeto completo aqui: Raiz_Enesima.zip
Segui a paz com todos, e a santificação,
sem a qual ninguém verá o Senhor;
Hebreus 12:14
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: