| 
  Universidad de Costa Rica  | 
 | 
| ![[<=]](../../../img/back.gif)  ![[home]](../../../img/home.gif)  | ![[<>]](../../../img/index.gif)  | ![[\/]](../../../img/bottom.gif)  ![[=>]](../../../img/next.gif)  | 
     
Obtenga el archivo que contiene el
padrón nacional en el sitio del
Tribunal Supremo de Elecciones y úselo para generar 
los datos para el programa Emparejador.java que 
construyeron los estudiantes del cursos de
Programación I para su
tarea programada número 8. Use como base la solución Java del 
programa pero utilice
SQLite para generar los archivos de 
datos. Finalmente, incluya en su programa C++ la 
exportación de los datos a archivos de texto en formato
CSV.
El archivo de encuestas que usted debe generar a partir de los nombres y apellidos del padrón nacional sirve para determinar cuáles son las personas más compatibles. Cada pregunta en la encuesta tiene 6 posibles respuestas:
     
Al construir el programa Emparejador.java hay que 
usar la clase pregunta.java para almacenar en una 
lista vector las preguntas del cuestionario, las que están 
grabadas en formato
CSV en el archivo "cuestionario.txt". Las 
respuestas al cuestionario están en el archivo 
"encuesta.txt", grabado también en formato 
CSV.
     
La cantidad de respuestas grabadas en el archivo 
"encuesta.txt" es muy grande, más allá 
de de varios miles. Para almacenar estos valores, usted debe 
utilizar un objeto
contenedor que permita agregar valores eficientemente, como 
es el caso de la clase
ArrayList que tiene su método
add() para agregar nuevos valores con buen eficiencia.
     
En la memoria del computador es posible almacenar objetos enormes, 
pero es muy difícil manipular una matriz cuadrada que tiene 
un millón de renglones. Por eso, en lugar de almacenar la 
gran matriz, la clase losMejores.java se usa para 
guardar los índices de aquellas parejas que tengan mayor 
compatibilidad. La clase losMejores.java tiene al 
menos los siguientes métodos:
cmptbl para 
     guardar aquellas parejas (i,j) que tienen mayor 
     compatibilidad.i de la 
     pareja (i,j) que tiene la compatibilidad de en 
     posicipon n. La pareja más compatible es 
     la que está en la posición 0 de 
     compatibilidad.j de la 
     pareja (i,j) que tiene la compatibilidad de en 
     posicipon n.     
Para calcular el índice de compatibilidad calcule la suma 
de los cuadrados de las diferencias de las repuestas. Si alguna de 
las 2 respuesta es la opción [0] (no sabe o no 
responde) use el valor 2 al calcular la 
compatibilidad. Por ejemplo, la compatibilidad de estas 2 
respuestas al cuestionario es 70:
     1,  0,  0,  3,  1,  1,  5,  5,  1,  0,  4,  0
     4,  1,  4,  5,  0,  1,  1,  1,  1,  0,  3,  1
    --- --- --- --- --- --- --- --- --- --- --- ---
    -3   2   2  -2   2   0   4   4   0   2   1   2
     9   4   4   4   4   0  16  16   0   4   1   4 ==> 66
     
El programa Emparejador.java debe procesar todos los 
cuestionarios y producir, al final, la lista de las 25 parejas que 
tienen mayor compatibilidad.
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
| 
 | 
![[mailto:]](../../../img/mailbox.gif) Adolfo Di Mare <adolfo@di-mare.com>.
  Adolfo Di Mare <adolfo@di-mare.com>.
| ![[home]](../../../img/home.gif)  |   | ![[/\]](../../../img/top.gif)  |