Más reporteros matemáticos
suma
, que combina dos números usando la suma: 
- Abre tu proyecto U2L4-BibliotecaMatemática si aún no está abierto.
-
Crea bloques para
máximo
(que reportaría el mayor de dos números de entrada) ymínimo
(que reportaría el menor de dos números de entrada):
El bloque toma dos entradas: una lista y una operación con dos entradas, y reporta el resultado de combinar todos los elementos en la lista de entrada usando la operación de entrada. Por ejemplo, la siguiente expresión reporta: 0 + 1 + 2.
Elige la operación y combinar
usa la operación combinando todos los elementos de la lista de entrada y luego reporta el resultado.
Ten en cuenta que la función utilizada para combinar los elementos de la lista siempre tiene dos espacios de entrada en blanco. El bloque mantener
solo necesita un espacio en blanco en su función de entrada, pero con combinar
, se requieren dos.
Combinar
es una función de orden superior; es una función que toma una función como entrada. Ya has visto otra función de orden superior: mantener
(en Unidad 2 Laboratorio 3 Página 5: Mantener elementos de una lista).
A diferencia de mantener
, la función combinar
solo se usa con algunas funciones de entrada.
¿Qué funciones?
Combinar
se usa principalmente con solo estas funciones:
y los bloques y
que acabas de escribir.

-
Usa
combinar
para construirmáximo de lista
ymínimo de lista
.
-
Cree un bloque
suma de lista
que reporte la suma de los elementos de una lista.
-
Cree un bloque
promedio de lista
que calcule el promedio de los elementos en una lista:
Sugerencia sobrepromedio de la lista
Primero piensa: ¿cómo se calcula un promedio? Luego piensa: ¿qué bloques podrían ayudarte a hacer eso en Snap!?
Promedio de la lista
y suma de la lista
son procedimientos que necesitarás repetidamente, así que después de un tiempo, simplemente sabrás cómo escribirlos, o podrías ponerlos en una biblioteca y no tendrás que reinventarlos cada vez. Encontrar el valor máximo o mínimo de una lista y verificar la divisibilidad también son algoritmos que necesitarás con frecuencia.
RETURN(como
reportar
). Por ejemplo, esta definiciónEn muchos lenguajes (incluido Snap!) las variables deben ser declaradas de alguna manera (en Snap!, puedes hacer clic al botón "Crear una variable" o usar el bloque variable de programa
). Pero el lenguaje de AP no incluye declaraciones de variables, por eso no los verás en el examen.

se escribiría como
PROCEDURE raízCuadrada(número) { raízPositiva ← sqrt(número) RETURN ([raízPositiva, -1 * raízPositiva]) }

reportar
en Snap!, cuando se ejecuta un RETURN, el flujo de control vuelve al lugar del código donde se llamó el procedimiento, y el procedimiento devuelve el valor de la expresión dentro del comando
RETURNo el bloque
reportar
.sqrt(abreviatura de square root, raíz cuadrada en inglés) no está integrado en el lenguaje del AP, es por eso que está escrito en minúsculas como otros procedimientos definidos por un programador.

IF(a > b) { RETURN(verdadero) } ELSE { RETURN(a = b) }

a > bes verdadera, se ejecuta el código en el primer bloque de declaraciones; si es falsa, se ejecuta el código en el segundo bloque de declaraciones.
-
Autoevaluación
¿Cuándo se mostrará 'Error. Entrada no válida'?
mayorOIgualPROCEDURE mayorOIgual(a, b) IF(a > b) { RETURN(verdadero) } ELSE { RETURN(a = b) } DISPLAY"Error. Entrada no válida.") }
Este es tu intento n.º 1.
Llevándolo más allá
-
El máximo común divisor de dos números enteros es el número entero positivo más grande que es un divisor (un factor) de ambos números enteros.Desarrolla un bloque
máximo común divisor
. (Usa tu bloque.)
Consejos sobre la construcción del bloquemáximo común divisor
Puede que te resulte útil utilizarmáximo de lista
tanto comodivisores
y también para construir un bloqueintersección
que toma dos listas como entrada y reporta todos los elementos que están en ambas listas.
Consejos más detallados sobremáximo común divisor
Para encontrar el máximo común divisor de dos números, necesitarás encontrar:- Los divisores de cada número de entrada
- Los números que son divisores de ambos números de entrada
- El número mayor que es un divisor de ambos números de entrada