lunes, 17 de septiembre de 2012

Implementar una clase de nombre Ecuacion, la misma que permita resolver una ecuación de segundo grado y retorne el resultado. Realice un programa para probar dicha clase.


************ CLASE PROGRAM **************
using System;

namespace Tarea5
{
class Program
{
static void Main(string[] args)
{
//Inicialización de las variables que contienen los valores (coeficientes)
//introducidos por pantalla
double coefA = 0, coefB = 0, coefC = 0;
bool control = true;
while (control == true)
{
Console
.Clear();
Console
.ForegroundColor=ConsoleColor.Blue;
Console
.WriteLine("Resolver ecuaciones de segundo grado.");
Console
.ForegroundColor=ConsoleColor.DarkYellow;
Console
.WriteLine("Ecuaciones del tipo: Ax^2 + Bx + C = 0");

//Usamos un try / Cath para que el
// usuario solo ingrese numeros
bool rep = true;
while (rep == true)
{
try
{
Console
.ForegroundColor=ConsoleColor.Green ;
Console
.WriteLine("\nIntroducir el valor para A:");
coefA = Double
.Parse(Console.ReadLine());
Console
.ForegroundColor=ConsoleColor.Cyan;
Console
.WriteLine("\nIntroducir el valor para B:");
coefB = Double
.Parse(Console.ReadLine());
Console
.ForegroundColor=ConsoleColor.Magenta;
Console
.WriteLine("\nIntroducir el valor para C:");
coefC = Double
.Parse(Console.ReadLine());

rep =
false;
}
catch (FormatException)
{
Console
.Clear();
Console
.WriteLine("¡ERROR!. Introducir solo valores numéricos.");
rep =
true;
}
}

//Valores internos de la raiz cuadrada
double Bcuadrado = coefB * coefB;
double cuatroAC = 4 * coefA * coefC;
//Comprobamos si la raiz nos da un resultad negativo
// LA raiz solo pueden dar resultados positivos

if (Bcuadrado < cuatroAC && coefA > 0 && coefC > 0)
{
Console
.Clear();
Console
.ForegroundColor=ConsoleColor.Red;
Console
.WriteLine("La ecuación no tiene solución." +
"\nEl resultado de la raiz cuadrada en negativo.");
}
else
{
//Creamos el Objeto de la Clase
Ecuacion ecu =
new Ecuacion(coefA, coefB, coefC);

//Llamada a los métodos de calculo de clase ECgrado2
Console
.WriteLine("\nValor 1 = {0}",ecu.raizpositiva());
Console
.WriteLine("Valor 2 = {0}",ecu.raiznegativa());
}
Console
.ForegroundColor=ConsoleColor.Yellow;
Console
.WriteLine("\n¿Desea seguir calculando? (y/n)");

//Este último bloque se repite siempre que el usuario no introduzca el
//formato correcto (y/n) para la pregunta anterior
bool repSwitch = true;
while (repSwitch == true)
{
string SioNO = Console.ReadLine();
switch (SioNO)
{
case "y": case "Y":
control =
true; //Repite el bloque principal del programa
repSwitch =
false;
break;
case "n": case "N":
control =
false; //Termina el bucle principal del programa
repSwitch =
false;
break;
default:
Console
.WriteLine(
"\nLa entrada no es correcta. Pulse \"y\" o \"n\".");
repSwitch =
true;
break;
}
}
}
}
}
}

**********CLASE ECUACION***********
using System;

namespace Tarea5
{
class Ecuacion
{
private double A, B, C;
public Ecuacion(double a, double b, double c)
{
A = a
;
B = b
;
C = c
;
}

public double raizpositiva() //Método que resuelve la raiz positiba
{
double result = ((-B + System.Math.Sqrt (B * B - 4 * A * C)) / (2 * A));
return result;
}

public double raiznegativa() //Método que resuelve la raiz negativa
{
double result = ((-B - System.Math.Sqrt(B * B - 4 * A * C)) / (2 * A));
return result;
}
}
}












No hay comentarios:

Publicar un comentario