Bloques de operaciones#
Los bloques de esta categoría describen transformaciones de información. Cada operación toma una determinada cantidad de operandos de ciertos tipos y generan nueva información a partir de ellos. Así como los bloques de valores, los bloques de operaciones también tienen tipo.
Comparación#
Este bloque describe la comparación entre dos expresiones. Utilizando el menú desplegable en el centro del bloque se puede seleccionar la operación deseada. En el caso de la igualdad (=) y la desigualdad (≠) los operandos pueden ser de cualquier tipo pero deben ser del mismo (no se puede comparar un número con un texto). Para las demás operaciones, los operandos deben ser números. El resultado es un valor binario.
Conjunción y Disyunción#
Este bloque describe la conjunción o la disyunción de dos expresiones lógicas. Utilizando el menú desplegable en el centro del bloque se puede seleccionar la operación deseada. Los operandos deben ser valores binarios. El resultado también es un valor binario. En el caso de la conjunción (y) el resultado es verdadero si ambos operandos son verdaderos. En el caso de la disyunción (o) el resultado es verdadero si alguno de los operandos es verdaderos (o ambos lo son).
Negación Lógica#
Este bloque describe la negación lógica de una expresión. El operando debe ser un valor binario. El resultado también es un valor binario. Si el operando es verdadero el resultado será falso. Si el operando es falso el resultado será verdadero.
Operación Aritmética Binaria#
Este bloque describe una de las principales operaciones aritméticas binarias. Utilizando el menú desplegable en el centro del bloque se puede seleccionar la operación deseada. En todos los casos los operandos son números y el resultado de la operación también es un número. Si ambos operandos son números enteros, el resultado también será un número entero pero si alguno de ellos es una fracción, el resultado será una fracción.
Operación Aritmética Unaria Simple#
Este bloque describe una de las principales operaciones aritméticas unarias. Utilizando el menú desplegable en el centro del bloque se puede seleccionar la operación deseada. El operando debe ser un número. El tipo del resultado será el mismo que el del operando. Si el operando es entero, el resultado será entero. Si el operando es una fracción, el resultado será una fracción.
El signo de menos (-) describe la versión negativa del operando. Si este ya es un número negativo, el resultado será su contraparte positiva. Esta operación es equivalente a multiplicar el operando por -1.
El valor absoluto de siempre describe la versión positiva del operando. Si el operando es positivo describe al mismo número. Si el operando es negativo describe a su contraparte positiva.
Operación Aritmética Unaria Compleja#
Este bloque describe una operación aritmética unaria compleja. Utilizando el menú desplegable en el centro del bloque se puede seleccionar la operación deseada. El operando debe ser un número. El resultado es una fracción.
Operación Trigonométrica#
Este bloque describe una operación trigonométrica. Utilizando el menú desplegable en el centro del bloque se puede seleccionar la operación deseada. El operando debe ser un número. El resultado es una fracción.
Propiedad Matemática#
Este bloque describe una propiedad sobre un número. Utilizando el menú desplegable en el centro del bloque se puede seleccionar la operación deseada. El operando debe ser un número. El resultado es un valor binario. En el caso de es divisible por toma un segundo operando, también numérico.
Redondeo#
Este bloque describe el número entero resultante de redondear a la fracción operando. Si el operando es un número entero, describe al mismo número. Por defecto (redondear) redondéa al número entero más cercano. Utilizando el menú desplegable en el centro del bloque se puede cambiar para redondear hacia arriba o hacia abajo.
Resto#
Este bloque describe el resto de realizar una operación de división entera. Ambos operandos deben ser números enteros. El resultado es un número entero.
Vacuidad de un Texto#
Este bloque indica si el operando es un texto vacío (es decir, si no tiene ningún caracter). El operando debe ser un texto. El resultado es un valor binario.
Longitud de un Texto#
Este bloque describe la cantidad de caracteres de un texto. No cuenta sólo letras sino también números y espacios. La longitud del texto “Es 42 !” es siete ya que tiene dos letras, dos números, dos espacios y un signo de exclamación. El operando debe ser un texto. El resultado es un número entero.
Unión de Textos#
Este bloque describe el texto resultante de unir dos (o más) textos. Los operandos pueden ser de cualquier tipo, ya que se convierten a textos al ser ingresados como operandos del bloque. El resultado es un texto. Utilizando el engranaje se puede cambiar la cantidad de operandos. Tener en cuenta que si se quieren unir palabras para formar frases, se deben intercalar espacios entre ellas. Por ejemplo, el resultado de unir los textos “Hola” y “Mundo” no es “Hola Mundo” sino “HolaMundo”.
Vacuidad de una Lista#
Este bloque indica si el operando es una lista vacía (es decir, si no tiene ningún elemento). El operando debe ser una lista. El resultado es un valor binario.
Longitud de una Lista#
Este bloque describe la cantidad de elementos en una lista. El operando debe ser una lista. El resultado es un número entero.
Acceso a una Lista#
Este bloque describe uno de los elementos de una lista. El operando debe ser una lista. El resultado es del tipo de los elementos de la lista operando. Si el operando es una lista de números, el resultado será de tipo número. Utilizando el menú desplegable se puede seleccionar cuál es el elemento que se desea obtener, en base a su posición dentro de la lista. Cuando la opción seleccionada es el elemento en la posición o el elemento en la posición (desde el final) se debe proveer otro operando de tipo entero para describir la posición.
Inserción en una Lista#
Este bloque permite insertar un elemento en una lista. El operando correspondiente a la lista debe ser de tipo lista. El operando correspondiente al elemento debe ser del tipo de los elementos de la lista. Utilizando el menú desplegable se puede seleccionar en qué posición dentro de la lista se desea insertar el elemento. Cuando la opción seleccionada es en la posición o en la posición (desde el final) se debe proveer otro operando de tipo entero para describir la posición. En modo comando modifica la lista operando insertando el elemento en ella. En modo expresión describe una nueva lista (la resultante de insertar el elemento en la lista operando) pero sin modificar la lista operando. El modo se puede cambiar desde el menú avanzado del bloque que se abre al hacer clic en la flecha blanca en el extremo izquierdo del bloque.
Remoción de una Lista#
Este bloque permite quitar un elemento de una lista. El operando debe ser de tipo lista. Utilizando el menú desplegable se puede seleccionar cuál es el elemento que se desea quitar, en base a su posición dentro de la lista. Cuando la opción seleccionada es el elemento en la posición o el elemento en la posición (desde el final) se debe proveer otro operando de tipo entero para describir la posición. En modo comando modifica la lista operando quitando el elemento de ella. En modo expresión describe una nueva lista (la resultante de quitar el elemento de la lista operando) pero sin modificar la lista operando. El modo se puede cambiar desde el menú avanzado del bloque que se abre al hacer clic en la flecha blanca en el extremo izquierdo del bloque.
Indexado en una Lista#
Este bloque permite indexar un elemento dentro de una lista. El operando correspondiente a la lista debe ser de tipo lista. El operando correspondiente al elemento debe ser del tipo de los elementos de la lista. El resultado es un número. Utilizando el menú desplegable se puede seleccionar el tipo de indexado a realizar.
La primera aparición y la última aparición describen las posiciones (la primera y la última respectivamente) dentro de la lista en las que se encuentra un determinado elemento. Si el elemento no se encuentra, el resultado es igual a 0.
La cantidad de apariciones describe la cantidad de veces que dicho elemento se encuentra en la lista.
Reemplazo en una Lista#
Este bloque permite reemplazar un elemento de una lista por otro. El operando correspondiente a la lista debe ser de tipo lista. El operando correspondiente al elemento debe ser del tipo de los elementos de la lista. Utilizando el menú desplegable se puede seleccionar cuál es el elemento que se desea reemplazar, en base a su posición dentro de la lista. Cuando la opción seleccionada es el elemento en la posición o el elemento en la posición (desde el final) se debe proveer otro operando de tipo entero para describir la posición. En modo comando modifica la lista operando reemplazando el elemento en ella. En modo expresión describe una nueva lista (la resultante de reemplazar el elemento en la lista operando) pero sin modificar la lista operando. El modo se puede cambiar desde el menú avanzado del bloque que se abre al hacer clic en la flecha blanca en el extremo izquierdo del bloque.
Operación Matemática sobre Lista#
Este bloque describe una operación matemática aplicada a una lista. Utilizando el menú desplegable se puede seleccionar la operación deseada. El operando debe ser una lista de números.
La suma describe la suma de todos los elementos de la lista. El resultado es un número.
El mínimo y el máximo describen al elemento más chico y al más grande, respectivamente, de entre todos los elementos de la lista. El resultado es un número.
El promedio describe el resultado de sumar todos los elementos de la lista y luego dividir ese número por la cantidad de elementos en la lista. El resultado es una fracción.
La mediana describe al elemento que queda en el medio de la lista si se ordenan sus elementos. Si la lista tiene cantidad par de elementos, el resultado es un promedio entre los dos más cercanos al medio. El resultado es un número.
La moda describe al elemento que más veces aparece en la lista. Si hay más de uno, describe al primero encontrado. El resultado es un número.
Recorte de Listas#
Este bloque permite recortar una parte de una lista. El operando debe ser una lista. Utilizando los menúes desplegables se pueden seleccionar los límites entre los cuales recortar la lista. Si las opciones seleccionadas son el principio y el final la lista resultante es la misma que la lista operando. Cuando la opción seleccionada es la posición o la posición (desde el final) se debe proveer otro operando de tipo entero para describir la posición. En modo comando modifica la lista operando recortándola entre los límites declarados. En modo expresión describe una nueva lista (la resultante de recortar la lista operando entre los límites declarados) pero sin modificar la lista operando. El modo se puede cambiar desde el menú avanzado del bloque que se abre al hacer clic en la flecha blanca en el extremo izquierdo del bloque.
Ordenamiento de Listas#
Este bloque permite ordenar los elementos de una lista. Utilizando los menúes desplegables se puede seleccionar el criterio para ordenar. Si el criterio es numérico, el operando debe ser una lista de números. Si el criterio es alfabético o alfabético, ignorar mayúscula/minúscula, el operando debe ser una lista de textos. En modo comando modifica la lista operando ordenándola según el criterio. En modo expresión describe una nueva lista (la resultante de ordenar la lista operando según el criterio) pero sin modificar la lista operando. El modo se puede cambiar desde el menú avanzado del bloque que se abre al hacer clic en la flecha blanca en el extremo izquierdo del bloque.
Inversión de Listas#
Este bloque permite invertir el orden de la lista. El operando debe ser una lista. En modo comando modifica la lista operando invirtiendo el orden de sus elementos. En modo expresión describe una nueva lista (la resultante de invertir la lista operando) pero sin modificar la lista operando. El modo se puede cambiar desde el menú avanzado del bloque que se abre al hacer clic en la flecha blanca en el extremo izquierdo del bloque.
Proyección#
Describe el resultado de proyectar un número dentro de un rango sobre otro rango. El resultado se corresponde a aquel número cuya proporción sobre el segundo rango es la misma que la del número operando sobre el primer rango. El primer operando debe ser un número. El segundo operando debe ser un rango. El tercer operando debe ser un rango. Además, el primer operando debe pertenecer al rango del segundo operando.
Esta operación es útil para convertir una proporción sobre un rango en una proporción sobre otro rango. Por ejemplo, para hacer que la intensidad de un actuador sea proporcional a la intensidad medida por un sensor se podría simplemente conectar el bloque que describe la medición realizada por el sensor en el operando correspondiente a la intensidad del actuador. Sin embargo, el rango de valores posibles del sensor podría no coincidir con el rango de valores admitidos por el actuador. Si por ejemplo se conecta la salida del sonar (que describe valores entre 0 y 50) como operando para el ángulo de un servo (que espera valores entre 0 y 180), el movimiento del servo estará restringido únicamente a los valores posibles del sonar. Si se proyecta la medición del sonar del rango 0 - 50 al rango 0 - 180 se logra el comportamiento esperado.