Comando Si

De GeoGebra Manual
Revisión del 20:04 8 oct 2017 de Zbynek (discusión | contribs.) (Texto reemplazado: «;([a-zA-Z0-9]*)\[(.*)\]» por «;$1($2)»)
Saltar a: navegación, buscar


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 -.
Bulbgraph.pngAtenció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 ≥ 3
  • f(x) = Si[x < 3, sen(x), x^2] o f(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 a g(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 ≥ x
  • g(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 contrario
  • f(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 ≥ x
  • h(x) = Si[-1 < x < 0, x³ + 1, 0 < x < 2, 1 - x, x² - 5] o (-1<x<0)(x^3+1)+(0<x<2)(1-x)+!(-1<x<2)(x^2-5) establece la función x² - 5, salvo entre -1 y 0, donde resulta x^{3} +1 y entre 0 y 2, donde es 1-x

    La primera sintaxis muestra, en la Vista Algebraica, la expresión h(x) = \left\{\begin{matrix} x^{3} + 1 \space\space\space\space:\space\space -1 < x < 0\\ 1 - x\space : \space\space 0 < x < 2\\ x^{2} - 5\space\space : \space\space\text{si no} \end{matrix}\right.
  • u(x) = Si[x < 2, x², x < 5, x, x < 6, (-x) / 7] corresponde, en la Vista Algebraica, a h(x) = \left\{\begin{matrix} x² \space\space\space\space:\space\space x < 2\\x\space\space\space\space : \space\space x < 5\\ - \frac{x}{7}\space\space : \space\space x < 6 \end{matrix}\right.
Nota:
Ver la sección destinada a valores lógicos o booleanos para identificar los símbolos a emplear en las proposiciones condicionales.


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]]
Bulbgraph.pngAtenció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 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

Nota: Así, desde la versión 4.2:
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:


Menu view cas.png 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:
  • Si2.PNG
  • Si1.PNG

© 2021 International GeoGebra Institute