Foros del Web » Programando para Internet » Python »

Problema en cálculo?

Estas en el tema de Problema en cálculo? en el foro de Python en Foros del Web. Una ayuda, por favor. Este pequeño procedimiento según mis cálculos debería dar 10 como resultado..., pero no me da 8... ¿puede alguien ayudarme a ver ...
  #1 (permalink)  
Antiguo 30/12/2010, 13:11
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Pregunta Problema en cálculo?

Una ayuda, por favor. Este pequeño procedimiento según mis cálculos debería dar 10 como resultado..., pero no me da 8... ¿puede alguien ayudarme a ver el error?.


Código HTML:
Ver original
  1. ppc=12
  2. ppv=8
  3. cm1 = 6
  4. cm2 = 2
  5. tot5m = cm1+cm2
  6. print tot5m
  7. if tot5m < 0:
  8.    ppv = (ppv+tot5m)/2
  9. else:
  10.    ppc = (ppc+tot5m)/2
  11. print ppc
  12. print ppv

Gracias.

  #2 (permalink)  
Antiguo 30/12/2010, 13:52
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Problema en cálculo?

También ayudaría que nos dijeras que intentas hacer. El único problema que pudiera tener tu programa es que al dividir en 2 te redondea el resultado, pero este no es el caso. Ya que todos los números son pares.
  #3 (permalink)  
Antiguo 30/12/2010, 15:57
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema en cálculo?

Es un cálculo que es muy sencillo dentro de un procedimiento previo a actualizar en una base de datos..., pero el resultado que me da está mal... he probado cambiandolo como pongo más abajo


Código HTML:
Ver original
  1. if tot5m < 0:
  2.      ppvx = (ppv+tot5m)/2
  3. else:    
  4.      ppcx = (ppc+tot5m)/2
y entonces funciona bien... mi pregunta es ¿no se puede hacer un cálculo sobre un mismo campo?, es decir como lo tenía antes?.
Código HTML:
Ver original
  1. if tot5m < 0:    
  2.      ppv = (ppv+tot5m)/2
  3. else:    
  4.      ppc = (ppc+tot5m)/2
ppv y ppc ¿no pueden recibir el resultado de la operación?.
  #4 (permalink)  
Antiguo 30/12/2010, 18:39
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Problema en cálculo?

Es que este es un error de lógica, no de programación.

Mira he aquí por que "falla", para mi funciona bien por que no se que es lo que te debería dar.
Código Python:
Ver original
  1. ppc = 12
  2. ppv = 8
  3.  
  4. cm1 = 6
  5. cm2 = 2
  6.  
  7. tot5m = cm1 + cm2 #6 + 2 = 8
  8.  
  9. print tot5m #Imprime 8
  10.  
  11. if tot5m < 0: #tot5m < 0, 8 < 0, False
  12.     ppv = (ppv + tot5m) / 2 #(8 + 8) / 2, (16) / 2, 8; Por aqui no pasa
  13. else:
  14.     ppc = (ppc + tot5m) / 2 #(12 + 8) / 2, (20) / 2, 10; Por aqui si pasa
  15. print ppc #Imprime 10
  16. print ppv #Imprime 8
  #5 (permalink)  
Antiguo 31/12/2010, 03:38
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema en cálculo?

Gracias, una vez más, todavia no se porque en el primer ejemplo que pasé me daba 8 y no 10 como debe ser... Tal vez estaba cansado y no veia bien...

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:41.