Diseño - Fearnley Education

Anuncio
Evaluación interna: ejemplo 3
Trabajo del alumno: criterio B
Fase B = Diseño detallado de la solución
== Introduciendo datos de fronteras ==
Podemos usar la estructura de datos estándar denominada "diagrama de mapa" para introducir los datos
de las fronteras.
El usuario registro sólo las conexiones entre regiones, en lugar de las fronteras y las grandes regiones,
como las líneas azules:
de 2011
Fuente: BBCanada http://www.bbcanada.com/bb_canada_map.cfm consultada el18 de febrero
'Mapas cortesía de BBCanada.com, www.BBCanada.com '
Cada segmento de línea conecta dos regiones limítrofes. Observe que regiones limítrofes diagonales (p.
ej. 8 y 13) pueden tener el mismo color.
Para cada región sólo necesitamos una lista de los estados conectados. Los datos se pueden escribir de
la siguiente forma:
YU
BC
NW
AL
SA
NU
MA
ON
QU
NF
NB
NS
PE
-->
-->
-->
-->
-->
-->
-->
-->
-->
-->
-->
-->
-->
BC,NW
YU,NW,AL
YU,NU,BC,AL,SA
BC,NW,SA
AL,NW,MA
NW,MA,QU
SA,NU,ON
MA,QU
ON,NU,NF,NB
QU
QU,NS,PE
NB,PE
NB,NS
El usuario introducirá los datos separados por comas en lugar de flechas (ver ejemplo a continuación).
Material de ayuda al profesor de Informática 1
Evaluación interna: ejemplo 3
Trabajo del alumno: criterio B
== Mostrando los resultados ==
Como el objetivo del programa es permitir que los estudiantes coloreen mapas, realmente no es
necesaria una salida gráfica real. Todo lo que necesitan saber es qué color poner en cada región, como
se muestra a continuación:
Lista impresa de colores
YU
BC
NW
AL
SA
NU
MA
ON
QU
NF
=
=
=
=
=
=
=
=
=
=
Los estudiantes colorearán el mapa así:
blue
yellow
green
blue
red
red
green
yellow
blue
yellow
Fuente: BBCanada http://www.bbcanada.com/bb_canada_map.cfm
consultada el 18 de febrero de 2011
'Por cortesía de BBCanada.com, www.BBCanada.com '
== Almacenamiento de datos ==
En resumen, el programa necesita dos listas de datos:
Fronteras (la primera región de cada línea limita con las
otras)
YU,BC,NW
BC,YU,NW,AL
NW,YU,NU,BC,AL,SA
AL,BC,NW,SA
SA,AL,NW,MA
NU,NW,MA,QU
MA,SA,NU,ON
ON,MA,QU
QU,ON,NU,NF,NB
NF,QU
NB,QU,NS,PE
NS,NB,PE
PE,NB,NS
Colores
YU,blue
BC,yellow
NW,green
AL,blue
SA,red
NU,red
MA,green
ON,yellow
QU,blue
NF,yellow
NB,red
NS,blue
PE,green
Los datos de las fronteras deben almacenarse en un archivo de datos, ya que se podría reutilizar o
modificar. El programa generará automáticamente los datos de los colores, así que no deben
almacenarse en un archivo de datos.
Material de ayuda al profesor de Informática
2
Evaluación interna: ejemplo 3
Trabajo del alumno: criterio B
== Procesamiento ==
La parte más importante del programa es la automatización que elige los colores adecuados, de acuerdo
con los datos de las fronteras y siguiendo las reglas esbozadas en los criterios de logro: p. ej.:
las regiones colindantes deben tener colores distintos
los vecinos que sólo coincidan en un vértice pueden tener los mismos colores
sólo se pueden usar cuatro colores
si es posible, se deben usar menos de cuatro colores
•
•
•
•
Hay dos estrategias posibles:
1.
Realizar un algoritmo que genere automáticamente un plan de colores correcto
-O2.
Asignar colores de forma aleatoria y comprobar si el conjunto de colores es aceptable
(siguiendo las reglas anteriores): si los colores no son correctos, se vuelve a iterar con un conjunto
aleatorio distinto, hasta encontrar uno correcto (o abandonar después de 1000 intentos)
La primera estrategia es la que se suele intentar cuando se busca un plan de colores. Desconozco si hay
un algoritmo que funciona para todos los mapas, así que usaré el procedimiento aleatorio y verificaré la
estrategia. Este diagrama de flujo esboza la lógica global del programa:
Inicio
Introducir datos
de las fronteras
colores = 4
colores = colores - 1
recuento = 0
Elegir colores aleatorios
recuento = recuento+1
Comprobar si los colores
son correctos
¿Son los
colores
correctos?
sí
¿Probar
menos
colores?
no
Fin
Material de ayuda al profesor de Informática no
¿se ha
intentado
1.000 veces?
no
sí
sí
sí
Imprimir lista
con colores
correctos
Mostrar
"Quitting"
no
¿intentar
otras 1.000
veces?
3
Evaluación interna: ejemplo 3
Trabajo del alumno: criterio B
== Plan de desarrollo ==
La programación se puede dividir en cuatro versiones, añadiendo nuevas características en cada una.
#1 – Detección de colores incorrectos (1 semana)
•
•
•
Crear una lista de datos de fronteras y una única lista de colores
Comprobar si los colores son correctos por
Una comparación de colores de los estados limítrofes examinando los datos de las fronteras
pseudocode for Checking
SUCCESS = True
for each REGION in the Borders list
for each NEIGHBOR of the REGION
look up REGION.COLOR in the Colors list
look up NEIGHBOR.COLOR in the Colors list
if REGION.COLOR == NEIGHBOR.COLOR
SUCCESS = False
return SUCCESS
#2 – Generación del conjunto de colores (1 semana)
•
•
Generar un conjunto aleatorio de colores
Repetir la asignación de colores aleatoria hasta que se encuentre un plan de colores correcto
pseudocode for RandomColors
Colors = empty list
for each REGION in the Borders list
select a random COLOR 1..4 (or 1..3 if max-colors is 3)
record the name of the REGION and the COLOR in the Colors list
#3 – Introducción de datos de fronteras desde un archivo (1 semana)
Leer datos de fronteras desde un archivo de datos, permitiendo que el usuario introduzca los datos en
un archivo de texto, sin tener que introducirlos directamente en el código del programa.
pseudocode for LoadingBordersData
COUNT = 0
Borders = empty list
open data file
repeat until end of file
info = readLine
(e.g. BC,YU,NW,AL)
split info into array of Strings --> data[]
append data[] to the Borders array
#4 – Programa final (2 semanas)
Una versión final del programa completamente terminada debería implementar lógica de alto nivel,
como se describe en el diagrama de flujo anterior. Se deben incluir bastantes pruebas.
#5 – Prueba final (1 semana)
En esta fase el usuario final prueba la versión definitiva del programa.
Material de ayuda al profesor de Informática
4
Evaluación interna: ejemplo 3
Trabajo del alumno: criterio B
== Plan de pruebas ==
Aquí hay una lista de 3 fronteras para probar el programa, conjuntamente con un plan de colores
correcto y otro incorrecto. Se pueden generar fácilmente coloraciones incorrectas para realizar pruebas.
Bandera
a
Fronteras
a:b,c,d
b:a,c
c : a , b, d
d:a,c
b
c
d
Colores 1,2,3
bien mal
1
1
2
2
3
3
2
1
Cuadrado 3x3
Fronteras
a:b,d
b:a,c,e
c:b,f
d:a,e,g
e:b,d,f,h
f:c,e,i
g:d,h
h:e,g,i
i:f,h
a b c
d e f
g h i
Colores 1,2,3,4
bien mal
1
1
2
2
3
3
4
3
1
2
2
1
3
1
4
2
1
3
Canadá (véase mapa más abajo)
Fronteras
Colores=1,2,3,4
bien mal
YU:BC,NW
BC:YU,NW,AL
NW:YU,NU,BC,AL,SA
AL:BC,NW,SA
SA:AL,NW,MA
NU:NW,MA,QU
MA:SA,NU,ON
ON:MA,QU
QU:ON,NU,NF,NB
NF:QU
NB:QU,NS,PE
NS:NB,PE
PE:NB,NS
3
4
2
3
1
1
2
4
3
4
1
3
2
3
4
3
2
1
1
2
4
3
4
1
3
2
Fuente: BBCanada http://www.bbcanada.com/bb_canada_map.cfm consultada el 18 de febrero de
2011
'Mapas cortesía de BBCanada.com, www.BBCanada.com '
Después de la primera fase, ya no se necesita los datos de colores de pruebas, ya que el programa
generará los colores automáticamente.
Material de ayuda al profesor de Informática 5
Evaluación interna: ejemplo 3
Trabajo del alumno: criterio B
Plan de pruebas
Tipo de prueba
Naturaleza de la prueba
Ejemplo
El programa se abre y
solicita el nombre de un
archivo existente
El programa introduce
los datos desde un
archivo de datos (#1)
Prueba con datos
sencillos (#2)
Hacer doble clic en el icono del
archivo de colores
CANADÁ
Introducir el nombre del archivo
y ver si el programa se ejecuta
Prueba con datos
incorrectos (#4)
Comprobar visualmente después
de la ejecución correcta del
programa
Comprobar que el programa no se
ejecuta
Las regiones vecinas no
deben tener los mismos
colores (#3)
Comprobar visualmente después
de la ejecución correcta del
programa
Las regiones colindantes
que sólo coinciden en un
vértice pueden tener el
mismo color (#3)
Comprobar visualmente después
de la ejecución correcta del
programa
Sólo se pueden usar
cuatro colores (#3)
Comprobar visualmente después
de la ejecución correcta del
programa
Comprobar visualmente después
de la ejecución correcta del
programa
Si es posible, se deberían
usar menos de cuatro
colores (#3)
Material de ayuda al profesor de Informática
Usar un ejemplo en el que sólo sean
necesarios tres colores
Un número excesivo de datos
pueden ocasionar que el programa
no termine
6
Descargar