Funciones
En estas actividades vamos a trabajar con funciones de Snap que se encuentran el la categoría de Operadores (Operators).
Actividad 1: ¿Qué es una función?
- En un programa no demasiado largo puede haber partes que se repiten. Cuando queremos resolver un problema que requiere un programa también largo, podemos dividir éste en etapas cortas que, una vez unidas, resuelvan el problema. Estas etapas cortas las podemos entender como funciones.
- Las funciones son un conjunto de órdenes (trozos de código) que realizan tareas específicas. Todos los lenguajes de programación tienen sus propias funciones (funciones internas) y normalmente también permiten crear funciones al usuario (funciones externas).
- El programa que vas a crear a continuación realiza 2 tareas utilizando funciones internas de Snap: letra y longitud de.
- El programa pide el nombre del usuario y devuelve el número de caracteres por el que está formado. Además pide las cifras del DNI y devuelve el DNI con su correspondiente letra. Veamos:
- Primero se calcula el nº de letras que tiene una cadena de caracteres (en este caso, tu nombre) a través de la función longitud de (cadena de caracteres alfanuméricos).
- Luego se determina la letra del DNI siguiendo el mismo algoritmo que utilizamos en una hoja de cálculo en el Bloque 2 (Ofimática): calcula el resto de la división entre el nº del DNI y 23 (función módulo/MOD), y busca ese resto en una tabla con las letras disponibles (BuscarV/VLOOKUP). Aquí usamos la función letra X (cadena de caracteres alfanuméricos) que nos da qué letra de esa cadena es la referenciada por el número X.
- Un detalle a tener en cuenta es que para la función letra el primer carácter es el 1 y en las tablas del DNI es el 0. De ahí que sumemos 1 al resto de la división (ejemplo: resto 0, posición 1 en la cadena de caracteres de Snap).
- Crea el programa funciones_DNI y comprueba que funciona.
Listas, variables, constantes...
Actividad 2: ¿Qué es una lista? 1
- Una lista de valores es una tabla de 1 sola columna donde cada fila almacena sólo un valor. Los valores quedan referenciados por el número de la fila (posición) empezando por la primera que es la posición 1. Las funciones que gestionan listas las tenemos en la categoría de Variables.
- El programa que vamos a crear a continuación hace 2 cosas: crea una lista con el nombre de las asignaturas y otra (lista) con sus notas. El programa nos devolverá la nota media de todas las asignaturas. Veamos como:
- Creamos las 2 listas: asignaturas y calificaciones. Desde Variables creamos dos variables (que luego convertiremos en listas): asignaturas y calificaciones.
- Ahora asignamos a la variable asignaturas la condición de lista: Asignar a asignaturas el valor lista (vacio, sin ningún espacio para añadir valores). Ahora asignaturas es nuestra primera lista.
- Repite el proceso para crear la lista calificaciones.
- También creamos las variables materia y nota.
- El programa pide al usuario introducir una asignatura (en la lista asignaturas) y su nota (en la lista calificaciones). Este proceso se repite 2 veces para 2 asignaturas. Al final de este proceso el programa indica el nº de asignaturas y muestra las 2 listas. La función longitud de (lista) nos da el nº de elementos de la lista (dos).
- Crea el programa funciones_notas1 con esta primera parte y comprueba que funciona.
Continuación del programa funciones_notas1.
- Ahora el programa mostrará la información introducida por el usuario:
- Para mostrar el contenido de cada tabla. Usa la función elemento x de (lista) que nos da el valor almacenado en la posición x de la lista (por ejemplo, una asignatura o una nota).
- Mostraremos el valor del primer elemento de asignaturas con el valor del primer elemento de calificaciones. El número ordinal lo generamos con la variable que has de crear orden.
- Pasaremos al segundo elemento... y así hasta terminar con todos (función longitud de (lista)).
Continuación del programa funciones_notas1.
- Ahora el programa calculará la media de las asignaturas:
- Para calcular la nota media sumamos los valores de las notas y lo dividimos entre el número de notas.
- Aunque en este programa ya sabemos que son 2 notas, se se utiliza el nº de notas (longitud de (lista) para, cuando mejoremos el programa, no tener que limitarnos a un nº fijo.
- Para almacenar la nota media creamos la variable media.
Continuación del programa funciones_notas1.
- El programa ya está acabado. Solo queda añadir la introducción (indicando qué hace el programa) y la finalización (nombre de grupo y fecha).
- Este programa utiliza funciones, listas, variables y constantes (5).
- Comprueba que funciona con las 2 asignaturas que fijamos..
Actividad 3: ¿Qué es una lista? 2
- Ahora vamos a mejorar el programa anterior. Al final de este enunciado tienes un video que muestra el programa funcionando.
- La mejora consiste en preguntar al usuario cuantas asignaturas va a introducir, en lugar de fijar su número.
- Abre el programa funciones_notas1 desde Snap y guárdalo como funciones_notas2.
- Lo primero es crear una nueva variable (nasignaturas) para almacenar el número de asignaturas. De esta manera el bucle que repetía 2 asignaturas ahora pasa a repetir nasignaturas (cámbialo).
- Apartamos los 3 primeros bloques (Cuando se pulse... y los 2 decir que enuncian el que va a hacer el programa) a una sitio libre del área de trabajo.
- También apartamos los 2 últimos bloques: decir el nombre del grupo... y detener todos...
- Ahora añadimos los bloques que preguntan al usuario el nº de asignaturas y lo almacenamos en la variable nasignaturas.
- Continuación del programa funciones_notas2.
- Ahora, partiendo del programa sin los bloques que hemos apartado, vamos a crear una función externa.
- Desde la categoría Variables creamos un bloque con el nombre Materias y Notas (del tipo Comando)
- Desde el propio editor de bloques arrastramos nuestro script (programa sin los bloques que quitamos) y lo acoplamos al bloque Materias y Notas.
- Continuación del programa funciones_notas2.
- Haz clic en Aceptar y después arrastra el bloque que tienes debajo del botón Crear bloque al área de trabajo.
- Así hemos definido una función externa que podremos ejecutar cuando lo necesitemos. Haz clic en ella y comprueba que funciona. Prueba a crear 3 asignaturas.
- Puedes volver a editar la función haciendo clic con el botón derecho sobre ella y seleccionar Editar.
- Ahora vas a repetir el proceso anterior para crear el script que que nos dirá si la nota media se corresponde con un bien, sobresaliente o lo que sea.
- El nombre del script es Nota de Boletín.
- Para crear este programa ten en cuenta que:
- Si la nota media es menor de 5, se ha de indicar suspenso.
- Para determinar la calificación usamos el bucle si...si no 4 veces de forma solapada (fíjate en la imagen de abajo).
- Continuación del programa funciones_notas2.
- Ya solo queda unir todos los bloques y completar el programa:
- Primero van los 3 comando iniciales, a continuación el script Materias y Notas, después el script Nota de Boletín y finalmente los 2 comandos con los que cerramos nuestros programas.
- Comprueba que todo funciona correctamente en el programa introduciendo los datos de al menos 4 asignaturas.
- Llama al profesor.
- Programas:
- Programas subidos a Classroom: los 3 de esta sección (Funciones, Listas...). Y sus correspondientes capturas de pantalla.
- Programas publicados en tu web (página bucles & bifurcaciones): 3
- Actividades por sesiones:
- Sesión 7: actividades 1 y 2 con los programas funciones_DNI y funciones_notas1.
- Sesión 8: actividad 3 con el programa funciones_notas2.