|
Página 1 de 1
|
Corto-circuito, VerdaderoFalso, Interpretes
Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Corto-circuito, VerdaderoFalso, Interpretes
Hola!.
Estuve viendo una cosa con el interprete de Python y luego hice el mismo programa en Gambas.
En este ejemplo se usa los operadores and y or.
Recordemos que And para que sea verdadero sus dos operadores deben ser verdaderos.
Y en el caso de Or , solo en el caso de que sea Falso sus dos operadores, el resultado sera Falso.
El resto es verdadero.
De acuerdo.
Suponer que tenemos dos expresiones que tenemos que evaluar y dependiendo del resultado hará una cosa u otra.
A - Falso OR Verdadero
B - Verdadero OR Verdadero
C - Verdadero AND Verdadero
D - Falso AND Verdadero
¿ Que ocurre en los distintos casos ?.
A: Se necesita saber si la ultima expresión es verdadera
B: Sabemos que sera verdadera. ¿ Necesitamos terminar de evaluar la segunda expresión ?. No. Sabemos que es verdadera con la primera.
C: Volvemos a necesitar en el caso de un And las dos expresiones.
D: En este caso como el primer operador o (expresión completa) es falso, sabremos siempre que lo que venga detrás dará igual, el primer operador ya
ha determinado el resultado.
Bien. En el interprete Python no se preocupa de evaluar la expresión siguiente si al evaluar la primera ya le esta diciendo el resultado de la expresión en total.
No va a variar.
¿ Que ocurre ?. Que si sabe el resultado al comienzo, no se se ejecuta lo que haya detrás, (una llamada a una función por ejemplo dentro
de la expresión a evaluar, que nunca sera llamada).
En el caso de gambas no es así. Necesita evaluar toda la expresión completa.
Ejemplo en gambas y su salida:
Citar:
gatos
perros
Paso 1
hola
adios
Paso 2
Spam
queso
Paso 3
rojo
azul
Ejemplo en Python y su salida:
# Ejemplo de Corto-circuito
# VerdaderoFalso
def VerdaderoFizz(mensaje):
print (mensaje)
return True
def FalsoFizz(mensaje):
print (mensaje)
return False
if FalsoFizz('Gatos') or VerdaderoFizz('Perros'):
print ('Paso 1')
if VerdaderoFizz('Hola') or VerdaderoFizz('Adios'):
print ('Paso 2')
if VerdaderoFizz('Spam') and VerdaderoFizz('Queso'):
print ('Paso 3')
if FalsoFizz('Rojo') and VerdaderoFizz('Azul'):
print ('Paso 4')
Citar:
Gatos
Perros
Paso 1
Hola
Paso 2
Spam
Queso
Paso 3
Rojo
Una vez un compañero de nuestra comunidad me dijo que para comprender un lenguaje además de conocer sus virtudes,
debía conocer también sus defectos o carencias.
Lo cierto es que cuesta asimilar cosas nuevas.Luego esto se traduce en mucho tiempo para entenderlo y asimilarlo para llevarlo a cabo.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#1 Domingo, 14 Julio 2013, 10:07 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Corto-circuito, VerdaderoFalso, Interpretes
En el caso de gambas no es así. Necesita evaluar toda la expresión completa.
...
Una vez un compañero de nuestra comunidad me dijo que para comprender un lenguaje además de conocer sus virtudes,
debía conocer también sus defectos o carencias.
Bien, en este caso el problema es que no has encontrado la sintaxis correcta para los cortocircuitos, porque sí que existe en gambas.
Cambia el bloque de condiciones por esto:
La sintaxis para los cortocircuitos es "And If", "Or If", etc. ¡Comprueba los resultados!
Y aquí la documentación:
http://gambasdoc.org/help/lang/if?es&v3
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#2 Domingo, 14 Julio 2013, 10:56 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Corto-circuito, VerdaderoFalso, Interpretes
Jesús:
Gracias, es idéntico!.
Cuando pasas de un lenguaje a otro, quieres hacerlo idéntico al otro, no siempre se puede.
Hay que buscar una alternativa, aunque no sea la misma sintaxis.Hay cosas que se complica bastante
para convertirlas de uno al otro. Y es mejor pensarlo dos veces.
Con la opción de código:
¿ Que debo hacer la próxima vez que quiera mostrar en el mensaje un código en Python para que podamos verlo lo mejor posible en la comunidad ?.
¿ Cual es la mejor ?. Bash,C, gambas,Xml..
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#3 Domingo, 14 Julio 2013, 11:44 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Corto-circuito, VerdaderoFalso, Interpretes
Con la opción de código:
¿ Que debo hacer la próxima vez que quiera mostrar en el mensaje un código en Python para que podamos verlo lo mejor posible en la comunidad ?.
¿ Cual es la mejor ?. Bash,C, gambas,Xml..
Saludos
Para que el código de cualquier lenguaje salga coloreado con la sintaxis correcta, sólo hay que cambiar " gambas" por el nombre del lenguaje apropiado en minúsculas:
[code linenumbers=false syntax=gambas]
[code linenumbers=false syntax=python], etc
Algún día haré que se pueda escoger desde un desplegable... pero me tienen que entrar ganas, jaja!
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#4 Domingo, 14 Julio 2013, 11:54 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Corto-circuito, VerdaderoFalso, Interpretes
Algún día haré que se pueda escoger desde un desplegable... pero me tienen que entrar ganas, jaja!
No tenia ni idea que se pudiera hacer con cualquier lenguaje.
Lo cierto es que no me dio nunca en gambas por usar un if detrás de otro , siempre estuve usando el IF, ELSE-IF,ELSE pero un IF detrás de otro,
no lo había visto, es que hasta parece rara la expresión. Siempre se aprende algo nuevo.
Es muy probable que este post le valga a los compañeros, pero tiene un titulo raro. Entonces su nombres es corto-circuito, que nombres, como para
saber lo que es a la primera.
Gracias por la doble información.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#5 Domingo, 14 Julio 2013, 13:30 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
Re: Corto-circuito, VerdaderoFalso, Interpretes
Shell:
La verdad es que estamos un poco "viciados" con el antiguo BASIC, pero gambas tiene muchas más opciones y ordenes.
A mi me gusta visitar de vez en cuando esta página de la documentación: http://www.gambasdoc.org/help/lang?v3, siempre descubro cosas nuevas.
Saludos
Julio
Nota:
Hoy he descubierto esta orden Inline Arrays , y es muy parecido a las listas de python
¿guay ehhhh?
última edición por jsbsan el Domingo, 14 Julio 2013, 20:33; editado 1 vez
|
#6 Domingo, 14 Julio 2013, 20:25 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Corto-circuito, VerdaderoFalso, Interpretes
Hoy he descubierto esta orden Inline Arrays , y es muy parecido a las listas de python
Eso es el array "normal" que ya todos conocemos. Tenemos los Native Arrays que siguen siendo lo mismo, pero con el tipo de dato predefinido para sus elementos. En realidad lo único que varía es la forma de llenarlos de datos, porque sigue siendo necesario declararlos como un tipo de array nativo. Es cierto que es lo más parecido a las listas de python, así podremos sacar más partido a ciertas formas de programar más "pythónicas".
El otro tipo de array es el Estático o embebido, donde se declaran las dimensiones en el identificador, y es bastante diferente al nativo por varios motivos. Ver al final de la página de documentación:
http://www.gambasdoc.org/help/cat/arraydecl?es&v3
Bueno, que la cosa se desvía del tema inicial, saludos!
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#7 Domingo, 14 Julio 2013, 22:07 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Corto-circuito, VerdaderoFalso, Interpretes
Julio y Jesús:
Lo cierto es que recuerda mucho a las listas de Python.
Hay algo que comentare en otro post para no salirme de temática.
Diccionarios.
Voy a buscar antes y luego escribo el post.
Olvidaba. ¿ Son distintos los índices en ingles y español en la documentación online de gambas ?.
(¿ Esta mas al día ?. Quiero decir)
http://www.gambasdoc.org/help/lang?es&v3
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Lunes, 15 Julio 2013, 08:42; editado 1 vez
|
#8 Domingo, 14 Julio 2013, 23:48 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|