Diferencia entre revisiones de «Comando Si»
De GeoGebra Manual
Línea 14: | Línea 14: | ||
{{Examples|1=<div> | {{Examples|1=<div> | ||
*'''<code>f(x) = Si[x < 3, cos(x), x^2]</code>''' establece la [[Funciones|función]] por tramos ''cos(x)'' para ''x < 3'' y ''x<sup>2</sup>'' para ''x ≥ 3'' | *'''<code>f(x) = Si[x < 3, cos(x), x^2]</code>''' establece la [[Funciones|función]] por tramos ''cos(x)'' para ''x < 3'' y ''x<sup>2</sup>'' para ''x ≥ 3'' | ||
− | *'''<code>f(x) = Si[x < 3, sen(x), x^2]</code>''' o '''<code>f(x) = (x < 3) sen(x) +(x>=3) x^2 </code>''' establece la [[Funciones|función]] por tramos tal que será ''sen(x)'' para ''x < 3'' y ''x<sup>2</sup>'' para ''x ≥ 3'' | + | *'''<code>f(x) = Si[x < 3, sen(x), x^2]</code>''' o '''<code>f(x) = (x < 3) sen(x) +(x>=3) x^2 </code>''' establece la [[Funciones|función]] por tramos tal que será ''sen(x)'' para ''x < 3'' y ''x<sup>2</sup>'' para ''x ≥ 3''<br><br>La primera sintaxis desencadena, en la [[Vista Algebraica]] la siguiente expresión:<br><math>f(x) = \left\{\begin{matrix} sen( x ) \space\space : \space x < 3\\ x^{2}\space\space\space\space\space\space\space\space\space\space : \space \text{si no} \end{matrix}\right. </math><br><br> |
*'''<code>g(x) = Si[0 < x ∧ x<3, x^3]</code>''' equivale a '''<code>g(x)= x^3 ((0<x)&& (x<3)) </code>''' establece la [[Funciones|función]] por tramos tal que será ''x<sup>3</sup>'' para x entre 0 y 3 y quedará indefinida para ''x ≤ 0'' o ''x ≥ 3''.*'''<code>f(x) = Si[x < 3 ∧ x>0, cos(x)]</code>''' establece la función ''cos(x)'' para x entre 0 y 3 y queda indefinida para ''x ≥ 3'' o ''0 ≥ x'' | *'''<code>g(x) = Si[0 < x ∧ x<3, x^3]</code>''' equivale a '''<code>g(x)= x^3 ((0<x)&& (x<3)) </code>''' establece la [[Funciones|función]] por tramos tal que será ''x<sup>3</sup>'' para x entre 0 y 3 y quedará indefinida para ''x ≤ 0'' o ''x ≥ 3''.*'''<code>f(x) = Si[x < 3 ∧ x>0, cos(x)]</code>''' establece la función ''cos(x)'' para x entre 0 y 3 y queda indefinida para ''x ≥ 3'' o ''0 ≥ x'' | ||
*<code>g(x) = Si[-1 < x < 0, x³ + 1, 0 < x < 2, 1 - x, x² - 5]</code> | *<code>g(x) = Si[-1 < x < 0, x³ + 1, 0 < x < 2, 1 - x, x² - 5]</code> |
Revisión del 12:34 19 feb 2015
Si
Categorías de Comandos (todos)
- Si[ <Condición>, <ObjetoEntonces> ]
- Si la condición resulta verdadera (true), entonces se crea un nuevo objeto, según especificación o acorde al valor indicado y uno indefinido si se la evalúa falsa (false).
Ejemplos:
Si[round(10random()) < 4, 5]
crea un número dependiente, de valor 5 si el resultado de la condición aleatoria se cumple e indefinido si fuera falsa.tri := Si[Distancia[(round(10random()), round(10random())), EjeX] > 4, Polígono[(round(10random()), 3), (0, 2), 3]]
crea un polígono triangular cuando la condición resulta verdadera, quedando indefinido si fuera falsa.- tra :=
Si[Distancia[(3, round(10random())), EjeX] > 4, Traslada[tri, Vector[(0, 0), (0, 1)]]]
crea un polígono como copia trasladada de uno anterior, tri, si la condición es verdadera. Lo deja indefinido en caso contrario.
- Si[ <Condición>, <ObjetoEntonces>, <ObjetoSi no> ]
- Siendo la condición verdadera (true), entonces crea el objeto especificado y el señalado en segundo lugar si no lo fuera -false -.
Atención: Sendos objetos deben ser del mismo tipo. Otro tanto, de indicarse valores.
Ejemplos:
tritras := Si[Distancia[(3, round(10random())), EjeX] > 4, tri, Homotecia[tri, 0.2]]
crea un polígono copiado de uno anterior, tri, si la condición es verdadera y su reducción por factor de escala 0.2 en caso contrario.Si[round(10random()) < 4, 5, 2]
crea un número, dependiente, de valor 5 si el resultado de la condición aleatoria se cumple e igual a 2, si fuera falsa.
Funciones Condicionadas por Tramos
El comando Si y/o los booleanos en general, permiten crear funciones condicionadas por tramos, susceptibles de operar como argumentos de comandos como Derivada, Integral y hasta para, por ejemplo, Interseca.
El ámbito más usual para el empleo de este comando es la Vista Algebraica, como evidencian la mayor parte de los siguientes ejemplos.
Ejemplos:
f(x) = Si[x < 3, cos(x), x^2]
establece la función por tramos cos(x) para x < 3 y x2 para x ≥ 3f(x) = Si[x < 3, sen(x), x^2]
of(x) = (x < 3) sen(x) +(x>=3) x^2
establece la función por tramos tal que será sen(x) para x < 3 y x2 para x ≥ 3
La primera sintaxis desencadena, en la Vista Algebraica la siguiente expresión:
f(x) = \left\{\begin{matrix} sen( x ) \space\space : \space x < 3\\ x^{2}\space\space\space\space\space\space\space\space\space\space : \space \text{si no} \end{matrix}\right.g(x) = Si[0 < x ∧ x<3, x^3]
equivale ag(x)= x^3 ((0<x)&& (x<3))
establece la función por tramos tal que será x3 para x entre 0 y 3 y quedará indefinida para x ≤ 0 o x ≥ 3.*f(x) = Si[x < 3 ∧ x>0, cos(x)]
establece la función cos(x) para x entre 0 y 3 y queda indefinida para x ≥ 3 o 0 ≥ xg(x) = Si[-1 < x < 0, x³ + 1, 0 < x < 2, 1 - x, x² - 5]
f(x) = Si[0 <= x <= 3, sen(x) ]
establece la función que es igual a sen(x) para x entre 0 y 3 y queda indefinida en caso contrariof(x) = Si[x < 3 ∧ x>0, cos(x), x^3]
establece la función cos(x) para x entre 0 y 3 y x3 para x ≥ 3 o 0 ≥ xf(x) = Si[-1 < x < 0, x³ + 1, 0 < x < 2, 1 - x, x² - 5]
Nota:
Ver la sección destinada a valores lógicos o booleanos para identificar los símbolos a emplear en las proposiciones condicionales.
Ver la sección destinada a valores lógicos o booleanos para identificar los símbolos a emplear en las proposiciones condicionales.
La derivada de Si[condición, f(x), g(x)] - como Derivada[Si[x < 3, cos(x), x^2]] - da resultado equivalente a Si[condición, f'(x), g'(x)] -como Si[x < 3, Derivada[cos(x)], Derivada[x^2]] -. No hace evaluación alguna de límites en los puntos críticos. |
Si en Guiones - Scripts
En muchos lenguajes de programación, el Si desencadena acciones:
- Si se cumple determinada condición, se hace cierta cosa y en caso contrario, sa hace otra o no se hace nada.
El Si de GeoGebra opera de otro modo, similar al Si de las hojas o planillas de cálculo:
- Si le asigna a un objeto valores acorde al resultado de determinada condición. Si se cumple, adquiere el valor indicado o el del modelo propuesto. En caso contrario, el de la alternativa planteada. Si no se hubiera previsto la alternativa, conserva el valor que tuviera, de existir previamente, o queda indefinido.
Ejemplo:
De querer asignarle el valor 3 a b cuando a > 2, el modo correcto de formularlo es:
Valor[b, Si[a > 2, 3, b]]
Atención:
Siendo a su vez correcta la sintaxis
b= Si[a > 2, 3, b]
, no lo es la que anida condiciones y los comandos Valor y Si. Nota:
Los argumentos de este comando deben ser Objetos o Comandos de Guiones, no asignaciones.
Así, la sintaxis
Así, la sintaxis
b = Si[a > 1, 2, 3]
es correcta, pero b = 2 o b = 3 no serían aceptables como parámetros.Alternativas de Asignación
Desde GG 4.2, Si... admite una modalidad adicional, más ágil para asignar valor a un objeto, máxime dentro de un script o guion. |
Nota: Así, desde la versión 4.2:
... colorea al existente punto A acorde a la condición, mientras que en versiones previas, no había cambio ni efecto de acción alguno sobre A sino sobre un nuevo punto, copia de A en todo, excepto en el valor de su color compuesto por la asignación de valor condicionada.
Si[ Resto[n, 2] == 0, ColorDinámico[A, 10,20,255], ColorDinámico[A, 255,20,10]]
...... colorea al existente punto A acorde a la condición, mientras que en versiones previas, no había cambio ni efecto de acción alguno sobre A sino sobre un nuevo punto, copia de A en todo, excepto en el valor de su color compuesto por la asignación de valor condicionada.
Ejemplos:
Si[ Resto[n, 2]== 0, Coordenadas[A, n, 0], Coordenadas[A, n, 1]]
cambia las coordenadas de A, sin necesidad de mediar a través del comando Ejecuta- Empleo del comando Ejecuta requerido hasta esta versión, a través de una sintaxis en la que, además, incluso se precisa que los nombres de los comandos se anoten en inglés (y por eso aparecerá SetCoords en lugar de Coordenadas):
Ejecuta[Si[ Resto[n, 2]== 0, {"SetCoords[A, n, 0]"}, {"SetCoords[A, n, 1]"}] ]
Concuerda con la asignación estática:A = Si[ Resto[n, 2]==0, (n, 0), (n, 1) ]
y complementa la dinámica y directa pero acaso menos acorde a expectativas y costumbres como:Coordenadas[A, n, Resto[n, 2]]
En la Vista ComputaciónAlgebraicaSimbólica
En esta vista, el comando obra de modo análogo al descripto, admitiendo literales para operar simbólicamente.
Ejemplo:
Simplifica[Derivada[k x^(Si[round(10 random()) < 7,3 ñ, 2 ó])]]
ofrece expresiones acorde a el aleatorio resultado señalado para el exponente que, además, incluye literales. Como las siguientes:Ver también el video tutorial que, en italiano, ilustra el empleo del comando exclusivamente para determinar el dominio de una función o definirlas por tramos. |