Planificación de una aplicación de cuestionario

En esta página, comenzarás a desarrollar una aplicación de cuestionario (quiz) mediante la creación de un tipo de datos abstracto para emparejar las preguntas con sus respuestas.

  1. Habla con tu compañeroDecide qué tipo de cuestionario te gustaría crear y escribe de tres a cinco preguntas y sus respuestas correctas.
  2. Conversen en turnosLee la siguiente sección. (¡No los crees en Snap!. Crearás tu propio cuestionario más adelante en la página).

: Sublista

Una sublista (sublist) es una lista que se utiliza como elemento de otra lista.

(La palabra sublista también se usa para referirse a algún subconjunto de una lista).

Utilizarás una lista para almacenar los elementos de tu prueba en una variable global y una sublista para cada par de preguntas/respuestas. Luego puedes elegir trabajar solo con un par. asignar (prueba de informática) el valor (lista (lista (¿Cuál es el término informático para bucle o repetición?) (iteración)) (lista (¿Cuál es el nombre de la abstracción en un programa que puede contener un valor?) (variable)) (lista (¿Qué tipo de variable está disponible solo en la parte del programa donde se define?) (variable local))) preguntar (elemento(1) de (elemento (3) de (prueba de informática))) y esperar
si (elemento (2) de (elemento (3) de (prueba de informática)) = respuesta) {
    decir (¡Correcto!) por (2) segs
}

AAP.1.D.2, AAP.1.D.3, AAP.1.D.4

Pero un código como elemento (1) de (elemento (3) de (prueba de informática)) es difícil de leer y entender. Una mejor manera es usar abstracción para organizar los elementos del cuestionario. La abstracción simplemente oculta los bloques lista y elemento de, por lo que no es complicado de construir, pero puede hacer que su código sea mucho más fácil de escribir, leer y depurar.
asignar a (prueba de informática) el valor (lista (pregunta: (¿Cuál es el término informático para bucle o repetición?) respuesta: (iteración)) (pregunta: (¿Cuál es el nombre de la abstracción en un programa que puede contener un valor?) respuesta: (variable)) (pregunta: (¿Qué tipo de variable está disponible solo en la parte del programa donde se define?) respuesta: (variable local))) preguntar (pregunta de prueba (elemento (3) de (prueba de informática))) y esperar
si (respuesta = respuesta de pregunta (elemento (3) de (prueba de informática))) {
    decir (¡Correcto!) por (2) segs
}

: Tipos de datos
: Tipos de datos abstractos El constructor y el selector juntos implementan el elemento de prueba tipo de datos abstracto.
foto de Reshma Saujani

Reshma Saujani (nacida en el 1975) fundó la organizacion sin fines de lucro Girls Who Code en respuesta al declive histórico del número de mujeres empleadas en los campos relacionados con las Ciencias de la Computación. Según su sitio web, en 1995 el 37% de los científicos de la computación eran mujeres. En el 2023, solo es el 24%. Reshma y Girls Who Code tienen como objetivo solucionar este desequilibrio mediante la creación de clubes que enseñan ciencias de la computación a niñas. Además de ser activista, Reshma fue la primera mujer indoamericana en postularse para el Congreso y ha servido como Subdefensora Pública de la Ciudad de Nueva York, donde creó asociaciones innovadoras para apoyar a los DREAMers y promover la reforma del financiamiento de campañas, entre otras iniciativas.

Video: Enseña a las niñas a ser valientes, no perfectas

  1. "U2L2-Cuestionario"Empieza un nuevo proyecto y llámalo U2L2-Cuestionario 
  2. AAP-1.D
  3. Cree el tipo de datos abstracto elemento de prueba personalizado (tanto el constructor como los dos selectores).
  4. Especificación de un tipo de entrada

    Sus selectores esperan un elemento de prueba, es decir, una lista, como entrada. Puede hacer que sus bloques muestren qué tipo de datos esperan. No es necesario en Snap! pero, como asignar un color a un bloque, puede ser un recordatorio útil de lo que hace el bloque y qué tipo de entrada espera. Ya conoces las ranuras de entrada de varias formas, que indican diferentes tipos de datos esperados.

    En el Editor de bloques, mientras creas un selector, haz clic en el signo más para ingresar un nombre de entrada. Después...

    1. Haz clic en la flecha a la derecha del nombre de entrada:
      crear nombre de entrada con la flecha a la derecha
    2. Elige el tipo de datos que deseas para esa entrada. (Para este proyecto, utilizarás los tipos de entrada "texto" y "lista").
    3. Haz clic en "Aceptar."

  5. Crea una variable global para almacenar los elementos de tu prueba e inicialízalo como una lista de elementos, utilizando su constructor cuando corresponda.
  6. Snap! tiene dos vistas diferentes para listas dentro de listas. Puedes cambiar la vista que ves haciendo clic con el botón derecho (o control-clic) en el observador cuestionario (o el nombre que le hayas dado a la variable) en el escenario.
    Si no ves al observador en el escenario, asegúrese de que la casilla de verificación junto a la variable cuestionario en la paleta Variables esté marcada. casilla del visualizador del cuestionario seleccionada
    • Vista de tabla para el visualizador del cuestionario de ciencias de la computación (tu cuestionario será diferente):
      visualizador del cuestionario de ciencias de la computación con la primera columna expandida
      Mi visualizador es demasiado estrecho.
      Al principio el observador se verá así:
      visualizador del cuestionario de ciencias de la computación en el tamaño inicial
      Arrastre el controlador de cambio de tamaño en la parte inferior derecha para obtener esto:
      visualizador del cuestionario de ciencias de la computación con tamaño cambiado
      Luego pasa el ratón sobre la letra A cerca de la parte superior. Se convertirá en un dígito 1. Cógelo y arrástralo hacia la derecha:
      visualizador del cuestionario de ciencias de la computación con la primera columna expandida
    • Vista de la lista para el observador de la prueba de informática:
      visualizador del cuestionario de ciencias de la computación, vista de tabla
    : Tabla

    Una tabla (table) es una estructura de datos bidimensional con filas y columnas. Si conoces un programa de hojas de cálculo, lo que este muestra es una tabla.

    En Snap!, una tabla se implementa como una lista de listas, en la que cada sublista es una fila de la tabla.

    Guarda tu trabajo
  7. Prueba ambos selectores para diferentes elementos de tu lista de elementos de prueba y corrige cualquier problema.
  8. Imagina que creas una variable mayúsculas y usas conjunto para dar un nombre a esta lista de listas:
    asignar a (capitales) el valor {{Augusta, Maine}, {Boise, Idaho}, {Columbia, South Carolina}, {Des Moines, Iowa}}
    ¿Cuáles de las siguientes afirmaciones son verdaderas?

    Elige todos los que correspondan.

    elemento (1) de (capitales) reporta una lista con dos elementos: "Augusta" y "Maine".
    elemento (1) de (elemento (1) de (capitales)) reporta la palabra "Augusta".
    elemento (último) de (elemento (2) de (capitales)) reporta la palabra "Iowa".
    (longitud) de (capitales) reporta el número 8.
    todos menos el primero de (elemento (último) de (capitales)) reporta la lista con un elemento:"Iowa".
    elemento (3) de (capitales) reporta la cadena "Boise".
    elemento (último) de (todos menos el primero de (capitales)) reporta la cadena "Iowa".
    (longitud) de (elemento (1) de (capitales)) reporta el número 2.