Pascal/Turbo Pascal - Como operar (suma y producto)

 
Vista:

Como operar (suma y producto)

Publicado por pablo_g (3 intervenciones) el 29/10/2007 19:51:04
Hola amigos del foro, mi nombre es Pablo y tengo una duda con respecto a programacion en pascal.
Recien estoy empezando y ya me surgio una duda quizas sencilla pero no se resolverlo. Tengo que hacer operaciones de suma y producto pero NO poseen parentesis (ejemplo: 14 + 3 * 10 * 8 - 55). El problema es que no se como hacer para realizar primero las multiplicaciones y luego las sumas (por ser que la multiplicación tiene mayor precedencia que la suma).
Le agradezco muchisimo a quien me pueda responder ya que necesito entregar este trabajo.
Desde ya muchas gracias ...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como operar (suma y producto)

Publicado por NachoC (5 intervenciones) el 30/10/2007 21:27:25
Lo que pides no es trivial.

Hay varias formas de hacerlo. Por ejemplo:

- Recorrer la cadena para buscar primero las multiplicaciones, y multiplicar lo que aparece a la izquierda de cada * por lo que aparece a su derecha. Así vas generano una nueva cadena que sólo tiene sumas.

- Usar un árbol binario (o quizá incluso una pila) auxiliar, donde vas introduciendo las operaciones para ayudarte a realizarlas en el orden correcto.

- ...

La más fácil es la primera forma, pero tampoco es especialmente sencilla, porque tienes que ir extrayendo trozos de cadenas y creando una nueva cadena con los resultados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Como operar (suma y producto)

Publicado por Mechanic (177 intervenciones) el 01/11/2007 22:00:46
Pablo espero que aún tengas tiempo de entregar tu trabajo.

Dices tú que no sabes cómo hacer para realizar primero las multiplicaciones y luego las sumas. Pero tú mismo dijiste que la multiplicación tiene mayor precedencia que la suma.

Esto quiere decir que el programa va a realizar primero las multiplicaciones.

uses Crt;
var I : Integer;
begin
I := 14 + 3 * 10 * 8 - 55;
writeln(I);
Readkey
end.

El total es 199
Porque al 14 se le sumó el resultado de 3*10*8 luego a esto se le restó el 55.
Así que no tienes ningún problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como operar (suma y producto)

Publicado por Diego Romero (996 intervenciones) el 05/11/2007 14:57:04
Me parece que no se entienden ;).

pablo_g: deberías especificar si la expresión que has puesto de ejemplo es una expresión de tipo string ingresada por el usuario o es una expresión matemática dentro del código fuente de tu programa. Si el lo primero NachoC responde a ello y si es lo segundo Mechanic lo responde.

Si es lo primero, en mi página web tengo ese problema resuelto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como operar (suma y producto)

Publicado por Pablo_g (3 intervenciones) el 05/11/2007 23:43:34
Hola les cuento un poquito:

Las expresiones son ingresadas por el usuario; el problema es que en mi trabajo no me permiten utilizar facilidades de pascal como especifica "Mechanic"; me han dicho que lo mejor es utilizar iteraciones dentro de otras pero no logro entenderlo del todo.
Disculpen la molestia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como operar (suma y producto)

Publicado por Adri (1 intervención) el 07/11/2007 22:35:40
Che pablo, trabajas en la Facultad de ingenieria de Uruguay???? Por q eso es lo q piden en la segunda tarea de prog 1 no seas rata y ponete a leer teorico!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como operar (suma y producto)

Publicado por pablo (3 intervenciones) el 07/11/2007 23:05:38
Gracias por responder pero esa no es mi DUDA. Pero cual es la tuya por algo estas en este foro... no leistes el teorico??
Ademas si no sabias los foros son para preguntar y aprender.... rata....

Agradesco a quienes quisieron darme una respuesta coherente con mi duda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar