using System.Collections;
public static void Main()
Console.WriteLine("Ingresa el error minimo");
Er = Convert.ToDouble(Console.ReadLine());
ArrayList Rangos = new ArrayList();
for (int i = -10; i < 10; i++)
di = Convert.ToDouble(i);
if (fx(di) * fx(di - 1) < 0)
Rangos.Add(new Rango(di - 1, di));
foreach (Rango Rango in Rangos)
Console.WriteLine("Inicio de Operaciones con: ({0},{1})",Rango.Xi.ToString("0.0").PadLeft(4), Rango.Xs.ToString("0.0").PadLeft(4) );
Console.WriteLine("\r\n Xi | Xs | F(Xi) | F(Xs) | Xr | F(Xr) | F(Xi)*F(Xr)");
for (int i = 0; i < 7; i++)
Console.Write("{0}", Rango.Xi.ToString("N4") + " ");
Console.Write("{0}", Rango.Xs.ToString("N4") + " ");
Console.Write(fx(Rango.Xi).ToString("N4") + " ");
Console.Write(fx(Rango.Xs).ToString("N4") + " ");
Xr = Rango.Xs - fx(Rango.Xs) * ((Rango.Xs - Rango.Xi) / (fx(Rango.Xs) - fx(Rango.Xi)));
Console.Write(Xr.ToString("N4") + " ");
Console.Write(fx(Xr).ToString("N4") + " ");
multi = fx(Rango.Xi) * fx(Xr);
Console.WriteLine(multi.ToString("N4"));
Console.WriteLine("Error obtenido = " + multi.ToString("N9") + "\n" + "Error solocitado = " + Er);
public static double fx(double x) { return 2 * Math.Pow(x, 3) + x - 1; }
public Rango(double Xi, double Xs)
public static double multi = 10000;