Mensajes generados por el Parser

Anuncio
TP1: Grafos
75.42 Taller de programación I
Cátedra Azcurra
Grupo
Integrantes
Fecha Entrega
1
Albarracín, Luis Alberto - 86901
Capristo, Matías Fernando - 87228
Korzeniewski, Claudia -85756
Pereira, Florencia 07/10/2009
TP1: Grafos
Cátedra Azcurra
Grupo 1
Indice
INDICE .............................................................................................................................................. 1
CÓDIGO FUENTE ........................................................................................................................... 3
MENSAJES GENERADOS POR EL PARSER............................................................................. 4
ARCHIVO DE VÉRTICES ................................................................................................................... 4
ARCHIVO DE ARISTAS ..................................................................................................................... 6
DIAGRAMAS .................................................................................................................................... 9
DIAGRAMA DE CLASES .................................................................................................................... 9
DIAGRAMA DE SECUENCIA: CONSULTA DE CAMINO MÍNIMO ........................................................ 12
EJEMPLO ....................................................................................................................................... 13
Caminos más cortos .................................................................................................................. 15
Caminos más rápidos ................................................................................................................ 16
2/16
TP1: Grafos
Código fuente
3/16
Cátedra Azcurra
Grupo 1
TP1: Grafos
Cátedra Azcurra
Grupo 1
Mensajes generados por el Parser
Al validar los archivos de vértices y aristas, el Parser genera mensajes de error o advertencia que
se muestran en el archivo de errores.
Archivo de Vértices
El formato de línea es:
IDVertice; X; Y
Campo
IDVertice
X
Y
Tipo
Cadena
Real
Real
Obligatorio
Si
No
No
Único
Si
No
No
Valor por defecto
0
0
Descripción
Identificador del vértice
Posición X del vértice
Posición Y del vértice
Mensajes posibles

Error: Línea <i>. No se ingresó el id del vértice.
Descripción. Error crítico. No se carga el vértice.
Ejemplo: “;0.2;0.2”

Advertencia: Línea <i>. No se ingresó la posición X. La posición X
por defecto será 0.
Descripción. Error secundario. Se continúa con la carga del vértice.
Ejemplo: “V1;;0.2”

Advertencia: Línea <i>. Columna <j>. Posición X no válida. La
posición X por defecto será 0.
Descripción. Error secundario. Se continúa con la carga del vértice.
Ejemplo: “V1;ff;0.2”

Advertencia: Línea <i>. Columna <j>. Hay caracteres indeseados en
la posición X. La posición X por defecto será 0.
Descripción. Error secundario. Se continúa con la carga del vértice.
Ejemplo: “V1;1.4d8;0.2”

Advertencia: Línea <i>. No se ingresó la posición Y. La posición Y
por defecto será 0.
Descripción. Error secundario. Se continúa con la carga del vértice.
Ejemplo: “V1;8”

Advertencia: Línea <i>. Columna <j>. Posición Y no válida. La
posición Y por defecto será 0.
Descripción. Error secundario. Se continúa con la carga del vértice.
Ejemplo: “V1;0;hh”

Advertencia: Línea <i>. Columna <j>. Hay caracteres indeseados en
la posición Y. La posición Y por defecto será 0.
Descripción. Error secundario. Se continúa con la carga del vértice.
Ejemplo: “V1;0;5f”

Error: Línea <i>.
vértice: <id>.
El vértice que intenta agregar ya existe. Id del
Descripción. Error crítico. El vértice no se carga.
Ejemplo: “V1;0;1.2”
“V1;-2;8”
4/16
TP1: Grafos

Cátedra Azcurra
Grupo 1
Error: Línea <i>. No hay memoria suficiente.
Descripción. Error crítico. El vértice no se carga.

Error: Línea <i>. El vértice no se carga por falta de datos.
Descripción. Error crítico. Mensaje que confirma que el vértice no se carga ya que no se
ingresaron los datos obligatorios.
Ejemplo: “;0;0”

Advertencia: Línea <i>. Línea vacía.
Descripción. Error secundario. Advertencia sobre una línea sin datos en el archivo.
5/16
TP1: Grafos
Cátedra Azcurra
Grupo 1
Archivo de Aristas
El formato de línea es:
IDArista; IDVerticeOrigen; IDVerticeDestino; Longitud (metros); velocidadMaxima (km/h)
Campo
Tipo
Obligatorio
Único
Valor por
defecto
IDArista
IDVerticeOrigen
Cadena
Cadena
Si
Si
Si
No
IDVerticeDestino
Cadena
Si
No
Longitud
Real
No
No
100
velocidadMaxima
Real
No
No
40
Descripción
Identificador de la arista
Identificador del vértice
origen
Identificador del vértice
destino
Longitud de la arista en
metros
Velocidad máxima de la
arista en km/h
Mensajes posibles:

Error: Línea <i>. No se ingresó el id de la arista.
Descripción. Error crítico. No se carga la arista
Ejemplo: “;V1;V2;100;40”

Error: Línea <i>. No se ingresó el vértice origen de la arista.
Descripción. Error crítico. No se carga la arista
Ejemplo: “A1;;V2;100;40”

Error: Línea <i>. No se ingresó el vértice destino de la arista.
Descripción. Error crítico. No se carga la arista
Ejemplo: “A1;V1;;100;40”

Advertencia: Línea <i>. No se ingresó la longitud de la arista. La
longitud por defecto será 100 metros.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;;40”

Advertencia: Línea <i>. Columna <j>. Longitud de arista no válida.
La longitud por defecto será 100 metros.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;rr;40”

Advertencia: Línea <i>. Columna <j>. Hay caracteres indeseados en
la longitud de la arista. La longitud por defecto será 100 metros.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;ss150;40”

