Comando Si

De GeoGebra Manual
Revisión del 13:52 4 abr 2019 de Lsdelrio (discusión | contribs.) (Ajustando a la versión en inglés)
Saltar a: navegación, buscar



Si( <Condición>, <Entonces> )
Da por resultado una copia del objeto Entonces si la "Condición" se verifica, y un objeto indefinido, si la condición no se verifica.
Ejemplos:
  • Sea n = 3. Si(n==3, x + y = 4) da por resultado la recta x + y = 4, ya que la condición sobre el número n se verifica.
  • Sea n = 4. Si(n==3, x + y = 4) crea un objeto indefinido, porque la condición sobre el número n no se verifica .
Si( <Condición>, <Entonces>, <Si no> )
Da por resultado una copia del objeto Entonces si la "Condición" se verifica, y una copia del objeto Si no si la condición no se verifica. Ambos objetos deben ser del mismo tipo.
Ejemplo: Sea n un número. Si(n==3, x + y = 4, x - y = 4) da por resultado la recta x + y = 4 cuando n = 3, y la recta x - y = 4 para todo n distinto de 3.
Si( <Condición 1>, <Entonces 1>, <Condición 2>, <Entonces 2>, ... , <Si no (opcional)> )
Da por resultado una copia del objeto Entonces 1 si la "Condición 1" se verifica, "Entonces 2" si la segunda condición se verifica, etc. Si ninguna de las condiciones se verifica, entonces da por resultado el objeto indicado en "Si no". Si este último parámetro no se completa, el comando devuelve un objeto indefinido.
Ejemplo: If(a ≟ 1, "Matthew", a ≟ 2,"Larry", a ≟ 3, "Vivian", "Alex") When a=1 this returns the text "Matthew", for a=2' it returns "Larry", for a=3 "Vivian" and for all other values of a it yields "Alex".

Conditional Functions

The If command can be used to create conditional functions. Such conditional functions may be used as arguments in any command that takes a function argument, such as Derivative, Integral, and Intersect.
Ejemplos:
  • f(x) = If(x < 3, sin(x), x^2) yields a piecewise function that equals sin(x) for x < 3 and x2 for x ≥ 3.
  • f(x) = If(0 <= x <= 3, sin(x)) yields a function that equals sin(x) for x between 0 and 3 (and undefined otherwise).
Nota: A shorter syntax for this is f(x) = sin(x), 0 <= x <= 3
  • f(x) =If(x<-1,x²,-1<=x<=1,1,-x²+2) yields the piecewise function f(x) = \left\{\begin{matrix}{} x^{2}& : &x < -1\\ 1& :& -1 ≤ x ≤ 1\\ -x^{2} + 2& : &\text{otherwise} \end{matrix}\right .


Notas:
  • Derivative of If(condition, f(x), g(x)) gives If(condition, f'(x), g'(x)). It does not do any evaluation of limits at the critical points.
  • See section: Boolean values for the symbols used in conditional statements.

If Command in Scripting

If command can be used in scripts to perform different actions under certain conditions.
Ejemplo: Let n be a number, and A a point. The command If(Mod(n, 7) == 0, SetCoords(A, n, 0), SetCoords(A, n, 1)) modifies the coordinates of point A according to the given condition. In this case it would be easier to use SetCoords(A, n, If(Mod(n, 7) == 0,0,1)).
Nota: Arguments of If must be Objects or Scripting Commands, not assignments. Syntax b = If(a > 1, 2, 3) is correct, but b = 2 or b = 3 would not be accepted as parameters of If.



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

© 2024 International GeoGebra Institute