elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 08:28  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  Alguien q me corrija el codigo..?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Alguien q me corrija el codigo..?  (Leído 909 veces)
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Alguien q me corrija el codigo..?
« en: 26 Marzo 2011, 01:28 »

He intentado de muchas formas hacer esto y hay otro post con esa otra idea pero esta es mejor solo que me anda a veces :S

Código
 
string texto = "2x-8(5+4)-1";
 
string[] datos = new string[50];
int h = 0;
 
    for (int i = 0; i < texto.Length; i++) // Bucle para recorrer letra por letra
     {
                  if (texto[i].ToString() == ")")  // Si la letra que estamos recorriendo es igual a ")" entonces..
                     {    
                         h--;  // Bajamos el index de datos[] para q siga escribiendo las siguientes letras en el index q estaba antes
                         continue; // salteamos la fase del bucle para q vuelva a generarse con el siguiente valor de i, ya q no queremos que luego al final del bucle agregue el parentesis en datos[h]
                     }
 
                  if (texto[i].ToString() == "(") // Si la letra q estamos recorriendo es igual a "(" entonces..
                     {
                          h++;  // Subimos el valor del index de datos[] para q empiece a escribir las letras del nuevo "conjunto" de parentesis, en un distinto index de datos[]
 
                          continue; // Salteamos la fase del bucle para q se genere otra vez con el siguiente valor de i ya que no queremos que se escriba el parentesis
                      }
 
         datos[h] += texto[i].ToString(); // Vamos agregando las letras
 
     }
 
 
     foreach (string r in datos)
           MessageBox.Show(r);
 
 

Entienden q quiero hacer? los mensajes q tendrian salir serian primero "2x-8-1" y el otro "5+4", es decir datos[0] tendra "2x-8-1" y datos[1] tendra "5+4"

Ese codigo con esa ecuacion funciona, pero la idea es q funcione para texto = "2x-8(5+3(-4+8(1+2)-56)-2)-87+1"
Que tendria q dejar en datos[0] = "2x-8-87+1", en datos[1] = "5+3-2" , en datos[2] = "-4+8-56" y datos[3] = "1+2"

Si sirve para todas estas, es porq anda bien:
            2x-8(5+4)-1
            -1(2x-8)
            (2x-8)-1
            2x-8(5+4)-1(3+2)-9+8
            2x-8(5+4)-1(3+2(8-4)+5)-9+8
            2x-8(5+4(2+7))-1(3+2(8-4)+5)-9+8
            2x-8(5+4(2+7))-1(3+2(8-4(3+7))+5)-9+8


pd: No se preocupen por si salen los mensajes q tienen q salir y luego salen el resto en blanco hasta llegar a 50 q es el limite del array, eso no importa ya q lo tengo solucionado y tendra un valor q cambiara siempre para q quede justo.

Espero que alguien lo pueda hacer ya q despues de eso ya creo q puedo seguir adelante solo y esta quedando lindo el proyecto, espero q me ayuden!


pd: Arregle el codigo, espero q entiendan mejor ahora


« Última modificación: 26 Marzo 2011, 18:23 por XXX-ZERO-XXX » En línea
DaasCook

Desconectado Desconectado

Mensajes: 53


Maximum Trolling!


Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #1 en: 26 Marzo 2011, 02:00 »

¡Qué desorden de código hermano!.

Te recomendaría que leyeras un manual al menos básico sobre C#, éste te recomendaría encarecidamente, antes de volver a hacer un código así.


En línea

for (int i = Trolling.MaxVal; i > Trolling.MinValue; i--) {
    Forum.Answer = "Don't feed the troll"; }
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #2 en: 26 Marzo 2011, 15:35 »

Jajaja xD q tiene de mal? es la idea q me lo corrijan, vs q sabes mas talvez me podes echar una mano ;)


pd: Ese codigo esta hecho para q entiendan q quiero hacer, el verdadero codigo tiene muchas mas cosas, pero no digo q talvez me vendria bien leerme ese manual.. por segunda vez..
En línea
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #3 en: 26 Marzo 2011, 17:02 »

Porque el for lo inicias desde 1 ? , si se empieza desde la posicion 0, yo cambiando eso ya me anda asi como tu lo dices y me da el resultado bien como lo indicas para el string "2x-8(5+3(-4+8(1+2)-56)-2)-87+1"

