Calculadora Cientifica C Sharp
En esta ocacion les presento la nueva versión de la calculadora científica publicada en entradas anteriores .
Entre los cambios realizados se encuentran la integración de funciones para calculadora científica, funciones trigonométricas, botones de memoria y retroceso.
Lenguaje de programación C Sharp.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace CalculadoraCientifica { public partial class Calculadora : Form { double Valor1; //-----------Declaracion de Variables double Valor2; double Resultado; bool Inicio = true; bool Operacion = true; bool Igual = true; bool TOperacion = true; string TipoOperacion; double Memoria = 0; double a, b, c; public Calculadora() { InitializeComponent(); } //--------------------------------Botones Numericos private void Btn1_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "1"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "1"; } private void Btn2_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "2"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "2"; } private void Btn3_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "3"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "3"; } private void Btn4_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "4"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "4"; } private void Btn5_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "5"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "5"; } private void Btn6_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "6"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "6"; } private void Btn7_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "7"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "7"; } private void Btn8_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "8"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "8"; } private void Btn9_Click(object sender, EventArgs e) { if (Inicio) { TxtPrincipal.Text = ""; TxtPrincipal.Text = "9"; Inicio = false; } else TxtPrincipal.Text = TxtPrincipal.Text + "9"; } private void Btn0_Click(object sender, EventArgs e) { if (!Inicio) { TxtPrincipal.Text = TxtPrincipal.Text + "0"; Inicio = false; } } private void BtnDecimal_Click(object sender, EventArgs e) { if (TxtPrincipal.Text.Contains(".")) { } else { TxtPrincipal.Text = TxtPrincipal.Text + "."; Inicio = false; } } //------------------------Botones C, CE, Retroceso, Cambio de signo y botones de Memoria private void BtnCE_Click(object sender, EventArgs e) { TxtPrincipal.Text = ""; Inicio = true; } private void BtnC_Click(object sender, EventArgs e) { TxtPrincipal.Text = "0"; TxtPrevio.Text = ""; Inicio = true; Operacion = true; Igual = true; TOperacion = true; Valor1 = 0; Valor2 = 0; Resultado = 0; } private void BtnRetroceso_Click(object sender, EventArgs e) { if (TxtPrincipal.Text.Length > 1) TxtPrincipal.Text = TxtPrincipal.Text.Remove(TxtPrincipal.Text.Length - 1, 1); if (TxtPrincipal.Text.Length == 1) { TxtPrincipal.Text = "0"; Inicio = true; } if (TxtPrincipal.Text == "0") { } } private void BtnSigno_Click(object sender, EventArgs e) { TxtPrincipal.Text = Convert.ToString(0 - Convert.ToDouble(TxtPrincipal.Text)); } private void BtnMmenos_Click(object sender, EventArgs e) { Memoria = Memoria - Convert.ToDouble(TxtPrincipal.Text); this.LblMemoria.Visible = true; } private void BtnMmas_Click(object sender, EventArgs e) { Memoria = Memoria + Convert.ToDouble(TxtPrincipal.Text); this.LblMemoria.Visible = true; } private void BtnMS_Click(object sender, EventArgs e) { Memoria = Convert.ToDouble(TxtPrincipal.Text); this.LblMemoria.Visible = true; } private void BtnMR_Click(object sender, EventArgs e) { TxtPrincipal.Text = Memoria.ToString(); } private void BtnMC_Click(object sender, EventArgs e) { Memoria = 0; this.LblMemoria.Visible = false; } //---------------------------------------Operaciones Basicas private void BtnSuma_Click(object sender, EventArgs e) { Inicio = true; Igual = true; if (Operacion) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = ""; TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " + "; Operacion = false; } else { if (TOperacion) { Valor2 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " + "; Operaciones(Valor1, Valor2); //---------------------------Llama ala funcion Operaciones para realizar la operacion indicada TOperacion = false; } else { TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " + "; Operaciones(Resultado, Valor2); //TxtPrevio.Text = ""; } } TipoOperacion = "+"; } private void BtnResta_Click(object sender, EventArgs e) { Inicio = true; Igual = true; if (Operacion) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = ""; TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " - "; Operacion = false; } else { if (TOperacion) { Valor2 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " - "; Operaciones(Valor1, Valor2); TOperacion = false; } else { TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " - "; Operaciones(Resultado, Valor2); //TxtPrevio.Text = ""; } } TipoOperacion = "-"; } private void BtnMultiplicacion_Click(object sender, EventArgs e) { Inicio = true; Igual = true; if (Operacion) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = ""; TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " * "; Operacion = false; } else { if (TOperacion) { Valor2 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " * "; Operaciones(Valor1, Valor2); TOperacion = false; } else { TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " * "; Operaciones(Resultado, Valor2); //TxtPrevio.Text = ""; } } TipoOperacion = "*"; } private void BtnDivision_Click(object sender, EventArgs e) { Inicio = true; Igual = true; if (Operacion) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = ""; TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " / "; Operacion = false; } else { if (TOperacion) { Valor2 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " / "; Operaciones(Valor1, Valor2); TOperacion = false; } else { TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text + " / "; Operaciones(Resultado, Valor2); } } TipoOperacion = "/"; } private void BtnPorcentaje_Click(object sender, EventArgs e) { Valor2 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text; TxtPrincipal.Text = Convert.ToString((Valor1 * Valor2) / 100); Igual = true; } //------------------------Operaciones Cientificas //Realiza la operacion del boton 1/x private void Btn1x_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = ""; TxtPrincipal.Text = Convert.ToString(1 / Valor1); } //Raiz Cuadrada private void BtnRaizCuadrada_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); if (Valor1 >= 0) { TxtPrevio.Text = "√ " + Valor1; TxtPrincipal.Text = Convert.ToString(Math.Sqrt(Valor1)); } else TxtPrincipal.Text = "Error"; } //Log10 de x private void Btnlog_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "log( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Log10(Valor1)); } //Eleva a x al cuadrado private void BtnCuadrado_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = Valor1 + " ^ 2"; TxtPrincipal.Text = Math.Pow(Valor1, 2).ToString(); } //Eleva a x al cubo private void BtnCubo_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = Valor1 + " ^ 3"; TxtPrincipal.Text = Math.Pow(Valor1, 3).ToString(); } //Eleva a x a la -1 private void BtnXmenos1_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = Valor1 + " ^ -1"; TxtPrincipal.Text = Math.Pow(Valor1, -1).ToString(); } //Eleva un numero a x Potencia private void BtnExponente_Click(object sender, EventArgs e) { Inicio = true; Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = Valor1 + " ^ "; TipoOperacion = "potencia"; Operacion = false; Igual = true; } //Devuelve el valor de Pi private void BtnPi_Click(object sender, EventArgs e) { TxtPrevio.Text = ""; TxtPrincipal.Text = Math.PI.ToString(); } //Raiza cubica private void BtnRaizCubica_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); a = 1; b = 3; c = a / b; TxtPrincipal.Text = Math.Pow(Valor1, c).ToString(); TxtPrevio.Text = "3√ " + Valor1; } //Raiz x de un numero private void BtnRaizX_Click(object sender, EventArgs e) { Inicio = true; Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = " √ " + Valor1; TipoOperacion = "raizX"; Operacion = false; Igual = true; } //Boton EXP private void BtnEXP_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrincipal.Text = Convert.ToString(Math.Exp(Valor1)); } //Eleva 10 a la x potencia private void Btn10alaX_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "Potnecia( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Pow(10, Valor1)); } //Devuelve el factorial de un numero private void BtnFactorial_Click(object sender, EventArgs e) { a = 1; Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = Valor1 + "!"; for (b = 1; b <= Valor1; b++) { a = a * b; } TxtPrincipal.Text = Convert.ToString(a); } //Devuelve el valor de e private void Btne_Click(object sender, EventArgs e) { TxtPrevio.Text = ""; TxtPrincipal.Text = Convert.ToString(Math.E); } //-----------------Funciones Trigonometricas //Devuelve Sin de un numero private void BtnSin_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "sin( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Sin(Valor1)); } //Devuelve Sin hiperbolico de un numero private void BtnSinh_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "sinh( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Sinh(Valor1)); } //Devuelve Cos de un numero private void BtnCos_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "cos( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Cos(Valor1)); } //Devuelve Cos hiperbolico de un numero private void BtnCosh_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "cosh( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Cosh(Valor1)); } //Devuelve Tan de un numero private void BtnTan_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "tan( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Tan(Valor1)); } //Devuelve Tan hiperbolico de un numero private void BtnTanh_Click(object sender, EventArgs e) { Valor1 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = "tanh( " + Valor1 + " )"; TxtPrincipal.Text = Convert.ToString(Math.Tanh(Valor1)); } //-----------------------Boton de Igualdad private void BtnIgual_Click(object sender, EventArgs e) { Inicio = true; Operacion = true; if (Igual) { if (TipoOperacion == null) { } else { Valor2 = Convert.ToDouble(TxtPrincipal.Text); TxtPrevio.Text = TxtPrevio.Text + TxtPrincipal.Text; Operaciones(Valor1, Valor2); Igual = false; } } else { TxtPrevio.Text = ""; Operaciones(Resultado, Valor2); } } //-------------------Funcion que realiza las operaciones private void Operaciones(double Valor1, double Valor2) { switch (TipoOperacion) { case "+": Resultado = Valor1 + Valor2; TxtPrincipal.Text = Resultado.ToString(); Valor1 = Convert.ToDouble(TxtPrincipal.Text); break; case "-": Resultado = Valor1 - Valor2; TxtPrincipal.Text = Resultado.ToString(); Valor1 = Convert.ToDouble(TxtPrincipal.Text); break; case "*": Resultado = Valor1 * Valor2; TxtPrincipal.Text = Resultado.ToString(); Valor1 = Convert.ToDouble(TxtPrincipal.Text); break; case "/": if (Valor2 == 0) { TxtPrincipal.Text = "Error"; break; } else { Resultado = Valor1 / Valor2; TxtPrincipal.Text = Resultado.ToString(); Valor1 = Convert.ToDouble(TxtPrincipal.Text); break; } case "potencia": { Resultado = Math.Pow(Valor1, Valor2); TxtPrincipal.Text = Resultado.ToString(); break; } case "raizX": { if (Valor2 <= 0) { TxtPrincipal.Text = "Error"; break; } else { TxtPrevio.Text = Valor2 + " " + TxtPrevio.Text; TxtPrevio.Text = TxtPrevio.Text.Remove(TxtPrevio.Text.Count() - TxtPrincipal.Text.Count()); double a = 1; double c = a / Valor2; TxtPrincipal.Text = Math.Pow(Valor1, c).ToString(); break; } } } } //-----------------------------Botones del Menu private void copiarToolStripMenuItem_Click_1(object sender, EventArgs e) { Clipboard.SetDataObject(TxtPrincipal.Text); } private void pegarToolStripMenuItem_Click_1(object sender, EventArgs e) { TxtPrincipal.Text = ""; TxtPrincipal.Paste(); } private void salirToolStripMenuItem_Click_1(object sender, EventArgs e) { Application.Exit(); } private void acercadeToolStripMenuItem_Click(object sender, EventArgs e) { Acercade Acercade = new Acercade(); Acercade.Show(); } } }
Acá dejo el proyecto en VisualStudio 2010 para que lo descargues
muy bueno!!!!
ResponderEliminar10 puntos!!
ResponderEliminaroye amigo esta muy bien tu calculadora nadamas que el boton Exp no funciona bien no se si me puedes ayudar con ese boton porfavor
ResponderEliminarMario, revise el botón EXP y esta funcionando bien, si me podrías decir que es lo que sucede en tu caso podría ayudarte mejor.
ResponderEliminarSaludos!!
bacana la aplicacion .....me puedes ayudar con esta linea........this.LblMemoria.Visible = true; en especial LblMemoria
ResponderEliminarel LblMemoria es una label que se muestra en pantalla cuando la variable Memoria tiene algun valor que le ayas guardado, por eso el .visible = true y desaparece cuando limpias la variable,
ResponderEliminaren otras palabras es un indicador que guardaste una cantidad en la memoria
Que tipo de proyecto es
ResponderEliminarWindows form, aplicacion de consola, etc????
no se puede descargar el proyecto...!! me manda a otra ventana porque no inicia la descarga...!!
ResponderEliminarLa descarga se hace por rapidgator, en la pagina que se abre das clic donde dice "slow speed download" tienes que esperar unos segundos(aparece una cuenta regresiva), despues te aparece una capcha que debes llenar y luego aparece el boton para descargar el archivo...
ResponderEliminarsaludos!!!
link pls
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarSi hay 1000000000 botones pondras 1000000000 métodos por cada boton?
ResponderEliminarlinks caidos :v
ResponderEliminarHola amigo yo tambien me di cuenta pero no solo es en eso es en todo numero donde hay mas de dos signos iy no das click a igual en dos variables por lo cual si hay un segundo signo se debe calcular el resultado de inmediato par prevenir error solo codificalo.
ResponderEliminarTambien el cero tiene un error como tambien el decimal que es , no .
ese lenguaje lo puedo hacer en visual studio 2017?
ResponderEliminarno se puede descargar ambos links se cayeron
ResponderEliminar