Operadores, Prioridad y asociatividad en lenguaje C.

Iniciado por NOB2014, 4 Abril 2014, 02:55 AM

0 Miembros y 1 Visitante están viendo este tema.

NOB2014

Hola a todos y que tengan un muy buen día.-
En este caso estoy estudiando operadores, Prioridad y asociatividad y realmente estoy trabado, en el programa, la segunda sentencia logro establecer qué el resultado sea 119 (creo estar en lo correcto).-

#include <stdio.h>

int main(){
int a = 3 + 4 *(8 * (4 - ( 9 + 3) /6)); //67
int b = 4 * 3 * 5 + 8 * 4 * 2 - 5; //119

printf("\n El resultado de 3 + 4 *(8 * (4 - ( 9 + 3) /6)) es...: %d", a);
printf("\n\n El resultado de 4 * 3 * 5 + 8 * 4 * 2 - 5 es........: %d", b);

printf("\n\n");
return 0;
}


Citar
  4 * 3 * 5 + 8 * 4 * 2 - 5

4 * 3 = 12
12 * 5 = 60

8 * 4 = 32
32 * 2 = 64

64 + 60 = 124

124 – 5 = 119


Pero la primera ni hay logro plasmar los pasos, bueno espero como siempre que me ayuden a descifrar el enigma que me tiene bastante ocupado.-
Por otro lado, quisiera saber si les parece muy difícil hacer un programa para emular el compilador, o sea, mostrar paso a paso la fórmula para llegar al resultado final, alguien lo hizo alguna vez.-   
   
Saludos.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Eternal Idol

3 + 4 * (8 * (4 - ( 9 + 3) /6))

Despeja la X  ;D
3 + 4 * 8 * X = 67
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

engel lex

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

http://es.wikipedia.org/wiki/Anexo:Operadores_de_C_y_C%2B%2B

con respecto a hacer la formula por partes, no, un debug la hará un solo paso

en la segunda
int b = 4 * 3 * 5 + 8 * 4 * 2 - 5


la parte asociativa agarrará los operadores de mayor prioridad primero

int b = (4 * 3 * 5) + (8 * 4 * 2) - 5

en la primera


int a = 3 + 4 *(8 * (4 - ( 9 + 3) /6))
pasa a ser algo como

int a = 3 + (4 *(8 * (4 - ( (9 + 3) /6) ) ) )
o
a= (9 + 3) /6
b= 4-a
c= 8*b
d= 4*c
e=3+d

siendo e el resultado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

amchacon

Realmente no es un problema de programación, sigue el mismo orden que las operaciones matemáticas normales.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

Cita de: amchacon en  4 Abril 2014, 12:23 PM
Realmente no es un problema de programación, sigue el mismo orden que las operaciones matemáticas normales.

..Para las cuales aquí tienes una referencia.

En cualquier caso, en la primera expresión tendrías, matemáticamente hablando, un paréntesis de más, sería más bien:


Código (cpp) [Seleccionar]
int a = 3 + 4 *8 * (4 - ( 9 + 3) /6); //67

Saludos!.

NOB2014

Hola.
Muchas gracias a los 4 me han sido de gran ayuda.

Saludos.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-