Comando Valor
Valor
Categorías de Comandos (todos)
- Valor[ <Booleano>, <0|1> ]
- Fija el estado de una booleana / casilla de control, con un 1 = cierto y con 0 = falso, operando del mismo modo que...
Valor[ <Booleano>, <false|true> ]. - Nota: En lugar de Valor[b, true] puede anotarse Valor[b, 1] dado que 1 reemplaza a la condición verdadera y 0, a la falsa.
- Ejemplo: Siendo b una booleana,
Valor[b, 1]
la establece verdadera.
- Valor[ <Objeto>, <Objeto> ]
- Establece para el primer objeto, el valor del segundo.
- Nota:
Si el primero es un objeto libre, su valor queda establecido por el del segundo. - Ejemplos:
Así, dados ...
s un segmento, un Punto[s] A en (-3, 3) y È uno libreValor[È , A ]
llevará a È a (-3, 3)
Si el primero fuera un punto restringido a cierto recorrido o región, procurará tomar el valor del segundo dentro del ámbito al que está limitado.
Así, siendo...
A un Punto[s] en (-3, 3) y Ú un Punto[EjeX] en (0, 0),Valor[Ú , A ]]
, lleva a Ú a (-3, 0)Lo más acorde a A que le es posible
Alerta: | El valor asignado al primer objeto no cambia frente a las modificaciones posteriores del segundo dado que el vínculo no es dinámico. |
- Valor[ <Lista>, <Número>, <Objeto> ]
- Crea, a partir de la Lista dada, una en la que la posición indicada por el Número la ocupe un elemento de valor acorde al del Objeto señalado.
Alerta: | La Lista debe ser libre y el valor del Número no debe superar al de su longitud + 1 dado que apunta a añadir un enésimo elemento que, como máximo, será el siguiente al último) |
- Ejemplos:
Siendo l_v = {},Valor[l_1, 1, Elemento[{"a", "e", "i", "o", "u"}, 1] ]
ingresa la a a l_v que deviene {"a"}.
Luego,Valor[l_1, 2, Elemento[{"a", "e", "i", "o", "u"}, 2] ]
añade la e y l_v pasa a ser {"a", "e"} ... y así sucesivamente.
Dada labcde = (),Valor[ labcde , 1, Secuencia[LetraDeCódigo[96 + r], r, 1, 5]]
lleva a labcde = {{"a", "b", "c", "d", "e"}}
Valor en los Guiones - scripting
Para cambiar el valor de un objeto en guiones (scripts), debe emplearse este comando en lugar del signo =.
- Ejemplo:
Siendo f1 una función previamente definida como tal y un punto A al que se le adjudica animación y rastro para obtener efectos diversos(acaso Punto[ElementoAleatorio[{f1}] ]), puede destinarse un botón con el siguiente guion para definir a f1 como a una de las funciones de la lista.
f1(x) = 1
f1 = Valor[f1, ElementoAleatorio[{Función[Pendiente[Segmento[U, V]] x, x(V), x(U)], sin(x), abs(x), cos(x), ln(abs(x))} ]]Atención:
Siendo ñ libre y á dependiente o no, son equivalentes...
- ñ = 4 a Valor[ñ, 4]
- ñ = ñ + 1 a Valor[ñ, ñ + 1]
- ñ = ñ + á a Valor[ñ, ñ + á]
- ... manteniendo ñ su condición de independiente, dado que solo cambia de valor. En cambio.
- ñ = á desencadena una redefinición mientras...
- ñ = CopiaObjetoLibre[á] no la provoca dado que opera de modo análogo a Valor en este caso.
- Nota:
Ver el tutorial Animándose a Valorar Funciones
Ver este comentario de un foro (detallado a continuación) para mayores explicaciones sobre el empleo de este comando en Programa (guion-scripting) - Atención:
Para analizar un ejemplo clarificador, puede considerarse dos objetos, á libre y j que también lo sea o que fuera dependiente, para notar que ingresará=4
, :á=á + 1
,á=á + j
es equivalente a :Valor[á, 4]
,Valor[á, á + 1]
yValor[á, á + j]
(siendo á aún libre habiéndose modificado exclusivamente su valor).
En cambio,á = j
ocasiona una redefinición. Mientras que:á = CopiaObjetoLibre[j]
operaría, nuevamente, como Valor.
La redefinición es un proceso lento, máxime si hay numeroso objetos en juego, dependientes de á en este caso. Esto provocaría serios inconvenientes en guiones que podrían operar Al Actualizar por lo que, en caso de dudas, es recomendable optar por Valor[].
Valor y Objetos Libres
Dada li1 = {A, B, C}, una lista dependiente de puntos a la que se quiere incorporar uno adicional, D, no tendrá efecto alguno el comando Valor dado que solo opera sobre objetos libres.
- Ejemplo:
Un guion adecuado para esta maniobra, debe en primer lugar, crear, con CopiaObjetoLibre, una lista alternativa libre, li2 para que su cuarto elemento, con Valor pase a ser D. Así:
- li2= CopiaObjetoLibre[li1]
- Valor[li2 , 4, D]
- li2= CopiaObjetoLibre[li1]
Comandos Si y Valor en los Guiones
En la mayor parte de los lenguajes de programación, Si significa si la condición es verdadera hacer esto y sino, aquello. Pero en GeoGebra los argumentos de Si no son comandos sino valores a adoptar frente a uno u otro resultado lógico.
En consecuencia, si se desea que b tome el valor 2 si la condición a > 2 es verdadera, el método correcto para lograrlo sería Valor[b,Si[a>2,2,b]]
. Toda otra maniobra para implicar a los comandos Si y Valor sería incorrecta.