App inventor 2 en español
Cómo programar los teléfonos móviles con Android.
Tutorial de App inventor 2 - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
____________________________
55A.- Preguntas tipo test. (II)
p55A_preguntas_tipo_test_archivo.aia
- Este ejemplo es la ampliación del anterior.
- La diferencia fundamental es que los datos, en vez de tomarlo de una Lista, la vamos a tomar de un archivo llamado tipo_test.csv
- De esta manera, el realizador del test tendrá más facilidad para construirlo, solo tendrá que poner las preguntas, opciones y respuesta correcta en el archivo tipo_test.csv.
Como ya hemos visto en otra ocasión, los archivos csv (valores separados por coma), son archivo que contienen datos separados por coma y por cambio de líneas. Se pueden considerar como una base de datos. Si en vez de separar los datos por coma, los separamos por punto y coma se abrirán fácilmente con el Excel. (también se pueden abrir con el Excel si están separados por coma, pero puede parecer algo más complicado). |
|
- Creación del archivo de preguntas y respuestas. Cargar el archivo en el móvil.
- Con el Bloc de notas (te aconsejo que bajes de Internet el Notepad ++, es muy bueno), creas en tu ordenador un archivo llamado tipo_test.csv y escribe el siguiente contenido:
tipo_test.csv |
Capital de Francia;Roma;París;Berlín;París
Capital de Italia;Londres;Moscú;Roma;Roma
Capital de Portugal;Roma;Lisboa;Atenas;Lisboa
Capital de Alemania;Berlín;Moscú;Roma;Berlín
Capital de Rusia;París;Roma;Moscú;Moscú
Capital de Polonia;Londres;Varsovia;Roma;Varsovia |
|
Establece la codificación en UTF-8 para poder poner los acentos. |
En el campo 1 observamos la pregunta: Capital de Francia;
En los campos 2, 3 y 4 las opciones: Roma;Paris;Berlin;
En el campo 4 la respuesta correcta: Paris
Observamos que los campos están separados por punto y coma;
Una vez creado y guardado en tu ordenador, pulsa el archivo con el Excel de Windows, observarás que se abre como una Hoja de Cálculo.
- Cuando el usuario quiera cambiar las preguntas solo tendrá que ir al Notepad o al Excell, cambiarlo y volverlo a cargar en la aplicación, de esta manera podremos facilmente tener una biblioteca de archivos con preguntas.
____________________________________
- Diseño.
- Observa que he cargado el archivo tipo_test.csv
____________________________________
- Bloques.
- Cuando pulsamos el Inicio, se lee el archivo tipo_test.csv.
- Se sustituyen los punto y comas por comas, y se asigna a la Lista pregunta. Lo pasamos de formato CSV a formato Lista.
- Los separadores de campo son punto y coma para que el Excel pueda leer directamente el archivo.
- En el código paso los punto y coma a coma, para que pueda ser interpretado como CSV, ya que este Android toma la coma como separador de campo.
- Se podría haber creado desde el principio los separadores con coma, de esta manera nos ahorraríamos el bloque de sustitutir.
- Ya tenemos en la Lista preguntas con la información de preguntas y respuestas.
- Las variables a, b y c serán las opciones. La variable respuesta, la solución.
El Botón btn_Inicio, inicializa las variables y varias Etiquetas además carga el archivo.
Cuando pulsamos el Botón btn_Siguiente...
Añadimos un 1 a siguiente que actuará como índice de la Lista. Tomaremos el índice siguiente de la Lista pregunta:
Capital de Francia, Roma,Paris,Berlin,Paris
Estas las introduciremos en otra Lista llamada opciones, pasará directamente de la siguente manera a
la Lista opciones
1 |
Capital de Francia |
2 |
Roma |
3 |
Paris |
4 |
Berlin |
5 |
París |
El índice 1 es la pregunta que se presentará en la Etiqueta1
Los índices 2, 3 y 4 son las opciones a, b y c que aparecerá sobre los Botones 1 (Roma), 2 (París) y 3 (Berlín).
La variable respuesta tomará el índice 5, en este caso París
Cuando pulsamos el Botón 1, 2 o 3, se tomará el texto del botón pulsado y se asignará a la variable texto_botón. Se llamará al procedimiento comprobar.
El procedimiento comprobar, comprobará si el texto del botón pulsado es igual a la respuesta.
En caso que sea igual se sumará uno al acierto.
En caso contrario se restará uno al acierto.
Se presentará en la Etiqueta3 la puntuación de aciertos.
____________________________________
- Mejora. Los textos sobre los botones se colocan de forma aleatoria.
p55A_preguntas_tipo_test_archivo_alea.aia
Las opciones apareceran desordenadas aleatoriamente.
- Cada vez que iniciemos las preguntas, el texto en los Botones aparecerá de la forma en que está en el archivo
tipo_test.csv |
Capital de Francia;Roma;París;Berlín;París
Capital de Italia;Londres;Moscú;Roma;Roma
Capital de Portugal;Roma;Lisboa;Atenas;Lisboa
Capital de Alemania;Berlín;Moscú;Roma;Berlín
Capital de Rusia;París;Roma;Moscú;Moscú
Capital de Polonia;Londres;Varsovia;Roma;Varsovia |
Vamos a realizar un código para que cada vez que se presenten las opciones estén desordenadas, es decir que una vez aparezca para la misma pregunta (Capital de Francia):
Roma Paris Berlin
y en otra ocasión
Berlin Roma Paris
y en otra
Paris Berlin Roma
por ejemplo. |
|
Se puede realizar de varias formas, como estos son ejemplos de aprendizaje voy a utilizar un algoritmo que creo se puede entender.
Dispongo de tres variables x y z
La variable x obtiene un número aleatorio de 2 al 4
La variable y obtiene un número aleatorio de 2 al 4 y mientras sea igual al de la x, crea otro hasta lograr uno que no sea igual
La variable z obtiene un número aleatorio de 2 al 4 y mientras sea igual al x o al y, crea otro hasta lograr uno distinto a los dos.
De esta manera obtendremos tres números en las variables x y z
Por ejemplo: 234 o bien 243 o bien 324 o bien 342 o bien 423 o bien 432
De tendremos asignado los número 2 3 4 a x y z de manera desordenada y no repetida.
Cambiamos el btn_Siguiente
llamando al procedimiento alea
obtendremos cada vez un valor de x y z
de manera que esos índice aparecerán cada vez desordenados.
__________________________________
|