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.
- Ejemplo: Siendo b una booleana,
Valor[b, 1]
la establece verdadera.
- Valor[ <Objeto>, <Objeto> ]
- Establece para el primer objeto, el valor del segundo.
- Nota:
El primero objeto debe ser un objeto libre, o un punto en una región o camino.
El valor del primer objeto no cambia si el segundo objeto se modifica posteriormente. - Ejemplos: Si f es una función,
Valor[f, Aleatorio[{cos(x),3x+2,ln(x)}]]
define, en forma aleatoria, a f como una de las funciones de la lista dada.
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) |
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[ <Lista desplegable>, <Número> ]
- Define como posición seleccionada el número dado en la lista desplegable.
Valor en los Guiones - scripting
Para cambiar el valor de un objeto en guiones (scripts), debe emplearse este comando en lugar del signo =.
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))} ]]
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.
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)
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]
y Valor[á, á + 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.
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.