Advertencia: Línea <i>. Columna <j>. Longitud negativa. La longitud
por defecto será 100 metros.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;-50;40”

Advertencia: Línea <i>. No se ingresó la velocidad máxima de la
arista. La velocidad máxima por defecto será 40 km/h.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;100”
6/16
TP1: Grafos

Cátedra Azcurra
Grupo 1
Advertencia: Línea <i>. Columna <j>. Velocidad máxima de arista no
válida. La velocidad máxima por defecto será 40 km/h.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;100;pp”

Advertencia: Línea <i>. Columna <j>. Hay caracteres indeseados en
la velocidad máxima de la arista. La velocidad máxima por defecto
será 40 km/h.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;100;5f0”

Advertencia: Línea <i>. Columna <j>. Velocidad máxima negativa. La
velocidad máxima por defecto será 40 km/h.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;100;-10”

Advertencia: Línea <i>. Columna <j>. Velocidad máxima igual a cero.
La velocidad máxima por defecto será 40 km/h.
Descripción. Error secundario. Se continúa con la carga de la arista
Ejemplo: “A1;V1;V2;100;0”

Error: Línea <i>. No se ingresó el vértice destino, la longitud y
la velocidad máxima para la arista.
Descripción. Error crítico. No se carga la arista.
Ejemplo: “A1;V1”

Error: Línea <i>. No se ingresaron los vértices origen y destino,
la longitud y la velocidad máxima para la arista.
Descripción. Error crítico. No se carga la arista.
Ejemplo: “A1”

Advertencia: Línea <i>. La longitud de la arista es menor a la
distancia de los vértices que une. La longitud será <longitud>.
Descripción. Error secundario. Se continúa con la carga y se asigna la longitud mínima
entre los vértices que une la arista.
Ejemplo: vértices: “V1;0,0” y “V2;100;100”
arista: “A1;V1;V2;20;40”

Error: Línea <i>. La arista que intenta agregar ya existe .Id de la
arista: <id>.
Descripción. Error crítico. No se carga la arista.
Ejemplo: “A1;V1;V2;” y “A1;V3;V9”

Error: Línea <i>. El vértice origen no existe. Id del vértice:
<id>.
Descripción. Error crítico. No se carga la arista.

Error: Línea <i>. El vértice destino no existe. Id del vértice:
<id>.
Descripción. Error crítico. No se carga la arista.

Error: Linea <i>. No hay memoria suficiente.
Descripción. Error crítico. No se carga la arista.
7/16
TP1: Grafos

Cátedra Azcurra
Grupo 1
Error: Línea <i>. La arista no se carga por falta de datos.
Descripción. Error crítico. Mensaje que confirma que la arista no se carga porque no se
ingresaron los datos obligatorios.
Ejemplo: “;;;;0”

Advertencia: Línea <i>. Línea vacía.
Descripción. Error secundario. Advertencia sobre una línea sin datos en el archivo.
8/16
TP1: Grafos
Cátedra Azcurra
Grupo 1
Diagramas
Diagrama de clases general para la primera entrega
La arquitectura del trabajo práctico se define por una estructura Grafo que se compone de una
lista de Aristas y una lista de Vértices. Los datos del grafo se almacenan en el datoV y datoA. La
información a ingresar proviene de archivos de texto plano, que la clase Parser se encarga de
recorrerlos, cargar en el Grafo y emitir los errores correspondientes en otro archivo de texto
denominado “errores.txt”.
El servicio de obtener los caminos mínimos, desde un vértice origen hasta un vértice destino,
dentro del Grafo, es brindado por el Dijkstra. Los caminos a recorrer el grafo pueden elegirse por
longitud o distancia, y por tiempo en base a la velocidad permitida.
La vista es la clase que nos provee recorrer el grafo, obtener los datos necesarios del mismo y
emitirlos por consola. La clase Menu es la administración de las opciones que puede utilizar el
usuario. Cuando esta clase invoca a obtener los caminos minimos, mediante Dijkstra, la vista
obtiene todos los datos de los recorridos parciales y totales y los imprime por pantalla.
Diagrama de clases de Dijkstra
Se calcula el camino mínimo en base a la Longitud o al tiempo que se tarda, en recorrer un camino
específico.
9/16
TP1: Grafos
Cátedra Azcurra
Grupo 1
Diagrama de clases de los Comparadores utilizados por el Dijkstra
Los datos por los que se compara a la hora de calcular el camino mínimo es por Longitud o
Tiempo. La longitud tiene unidades en metros [m], y el tiempo en [h] horas, con lo cual utilizamos
la velocidad máxima permitida para calcular el mínimo tiempo en recorrer un determinado
camino.
V= L/ t
L: Longitud, t: Tiempo
iempo.
10/16
TP1: Grafos
Cátedra Azcurra
Grupo 1
Diagrama de clases de Excepciones
Las excepciones son invocadas por el Grafo y utilizadas por el Parser, en el momento de
almacenar la información en el mismo, que proviene de los archivos cargados por el usuario.
11/16
TP1: Grafos
Cátedra Azcurra
Diagrama de secuencia: consulta de camino mínimo
12/16
Grupo 1
TP1: Grafos
Cátedra Azcurra
Ejemplo
Para el siguiente grafo:
Los archivos de texto ingresados al programa se encuentran en el cd.
Se obtuvieron los siguientes caminos mínimos :
13/16
Grupo 1
TP1: Grafos
14/16
Cátedra Azcurra
Grupo 1
TP1: Grafos
Cátedra Azcurra
Caminos más cortos
15/16
Grupo 1
TP1: Grafos
Cátedra Azcurra
Caminos más rápidos
16/16
Grupo 1
Descargar