P.D. El codigo lo pase a Java, ya que no tengo C#, pero no hay muchas diferencia en la sintaxis
En línea

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #4 en: 26 Marzo 2011, 18:20 »

Ya lo modifique en el post principal, pero por ejemplo para esta ecuacion no anda: 2-8(2x-5(4+8)-2(8-3)-86+84)-96
En línea
.::IT::.

Desconectado Desconectado

Mensajes: 115



Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #5 en: 26 Marzo 2011, 22:27 »

Esto te puede ayudar tengo problemas con el orden pero despues esta todo bien:

 
Código
//La exprecion a evaluar
           string Cadena = this.textBox1.Text;//colocar aqui la expresion a evaluar
 
           //Convertir a un array de "char"
           char[] texto;
           texto = Cadena.ToCharArray();
 
           string[] datos;
 
           //Contendra los indices donde se encuentran los "("
           List<int> Niveles = new List<int>();
 
           for (int i = 0; i < texto.Length; i++)
           {
               if (texto[i].ToString() == "(")
                   Niveles.Add(i);
           }
 
           //ahora que ya conocemos el total de niveles inicializamos el tamaño de datos[]
           datos = new string[Niveles.Count + 1];
 
           //comenzamos a llenar los datos pero comenzando desde el menor valor los caracteres que ya recorrimos los llenamos con espacios en blanco
           for (int i = datos.Length - 1; i >= 0; i--)
           {
               datos[i] = "";
 
               bool termino = false;//variable que indica si termino la busqueda de ")"
 
               if (i > 0)
               {
                   for (int j = Niveles[i - 1]; j < texto.Length; j++)
                   {
                       if (texto[j] == char.Parse(")"))
                       {
                           termino = true;
                       }
 
                       if (texto[j] != char.Parse("(") && texto[j] != char.Parse(")") && texto[j] != char.Parse(" "))
                       {
                           datos[i] = datos[i] + texto[j].ToString();
                       }
 
                       texto[j] = char.Parse(" ");
 
                       if (termino)
                           break;
                   }
               }
               else
               {
                   for (int j = 0; j < texto.Length; j++)
                   {
                       if (texto[j] != char.Parse("(") && texto[j] != char.Parse(")") && texto[j] != char.Parse(" "))
                       {
                           datos[i] = datos[i] + texto[j].ToString();
                       }
                   }
               }
           }
 
           foreach (string r in datos)
               MessageBox.Show(r);
En línea

Simplemente .::IT::.
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #6 en: 26 Marzo 2011, 23:13 »

Lo hiciste recien o lo tenias en algun codigo viejo? Sos un kapo! gracias!!!
No era nada facil, me quedo tranquilo xD
En línea
.::IT::.

Desconectado Desconectado

Mensajes: 115



Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #7 en: 26 Marzo 2011, 23:21 »

Recien lo hice pero para que es no entiendo!!!!!!!!!!!!!!
En línea

Simplemente .::IT::.
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Alguien q me corrija el codigo..?
« Respuesta #8 en: 26 Marzo 2011, 23:27 »

Para ordenar una ecuacion para q quede formal y luego calcular el valor de x, pero todo eso lo vere de a poco, ahora ya tengo separado los parentesis q es lo q queria, y ahora intentare simplificar y ver como hago las cuentas para simplificar :S
Despues q la ecuacion queda formal es decir ax^2+bx+c o ax+b ya lo calcula mi codigo, esta quedando lindo :P gracias!
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como lo ice esta bien?el bat?porfavor q alguien me corrija si me equivoque
Hacking Básico
cebs 6 524 Último mensaje 15 Enero 2007, 19:49
por cebs
alguien puede ayudarmecon este codigo
Programación Visual Basic
pedraosone 7 582 Último mensaje 5 Octubre 2007, 01:57
por Spider-Net
Alguien me puede dar un codigo para Demonoid?
Dudas Generales
ElficO 0 348 Último mensaje 13 Junio 2008, 20:49
por ElficO
ayuda! alguien tiene un codigo cursi?
Foro Libre
Kase 11 1,236 Último mensaje 1 Septiembre 2008, 03:52
por SirLanceCC
¿Alguien sabe que hace este código?
Seguridad
Demenus 4 1,240 Último mensaje 15 Mayo 2010, 22:44
por [L]ord [R]NA
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines