• Jueves 14 de Noviembre de 2024, 17:17

Autor Tema:  Problemas Con Cadenas  (Leído 2197 veces)

ES_ogidoc_COM

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Problemas Con Cadenas
« en: Sábado 16 de Septiembre de 2006, 04:58 »
0
tengo un problema con un programa que estoy elaborando el cual se la da una expresion cualquiera matematica y la tiene que resolver este problema es mediante pilas el problema ratica en que yo ya tengo todo el algopritmo de evalucion y implantacion con pilas donde me falla es al momento de tener por ejemplo esto :

5+6*(9*56-3)+6 y al quererl pasar de esta forma

((5+(6*((9*56)-3)))+6) esta notacion es para que se pueda evaluar dicha expresion
el problema esta en que nose como hacer que mi programa al comparar un operador ponga en otra cadena una parentsis antes de el operando y depues del operado y que verifique si ta tiene parentesis mi problema esque nose com hacer que en otro cadena insertar la parte de la cadena que me sirve y ir introduciondo los parentesis que faltan ya use un tipo apuntador pero no me queda solo quiero que me den un empujonsito para  mas o menos saber por donde pegarle, se agradece por la atencion y ayuda que me puedan dar gracias

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #1 en: Sábado 16 de Septiembre de 2006, 05:07 »
0
:P  :P  :P  :P

 Si no mas recuerdo la funcion para concatenar cadenas es strcpy(); que es string copy de todas formas revisa las funciones de la libreria string.h donde vienen varias funciones para cadenas...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #2 en: Sábado 16 de Septiembre de 2006, 06:47 »
0
Cita de: "Bicholey"
:P  :P  :P  :P

 Si no mas recuerdo la funcion para concatenar cadenas es strcpy(); que es string copy de todas formas revisa las funciones de la libreria string.h donde vienen varias funciones para cadenas...
que no es strcat() para concatenar? y strcpy() solo saca la copia identica de una cadena???? ya tiene que no programo en c++ pero que sepa es asi.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #3 en: Sábado 16 de Septiembre de 2006, 07:17 »
0
:lol:  :lol:  :lol:

 creo que tienes razon por eso es mejor que busque las opciones de la libreria de string.h
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #4 en: Sábado 16 de Septiembre de 2006, 07:33 »
0
Cita de: "Bicholey"
:lol:  :lol:  :lol:

 creo que tienes razon por eso es mejor que busque las opciones de la libreria de string.h
esta es muy buena :)

http://c.conclase.com/librerias/libreria.php?lib=string

ES_ogidoc_COM

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #5 en: Sábado 16 de Septiembre de 2006, 08:52 »
0
si eso si lo se conozco la funciones de cadenas y de caracteres pero mi problema radica mas buien les pido ayuda para que me pueda sacar un algoritmo para que pueda pasar de una expresion en formato cadena y poder introducirles los parentisis que sean nesesarios para mi programa de evaluacion saque el valor de la expresion porfavor si nos tantamolestia eso de que me ayuden a sacar el algoritmo les doy las gracias por los consejos queme dieron anteior mente y les agradesco su atencion espero me puedan ayudar gracias

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #6 en: Sábado 16 de Septiembre de 2006, 10:31 »
0
:P  :P  :P  :P

Pues no se como lo veas tu, pero lo que pides creo que tiene un error de jerarquizacion ya que no defines bien que operaciòn deseas hacer aqui:
Citar
(9*56-3)

y tu me pedis esto ((9*56)-3) pero yo podeis pensar que me quieres indicar esto :
(9*(56-3)) que no es lo mismo yo creo que el usuariom deberia definir bien las operaciones en cuanto alo del formato to creo que no debrias usarlo asi, ami se me ocurre que podrias leer numero  hasta encontrar signo (+,-,*,/) y volver a leer numero mientras sea diferente de numero o parentesis y luego jerarquizar los parentesis por ejemplo realizar todo lo que este dentro de ()
 como (9*56-3) y asi ir desglosando tu problema...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


ES_ogidoc_COM

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #7 en: Sábado 16 de Septiembre de 2006, 22:17 »
0
por eso mi progama tiene que jerarquizar los parentisis dependiendo de la precedencia de opredadores

por ejemplo

si yo introduzco la siguiete expresion :

     (3+4)*5+(6/3)-3
mi programa tiene que verificar la prioridar de operadores y colocar un parentis entre lis digitos hacia adelante y hacia atras paa que por enjemplo en la parte siguiente del ejemplo anerior
 
    (3+4)*5.... se debe de covertir a  ((3+4)*5) y depues sigue verificando prioridad de operadores el siguiete caso seria

   ((3+4)*5)+(6/3)   a pasaria a (((3+4)*5)+(6/3)) ahora seguiria verificando prioridad de operadores la el siguiete caso y ultimo  seria

(((3+4)*5)+(6/3))

ES_ogidoc_COM

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #8 en: Sábado 16 de Septiembre de 2006, 22:25 »
0
que pasaria a ((((3+4)*5)+(6/3)) -3)
entonces todo eso tengo que ponerlo en otra cadena diferente de la intoduci por que obviamente es mas grande que la primera por los caracteres agregados
 y ya teniendo esta cada de esta forma ya mi programa de evalucion de expresiones calcularia su valor correctamente

pero lo que no se es como hacer eso que cheque un la precedencia de un operador y que añeda en otra cadena un parentesis ")" despues del ultimo digito que afecta el operadore y hacia atras agregar un parentesi "(" despues del ultimo digito que afecta haciua atras pero tanbien esta el caso en que hay parentisis con epreciones despues del operador entonces no se com ohacer eso

ya le estuve intentando conforme encontraba la precedencia ponian en otra cadena e tipo apuntador  en una pisiscion adbritrari como por la posiscion 50 colocaba el operador luego el digito o digitos y el parentisis y hacia atras hacia lo mismo pero solo funciona para una expresion como 5*3+1 pero ya despues no se como acomodar la segunda cadena espero me explique bien haber si me entiendiron gracias por su atencion

Max_D

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
    • http://sitioteca.spaces.live.com/
Re: Problemas Con Cadenas
« Respuesta #9 en: Sábado 16 de Septiembre de 2006, 22:58 »
0
Para desarrollar esas expresiones lo mejor seria utilizar arboles, donde pones el operador como nodo y los operados como hijos derecho e izquierdo.

ES_ogidoc_COM

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problemas Con Cadenas
« Respuesta #10 en: Sábado 16 de Septiembre de 2006, 23:22 »
0
si ya se que con arboles esmas facil
pero lo tengo que hacer con pilas
la evalucioncon pilas ya esta pero solo funciona poniendo los parentesis correspondientes
por eso quiero hacer lo mencionado anterior mentepara que mi programa ya quede correctamente
gracias por su atencion