Buenas a todos Tio!
Soy Cristian Suan y esto es c#
En las primeras entradas del blog realizare una calculadora científica por consola , en este post ire comentando sobre varios códigos de los métodos utilizados y al final dejare el link de descarga del proyecto.
La calculadora realizara operaciones entre dominios, los cuales son
Naturales | Enteros | Racionales | Reales | Complejos(Imaginarios)
y las primeras operaciones serán las básicas
Suma | Resta | Multiplicación | División
En donde se tendrán encuenta las excepciones dependiendo de la operación y el dominio.
La calculadora solicitara 2 numeros para realizar las operaciones.
NATURALES
En este dominio la principal excepción es los números negativos, ademas de los resultados decimales de las divisionesExcepciones realizadas
Para todas las operaciones se realiza la validacion de que ninguno de los 2 numeros ingresados sea negativo
Como se ve en el siguiente codigo, es el metodo de la division en naturales:

En la primera parte del codigo se valida que los numeros ingresados no sean negativos, este codigo es utilizado en los demas metodos. Otra excepcion es la de division por cero entonces para controlar ese error se valida el num2 que es el denominador y si llega a ser 0 arrojara excepcion de division por cero, en caso de no encontrarse con algun error simplemente operara y retornara el resultado de la division, el resultado siempre sera la parte entera del resultado en caso de ser un decimal
Aparte de la excepcion que se maneja en la division tambien se realizo otra para la resta, ya que el resultado puede dar negativo cuando el num2 es mayor al num1 entonces se realizo lo siguiente:

Aparte de la validacion de numero negativo, entra a otra validacion de que num2 no sea mayor que num1 y luego simplemente opera y retorna el resultado. La suma y la multiplicacion solo usan la validacion de numero negativo ya que no requieren de mas excepciones.
Enteros
En esta clase ya no se realiza validacion de numeros negativos por que entran en el dominio, la validacion realizada solo es en la division

RACIONALES
En este dominio se realizan validacion de tipo denominador para validar que no ingrese denominador 0, los metodos implementados en el dominio de los racionales y de los complejos retornaran una cadena de caracteres (String) para darles el formato el cual explicare a continuacion.
El metodo de la division se implementa la validacion de que los denominadores de los numeros a operar no sean 0 como demas metodos y el resultado sera mostrado con un formato:
A diferencia de los demas dominios este solicitara 4 parametros ya que las operaciones serian
[a/b] (+ - * /) [c/d] donde
Numerador> a -->num1 c--> num2
Denominador> b -->den1 d--> den2

La validacion inicial es para que ni b (den1) ni d (den2) sean 0 ya que generara error al operar, entonces se valida que ninguno sea igual a 0, en caso de que alguno sea 0 se generara una excepcion de tipo argumento donde se le indique que algun denominador es 0. Si no hay problema con los racionales ingresados se opera, donde se parte en dos la respuesta, una parte numerador (nres) y otra denominador (dres) para el formato se utiliza el String.Format en donde los numeros dentro de las llaves {} indican la variable. Las otras operaciones tienen la misma validacion inicial y ya lo que cambiaria es la operacion.
REALES
En los metodos de este dominio solo se tiene encuenta la validacion de la division en 0 ya que no requiere de mas.
COMPLEJOS(IMAGINARIOS)
A diferencia de los demas dominios este solicitara 4 parametros ya que las operaciones seria [a + bi] (+ - * /) [c + di] donde
Entera> a -->num1 c--> num2
Imaginariar> b -->numA d--> numB

Como lo mencionaba anteriormente los metodos del dominio de los complejos tambien retorna los resutados con un formato, los metodos son similares solo varian las operaciones, en cada metodo esta explicado como es la operacion y como retorna el resultado.
Bueno esto es todo por este primer post de la Calculadora cientifica, en el siguiente post veremos funciones trigonometricas algebraicas entre otras.
Link: Mega
Las personas con las que he trabajado el código son
Julian Camilo Plazas Camargo | Juan Camilo Gomez Pinzon
Este comentario ha sido eliminado por el autor.
ResponderEliminar