Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pregunta

Estas en el tema de Pregunta en el foro de Visual Basic clásico en Foros del Web. Hola a todos! Visual Basic tiene algún problema cuando intenta elevar un numero negativo a un numero par (múltiple de dos, lo aclaro porqué soy ...
  #1 (permalink)  
Antiguo 27/01/2007, 11:48
 
Fecha de Ingreso: diciembre-2006
Mensajes: 17
Antigüedad: 17 años, 4 meses
Puntos: 0
Pregunta

Hola a todos!
Visual Basic tiene algún problema cuando intenta elevar un numero negativo a un numero par (múltiple de dos, lo aclaro porqué soy catalana y no sé si en castellano se escribe par o tiene otro nombre)? Esque con los números impares me lo hace bien i con los pares no...

Muchas gracias.

Lizer
  #2 (permalink)  
Antiguo 27/01/2007, 13:31
 
Fecha de Ingreso: noviembre-2004
Ubicación: Corrientes, Arg.
Mensajes: 129
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Pregunta

Posiblemente sea un problemita de interpretar de quien es el signo. Estos dos ejemplos los ejecuté en la ventana inmediato de VB6 (Control + G):

for n=0 to 4:print -2^n;:next n
-1 -2 -4 -8 -16

for n=0 to 4:print (-2)^n;:next n
1 -2 4 -8 16

... lo que escribí yo es el renglón de arriba en cada caso, lo de abajo es la respuesta de VB6. En el primer caso lo hace "mal" porque entiende que el signo menos es de la potencia ya efectuada: -(2^n), en el segundo caso lo hace bien porque se le aclara que el signo menos es del 2 y no de la potencia.
Saludos.
  #3 (permalink)  
Antiguo 28/01/2007, 05:04
 
Fecha de Ingreso: diciembre-2006
Mensajes: 17
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Pregunta

Hola.
Primeramente, gracias por responder.
El programa encuentra zeros de funciones con el teorema de Bolzano. declaro, por ejemplo una variable a i luego otra f(a) si la funcion a "resolver" es x^2/2 a la que llega a un valor negativo peta pero si la función es x^3/2 lo hace bien. La variable f(a)=(a^2)/2, el programa lo tendria que entender bien no? He provado que f(a)= ((a)^2)/2 pero peta igual... cuando la elevas a pares peta pero si son impares no... la verdad es que no lo entiendo...

Merci

Lizer.
  #4 (permalink)  
Antiguo 28/01/2007, 08:40
 
Fecha de Ingreso: noviembre-2004
Ubicación: Corrientes, Arg.
Mensajes: 129
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Pregunta

Hay algo que no te estoy entendiendo. Mira lo que hace el mío en la ventana inmediato:
a= -3
print a
-3
print (a^2)/2 'esto es correcto, al ser exp par se positiviza
4,5
print (a^3)/2
-13,5
print a
-3

puse en azul lo que responde VB.
Hace años, con GWBASIC, me ocurrió algo así de tener resultados distintos en comando directo y en una función definida en el programa.
Por ser domingo haré un pequeño programita definiendo la función, a ver qué pasa.
  #5 (permalink)  
Antiguo 28/01/2007, 09:46
 
Fecha de Ingreso: diciembre-2006
Mensajes: 17
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Pregunta

Hola!
Te agradezco mucho tu ayuda, ya me has contestado a la pregunta, debería entenderlo bien. En fin, me pondré a mirar qué debe ser aunque lo ilógico es que lo haga bien con algunas expresiones y con otras no...
Gracias de nuevo.
Lizer
  #6 (permalink)  
Antiguo 28/01/2007, 09:52
 
Fecha de Ingreso: diciembre-2006
Mensajes: 17
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Pregunta

Ai que tonta me siento a veces...
Ya sé lo que le pasa! la función es, por ejemplo, x^2/2: dados dos puntos a i b de distinto signo, calculamos f(a) i f(b), el programa peta porque los dos resultados son positivos y, por tanto, no habrà un punto medio en el qual la f(x)=0! El teorema no se cumple! Bueno ahora sólo queda prevenir ese error y eso lo sabré hacer!
A veces lo más evidente no lo parece...
gracias de todas formas!
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 09:55.