[ Foro de Pascal ]
profesor buen dia
queria tu ayuda en resolver un ejercicio algo complicado y me gustaria tu ayuda.
necesito obtener el resultado de la siguiente expresion como:
a+b--+c++ =?
las letras son del alfabeto y cada una tiene un valor numerico respectivo donde a=1, b=2,c=3 etc....
agradezco toda orientacion mil gracias
¿Eso seguro que es Pascal? En Pascal no se usa la notación b-- ni la notación c++.
efectivamente profesor nacho, pero como podria implementar este caso a traves de un programa pascal? muy agradecido
como podria implementarse en pascal, la verdad es de un punto de maraton interna en mi universidad pero debe ser en pascal, cualquier orientacion agradecido
Hay un par de detalles que son importantes porque simplificarían la solución:
- ¿Las letras son sólo de la "a" a la "z", minúsculas, y sin ningún identificador formado por más de una letra?
- ¿Las operaciones permitidas son sólo suma, resta, incremento, decremento (sin mulitplicaciones, divisiones, ni potencias, que tienen prioridades distintas)?
Buen dia profesor Nacho , efectivamente es como tu dices las letras son solo de la a a la z minusculas y sin ningun identificador adicional y Las operaciones permitidas son sólo suma, resta, incremento, decremento.
gracias por toda ayuda.
En ese caso no es difícil, porque se puede procesar de izquierda a derecha (de la primera posición de la cadena a la última), letra a letra.
Por ejemplo, en el caso que proponías
a+b--+c++ =?
a=1, b=2,c=3
Se podría hacer algo como:
valor = 0
sumar = true
Lees a -> valor = valor + a (1), ultima variable = a
Lees + -> sumar = true
Lees b -> valor = valor + b (3), ultima variable = b
Lees - -> sumar = false
Lees - (y el anterior también era -) -> valor = valor - 1 (2), ultima variable (b) = ultima variable - 1 (1)
Lees + -> sumar = true
Lees x -> valor = valor + c (5), ultima variable = c
Lees + -> sumar = true
Lees + (y el anterior también era +) -> valor = valor + 1 (6), ultima variable (c) = ultima variable + 1 (4)
Si lo haces paso a paso, de forma muy ordenada, y mostrando los resultados temporales para comprobar que todo va bien, no te será difícil.
buenas profesor,
ante todo mil gracias sin embargo la verdad no entendo porejemplo en tu solucion donde haces la parte del b-- o del c++ , ademas como podria reflejar el caso en que los operadores estuviesen antes de la letra ejemplo --b y ++c, si pudieras explicarmelo un poco menos enredado es que porejemplo la parte de c (5) no se para que colocas en parentesis el 5 porejemplo como en este caso.
muy agradecido
No puede ser válido también el ++c, porque entonces las expresiones serían ambiguas: b+++c podría querer decir tanto "b postincrementado más c" como "b más c preincrementado".
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)