elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Píldoras formativas en seguridad de la información


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  AYUDA ERROR C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA ERROR C#  (Leído 184 veces)
gomezjuan

Desconectado Desconectado

Mensajes: 11


Ver Perfil
AYUDA ERROR C#
« en: 17 Mayo 2020, 13:14 »

Hola, tengo el siguiente código que lo que debería hacer es calcular los coeficientes que forman un polinomio, alguien me puede decir donde estan los errores?
Código:
public static void Main(){
        string ecuacion = "x^4 - x^3 - 5x^2 - x - 6";

        ecuacion = ecuacion.Replace(" ", string.Empty);
        char[] delimitadores = new char[] { '-', '+', '*', '/' };

        List<string> subEcuaciones = new List<string>();
        string subEcuacion = string.Empty;

        foreach (char caracter in ecuacion)
        {
            if (delimitadores.Contains(caracter))
            {
                subEcuaciones.Add(subEcuacion);
                subEcuacion = string.Empty;
            }
            subEcuacion += caracter;
        }

        subEcuaciones.Add(subEcuacion);
        foreach (string ecuaciones in subEcuaciones)
        {
            Console.Write(ecuaciones + ": ");

            if (ecuaciones[0] == '-' && char.IsDigit(ecuaciones[1]))
            {
                Console.WriteLine(ecuaciones[0].ToString() + ecuaciones[1].ToString());
            }
            else if (ecuaciones[0] == '+' && char.IsDigit(ecuaciones[1]))
            {
                Console.WriteLine(ecuaciones[0].ToString() + ecuaciones[1].ToString());
            }
            else if (ecuaciones[0] == '-' && !char.IsDigit(ecuaciones[1]))
            {
                Console.WriteLine(ecuaciones[0].ToString() + "1");
            }
            else if (ecuaciones[0] == '+' && !char.IsDigit(ecuaciones[1]))
            {
                Console.WriteLine(ecuaciones[0].ToString() + "1");
            }
            else if (char.IsDigit(ecuaciones[0]))
            {
                Console.WriteLine("+" + ecuaciones[0].ToString());
            }
            else if (ecuaciones[0]=='x')
            {
                Console.WriteLine("+ 1");
            }
        }
    }


En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.188


Ver Perfil
Re: AYUDA ERROR C#
« Respuesta #1 en: 17 Mayo 2020, 14:52 »

- Donde te da el error? supongo que cuando intentas usar el método .Contains() en el Char Array delimitadores, al menos en mi .NET 2 al 3.5 no existe ese método.

- Como veo que está utilizando un List pues has lo mismo para delimitadores este sí que tiene el método .Contains()

Código
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class Program {
  5.  public static void Main() {
  6.    string ecuacion = "x^4 - x^3 - 5x^2 - x - 6";
  7.  
  8.    ecuacion = ecuacion.Replace(" ", string.Empty);
  9.    List<char> delimitadores = new List<char> { '-', '+', '*', '/' };
  10.  
  11.    List<string> subEcuaciones = new List<string>();
  12.    string subEcuacion = string.Empty;
  13.  
  14.    foreach (char caracter in ecuacion) {
  15.      if (delimitadores.Contains(caracter)) {
  16.        subEcuaciones.Add(subEcuacion);
  17.        subEcuacion = string.Empty;
  18.      }
  19.      subEcuacion += caracter;
  20.    }
  21.  
  22.    subEcuaciones.Add(subEcuacion);
  23.    foreach (string ecuaciones in subEcuaciones) {
  24.      Console.Write(ecuaciones + ": ");
  25.  
  26.      if (ecuaciones[0] == '-' && char.IsDigit(ecuaciones[1])) {
  27.        Console.WriteLine(ecuaciones[0].ToString() + ecuaciones[1].ToString());
  28.      } else if (ecuaciones[0] == '+' && char.IsDigit(ecuaciones[1])) {
  29.        Console.WriteLine(ecuaciones[0].ToString() + ecuaciones[1].ToString());
  30.      } else if (ecuaciones[0] == '-' && !char.IsDigit(ecuaciones[1])) {
  31.        Console.WriteLine(ecuaciones[0].ToString() + "1");
  32.      } else if (ecuaciones[0] == '+' && !char.IsDigit(ecuaciones[1])) {
  33.        Console.WriteLine(ecuaciones[0].ToString() + "1");
  34.      } else if (char.IsDigit(ecuaciones[0])) {
  35.        Console.WriteLine("+" + ecuaciones[0].ToString());
  36.      } else if (ecuaciones[0] == 'x') {
  37.        Console.WriteLine("+1");
  38.      }
  39.    }
  40.    Console.ReadKey();
  41.  }
  42. }


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines