Página principal



Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas

Descargar 15.32 Kb.

Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas





Descargar 15.32 Kb.
Fecha de conversión11.05.2019
Tamaño15.32 Kb.

Ejemplo.- Sistema Informático para Agilizar la Información Electoral


Nuestro objetivo es automatizar la obtención de datos correspondientes al recuento de votos de unas elecciones generales.


Suponemos la existencia de 8 partidos políticos, con nombres A,B,C,D,E,F,G,H, y un total de 78 escaños.

NOTA.- los anteriores valores se introducen para que todos podamos trabajar sobre un contexto común, pero nada impide modificar libremente el número de escaños a repartir, o el nombre de los partidos.


Asumimos que cada puesto de trabajo representa una mesa electoral, y tras el recuento introduce un número de votos para cada uno de los 8 partidos (por supuesto, enteros positivos).


El resultado final consiste en visualizar de forma gráfica (diagrama de tarta) los resultados totales a nivel de escaños (número de escaños obtenidos por cada partido).


Podemos descomponer el problema es problemas menores:


  1. Introducir los resultados de cada mesa

  2. Calcular los votos acumulados por cada partido

  3. Traducir los resultados en votos a resultados como escaños

  4. Transformar los valores (número de escaños) a un diagrama de tarta, y visualizarlo


NOTA.- para mantener acotada la complejidad de la aplicación, se han simplificado las condiciones respecto a una votación real:


  • Asumimos una única circunscripción (en la realidad hay varias)

  • No tenemos en cuenta votos nulos o en blanco

  • No estamos calculando porcentajes de participación, etc (no partimos de un censo previo)

  • etc


Introducción de los resultados de la mesa

Para resolver el primer subproblema (introducción de resultados de cada mesa) vamos a crear un formulario que permita introducir dichos valores mediante una página web. El programa que procesa dicho formulario guardará los valores en un fichero (el formato lo decide cada mesa, ya que el uso será puramente local). En un sistema real los datos deberían almacenarse en una Base de Datos.

Diseñaremos un servlet que responda a las interrogaciones externas, devolviendo el número de votos de cada partido tras el recuento.


Calculo de los votos

Para calcular el total de votos, nuestro sistema informático (ej. correspondiente al ministerio de interior) debe contactar con los sistemas informáticos de las distintas mesas (NOTA.- en la realidad los colegios electorales pueden estar geográficamente distantes, y por lo tanto no es fácil/posible/eficiente o fiable una comunicación personal).


Para ello diseñamos un cliente que consulte los resultados de las restantes mesas, y calcule el total acumulado.


Los pasos restantes corresponden al cálculo de los escaños (traducción de votos a escaños) y al cálculo de una representación gráfica de los resultados.


El último paso es crear un cliente remoto capaz de acceder a dicha información. Dicho cliente remoto es el que tendrían accesible los distintos partidos y medios de comunicación.

Traducción de los votos a escaños

La Ley Orgánica 5/1985 del Régimen Electoral General recoge las normas que rigen el recuento de votos y la posterior asignación de escaños.


La ley D’Hont es el sistema utilizado para el reparto de escaños. Para ello, se ordenan de mayor a menor los votos obtenidos por las candidaturas que hayan conseguido al menos el 3% de las papeletas.


Posteriormente se divide el número de votos obtenidos por cada candidatura entre 1,2,3... hasta un número igual al de escaños correspondientes a la circunscripción. Los escaños se atribuyen a las candidaturas que obtengan los cocientes mayores.


Ej.- supongamos 8 escaños y 4 partidos (llamados A,B,C,D) con 67, 124, 23 y 221 votos respectivamente:

Tras ordenar por número de votos (de mayor a menor), y dado que todos superan el 3%, tenemos

221 124 67 23 (partidos D B A C)

calculamos los cocientes (utilizando división entera)

D B A C

221, 124, 67, 23 (al dividir por 1)

110, 62, 33, 11 (al dividir por 2)

73, 41, 22, 7 (dividiendo por 3)

55, 31, 16, 5 (por 4)

44, 24, 13, 4 (por 5)

36, 20, 11, 3 (por 6)

31, 17, 9, 3 (por 7)

27, 15, 13, 2 (por 8)

Escogemos los 8 valores máximos (para los 8 escaños). Al lado de cada valor indicamos el partido

221 (D) 124 (B) 110(D) 73(D) 67(A) 62(B) 55(D) 44(D)

El reparto de escaños queda de la siguiente forma: 5 escaños para D, 2 para B, 1 para A


Dado que el anterior procedimiento no es trivial, recurrimos a un servicio web que aplica el algoritmo anterior. Dicho servicio ofrece una única función, que recibe como argumentos un vector de valores enteros:


  • El primer valor indica el número de escaños a 'repartir'

  • El resto de valores corresponden al número de votos obtenido por cada uno de los partidos (en orden A,B,C,D,E,F,G,H)


El resultado obtenido es un vector de valores enteros, que indica para cada uno de los ocho partidos (en orden A..B) el número de escaños obtenidos.


Obtener la representación gráfica

La generación de gráficos no es trivial, y queda fuera de nuestras reponsabilidades/capacidades. Recurrimos a utilizar un servicio web desarrollado por un tercero. Dicho servicio ofrece una única función, que recibe como argumentos un vector de valores enteros, que corresponde a los escaños obtenidos por cada uno de los partidos A..H


El resultado es un fichero svg que contiene las órdenes gráficas necesarias para visualizar un diagrama de tarta en el que aparece en un color diferente la porción obtenida por cada partido.


El formato SVG es uno de los ‘derivados’ de XML, y posee una funcionalidad y capacidades similares a PDF (representación de gráficos vectoriales en dos dimensiones). Para visualizarlo podemos descargar una aplicación especifica desde Adobe (www.adobe.com), o descargar un plug-in para nuestro navegador (ej.- para Internet explorer).


Configuración

En un fichero de configuración guardamos los siguientes datos:

  • número total de escaños

  • nombre de los distintos partidos

  • número de mesas.- Para cada mesa almacenamos:

    • Nombre

    • URL

    • Número de votantes (censo)

  • URL para el servicio de cálculo de escaños

  • URL para el servicio de representación gráfica




Similar:

Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconClases de verano académicos y relacionados 2017
Greater New Bedford Regional Vocational Technical High School situado a 1121 Ashley Boulevard, New Bedford, Massachusetts. Las clases...
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconLos Hechos: concepto y clases. Los actos procesales: concepto. Elementos del acto procesal. El Negocio Jurídico Procesal: una especie de acto procesal. Clases de actos procesales. La demanda: concepto y clases
Trámite de la apelación. El recurso de Hecho: Generalidades. Casos en los que no procede. Trámite de este recurso. El Recurso de...
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconInforme anual 2004 123º Ejercicio
En el caso de que existan distintas clases de acciones, indíquelo en el siguiente
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconFormulario de inscripción por favor, rellene este formulario y envíelo a
El pago del curso se realizará antes del inicio del curso. No existe la posibilidad de cancelar las clases. La no-asistencia no da...
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconWashington Heights Family Health Center 575 West 181st Street. New York, ny 10033
Breve Descripción: Clases ayudan a las familias vivir una vida más saludable. Algunas clases educan a los padres y niños como se...
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconWelcome to Clovis Grove Elementary
Por favor revise las fechas en el calendario para salidas tempranas y días sin clases!
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconInstructivo sobre cómo y qué tipo de inasistencia a clases justificar
Esto es, por ejemplo, si un estudiante faltó un jueves, tiene como plazo máximo para solicitar la justificación de inasistencia el...
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconMicrosoft Word eu business 23162861 doc
El presente Folleto se refiere a diferentes Clases de Acciones sin valor nominal (“Acciones”) de Janus
Cuestión 1: Reescribe el siguiente código sin utilizar clases anidadas ni clases anónimas iconFormulario inscripcióN, curso inglés para desempleados campaña otoñO
El díA 12 de octubre es festivo. Las clases de ese día se recuperarán el viernes 13 de octubre, en el siguiente horario


Descargar 15.32 Kb.