Вы находитесь на странице: 1из 45

UNIVERSIDAD NACIONAL DEL SANTA

FACULTAD DE INGENIERIA
ESCUELA ACADEMICA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

INFORME DE PROYECTO DE BIOINFORMATICA TITULO: DISEO DE UN SISTEMA SISTEMA DE POSICIONAMIENTO GLOBAL (GPS), USANDO TECNOLOGIA JAVA
AUTORES: BLAS AZAA ANDREI LOPEZ TORRES KEVIN

ASESORA: ING. BRIONES PEREYRA LIZBETH DORA

CHIMBOTE PER 2013

Universidad Nacional del Santa

DEDICATORIA
A nuestro Creador, Jehov, por iluminarnos da a da en nuestra vida. A nuestros padres y hermanos por su apoyo brindado.

A nuestros profesores de la UNS por su gua en este camino a ser profesionales. A todos aquellos que en algn momento de nuestras vidas estuvieron a nuestro lado.

GPS

Pgina 2

Universidad Nacional del Santa

AGRADECIMIENTO

A los profesores de la E.A.P. de Ingenieria de Sistemas e Informatica por la formacin Acadmica brindada, y especialmente a nuestra Asesora Ing. Briones Pereyra Lizbeth Dora por su gran apoyo y amistad.

A nuestra casa de estudios Universidad Nacional del Santa, por ser el lugar donde cada dia, nos brinda su abrigo, sus aulas, sus laboratorios donde cada dia nos insta que debemos aprender y ser mejores, por permitirnos realizar este

proyecto de reconocimiento de GPS, bajo la direccin de nuestra asesora y docente en mencin en el curso de Bioinformatica

GPS

Pgina 3

Universidad Nacional del Santa

PRESENTACIN
SEORES:

En cumplimiento a lo dispuesto en la Tercera Unidad para el curso de Bioinformatica, cuyo tema es la realizacin de un Proyecto a libre eleccin dispuesto por nuestra docente a cargo del Curso de Bioinformatica, Ing Lizbeth Dora Briones Pereyra. En tal efecto ponemos a vuestra consideracin el presente informe de Proyecto titulado: DISEO DE UN SISTEMA

SISTEMA DE POSICIONAMIENTO GLOBAL TECNOLOGIA JAVA

(GPS),

USANDO

El informe de Proyecto tiene como lugar El diseo y la aplicacin del Sistema a La Sociedad cuyo presente trabajo pretende obtener la ruta mas corta entre el punto de salida y de llegada, tal es asi en el futuro solo se tenga que abstraer las caractersticas requeridas e ingresarlas al Sistema, el cual nos dara el resultado en mencin.

Esperando podamos satisfacer una necesidad haciendo uso de las herramientas tecnolgicas es por ello le brindamos el presente informe de proyecto con titulo arriba mencionado.

GPS

Pgina 4

Universidad Nacional del Santa

RESUMEN
En este trabajo se presenta el estudio e implementacin del algoritmo de segimiento de un receptor de seales GPS basado en una arquitectura de radio definido por software como una aportacin para que en un futuro se cuente con un receptor GPS basado en software y que tenga como principal un Dispositivos Logicos Programables (FPGA).

La implementacin del algoritmo se divide en cuatro partes principales: estudio e implementacin de lazo de seguimiento de cdigo, estudio e implementacin del lazo de seguimiento de portadora, juntar estos dos lazos de seguimiento para que al final tengamos uno solo que a la salida nos de como resultado los datos de navegacin por ultimo implementar el lazo de seguimiento completo en el lenguaje JAVA con vista modo diseo, evaluando la entrada y la salida para poder pasarlo al Dispositivos Logicos Programables (FPGA).

La implementacin del algoritmo sobre dispositivos lgicos programables FPGA es para poder tener un receptor con caractersticas cognitivas el cual nos va a permitir simular otros sistemas de navegacin sin necesidad de cambiar dispositivos de hardware con solo actualizar algunos parmetros de configuracin dentro de la aplicacin de software desarrolado.

GPS

Pgina 5

Universidad Nacional del Santa

ABSTRACT

This paper presents the study and implementation of the algorithm TO FOLLOW GPS signal receiver architecture based on software-defined radio as a contribution to make in the future will have an software-based GPS receiver and whose main a programmable logic devices (FPGA).

The implementation of the algorithm is divided into four main parts: study and implementation of code tracking loop, study and implementation of carrier tracking loop, ties together these two follow-up to the end that we have one of us out resulting navigation data finally implement complete tracking loop in the JAVA language design mode view, evaluating the input and output to pass it to the Programmable Logic Devices (FPGA).

The implementation of the algorithm on FPGA's programmable logic devices in order to have a receiver with cognitive characteristics which will allow us to simulate other navigation systems without changing hardware devices by updating some settings within the software application Developed.

GPS

Pgina 6

Universidad Nacional del Santa

INDICE
Pag.

DEDICATORIA AGRADECIMIENTO PRESENTACIN RESUMEN

2 3 . 4

. 5

ABSTRACT .. 6 INDICE 7 INTRODUCCIN . 9 CAPITULO I DATOS GENERALES 1. OBJETIVOS ...... 10 1.1. OBJETIVO GENERAL: .. 10 1.2. OBJETIVOS ESPECIFICOS: 10 2. OPERACIONALIZACION DE LAS VARIABLES. 10

CAPITULO II PLANTEAMIENTO DE LA INVESTIGACION 2.1 FORMULACIN DEL PROBLEMA.. 11 2.2 HIPTESIS.. 11 2.3 LIMITACIONES: 11

CAPITULO III MARCO TEORICO 3.1 GPS.. 13 3.2.1. Antecedentes histricos: ..... 13 3.2.2. Caractersticas tcnicas y prestaciones .....15 3.2.3. Evolucin del sistema GPS . 16 3.2 RECEPTOR GPS BASICO ..... 18 3.3 CRITERIOS DE PRESENTACION...... 19

GPS

Pgina 7

Universidad Nacional del Santa

3.4 RESULTADOS E INTERPRETACION: . 20 3.2.1. Algoritmo de DIJKSTRA: ... 20 3.2.2. Resultados de la prueba . 21

CAPITULO IV
DESARROLLO DE LA APLICACIN EN EL LENGUAJE DE PROGRAMACION JAVA VENTANAS DEL PROGRAMA: ... 25 CODIGO DEL PROGRAMA: 26 CONCLUSIONES .. 44 ENLACES...44

GPS

Pgina 8

Universidad Nacional del Santa

INTRODUCCIN
Daremos una descripcin general del sistema GPS y la relacin que podran tener estos con el radio definido por software. Aqu estudiamos una visin general de los receptores de seales GPS implementados en una arquitectura de radio definido por software.

En la actualidad el mtodo ms exacto y confiable para ver la ruta ms radipa de llegar de un punto a otro punto es el GPS. Agregando la tecnologa Java creado bajo estos 5 principios fundamentales:

Debera usar la metodologa de la programacin orientada a objetos. Debera permitir la ejecucin de un mismo programa en mltiples sistemas operativos.

Debera incluir por defecto soporte para trabajo en red. Debera disearse para ejecutar cdigo en sistemas remotos de forma segura. Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++

Unado esto se tiene un sistema diseado en java para poder hacer la prueba del camino mas corto ingresando los puntos de salida y llegada.

GPS

Pgina 9

Universidad Nacional del Santa

CAPITULO I DATOS GENERALES

1. OBJETIVOS 1.1. OBJETIVO GENERAL: Iniciar la prueba de paternidad mediante Sistema De Posicionamiento Global (Gps) haciendo uso de la tecnologa actual como es la tecnologa java, que nospermite agilizar el proceso de dicha prueba de bsqueda del camino mas corto.

1.2. OBJETIVOS ESPECIFICOS: Estimar los posibles caminos segn la informacin de la cadena de distancias (pesos) ingresada por el viajante.

Comprobar cual es la ruta mas sercana entre dos puntos.

Estimar bajo que caractersticas se fundamenta el hecho que atribuye cua es el camino mas cort.

2. OPERACIONALIZACION DE LAS VARIABLES

Variable Independiente: Diseo de un Sistema

- Variable dependiente: Sistema De Posicionamiento Global (Gps)

Variable Interviniente: Tecnologa java y fundamento algoritmo de DIJKSTRA camino minimo

GPS

Pgina 10

Universidad Nacional del Santa

CAPITULO II PLANTEAMIENTO DE LA INVESTIGACION

2.2 FORMULACIN DEL PROBLEMA

EN QUE MEDIDA EL DISEO DE UN SISTEMA PERMITIR AGILIZAR EL POSICIONAMIENTO GLOBAL (GPS), USANDO TECNOLOGIA JAVA?

2.2 HIPTESIS

El diseo de un sistema nos permitir agilizar agilizar el posicionamiento (gps), usando tecnologia java?

global

2.3 LIMITACIONES:

A continuacin nombraremos algunas de las limitaciones:

Para el desarrollo del proyecto no contamos con el apoyo de los Lais, referiendos a sus PCs ya que al acceder no tienen instalado un compilador adecuado para la correcta programacin en java.

Debido a que no solo es el curso de Bioinformatica que llevamos, nos es un tanto limitante el tiempo para poder nutrir ms nuestro proyecto

GPS

Pgina 11

Universidad Nacional del Santa

SISTEMA DE POSICIONAMIEN TO GLOBAL (GPS)

Proyecto de Bioinformatica

GPS

Pgina 12

Universidad Nacional del Santa

CAPITULO III MARCO TEORICO


3.1 GPS: 3.3. Antecedentes histricos: El lanzamiento del satlite espacial estadounidense Vanguard en 1959 puso de manifiesto que la transmisin de seales de radio desde el espacio podra servir para orientarnos y situarnos en la superficie terrestre o, a la inversa, localizar un punto cualquiera en la Tierra.

Los sistemas anteriores de posicionamiento que empleaban estaciones terrestres de A.M. (Amplitud Modulada) cubran un rea mayor que los de UHF (Frecuencias ultracortas), pero no podan determinar con exactitud una posicin debido a las interferencias atmosfricas que afectan a las seales de radio de amplitud modulada y a la propia curvatura de la Tierra que desva las ondas

Por tanto, la nica forma de solucionar este problema era colocando transmisores de radio en el espacio csmico que emitieran constantemente seales codificadas en direccin a la Tierra. De hecho esas seales cubriran un rea mucho mayor que las de A.M., sin introducir muchas interferencias en su recorrido.

Sin embargo, no fue hasta 1993 que el Departamento de Defensa de los Estados Unidos de Amrica, basado en la experiencia recogida del satlite Vanguard (en un principio para uso exclusivamente militar) puso en funcionamiento un sistema de localizacin por satlite conocido por las siglas en ingls GPS(Global Positioning
GPS

System

Sistema

de

Posicionamiento

Global).
Pgina 13

Universidad Nacional del Santa

En sus inicios el propio Departamento de Defensa program errores de clculo codificados en las transmisiones de los satlites GPS para limitarlo solamente a la actividad militar que s contaba con decodificadores para interpretar correctamente las seales, pero a partir de mayo de 2000 esta prctica qued cancelada y hoy en da el sistema GPS se utiliza ampliamente en muchas actividades de la vida civil, aunque no est exento de ser reprogramado de nuevo en caso de cualquier conflicto blico.

Este sistema permite conocer la posicin y la altura a la nos encontramos situados en cualquier punto de la Tierra en todo momento, ya sea que estemos situados en un punto fijo sin desplazarnos, e incluso en movimiento, tanto de da como de noche.

El sistema GPS permite rastrear tambin, en tiempo real, la ubicacin de una persona, animal, vehculo, etc., desde cualquier sitio y prestar auxilio si fuera necesario, con la condicin que estn equipados con un dispositivo que pueda emitir algn tipo de seal, ya sea de radio o telefnica, que permita su localizacin.

La primera prueba exitosa del sistema GPS desde el punto de vista prctico como instrumento de ayuda a la navegacin, la realiz el trasbordador

espacial Discovery en el propio ao que se puso en funcionamiento el sistema. Actualmente los satlites GPS pertenecen a una segunda generacin denominada Block II

GPS

Pgina 14

Universidad Nacional del Santa

3.4.1. Caractersticas tcnicas y prestaciones. El Sistema de Posicionamiento Global (GPS) lo componen: 1. Sistema de satlites: Est formado por 24 unidades con trayectorias sincronizadas para cubrir toda la superficie del globo terrqueo. Ms concretamente, repartidos en 6 planos orbitales de 4 satlites cada uno. La energa elctrica que requieren para su funcionamiento la adquieren a partir de dos paneles compuestos de celdas solares adosados a sus costados. 2. Estaciones terrestres: Envan informacin de control a los satlites para controlar las rbitas y realizar el mantenimiento de toda la constelacin. 3. Terminales receptores: Indican la posicin en la que estn, conocidas tambin como Unidades GPS.

Segmento espacial: Satlites en la constelacin: 24 (4 x 6 rbitas) Altitud: 20,200 km Perodo: 11 hrs 56 min. Inclinacin: 55 (respecto al ecuador terrestre) Vida til: 7.5 aos Segmento de control (estaciones terrestres) Estacin principal: 1 Antena de tierra: 4 Estacin monitora (de seguimiento): Seal de RF Frecuencia portadora: Civil 1575.42 MHz (L1). Utiliza el Cdigo de Adquisicin
GPS Pgina 15

Universidad Nacional del Santa

Aproximado (C/A). Militar 1227,60 MHz (L2). Utiliza el Cdigo de Precisin (P) cifrado. Nivel de potencia de la seal: -160 dBW (en superficie tierra). Polarizacin: circular dextrgira Exactitud Posicin: aproximadamente 15 m (el 95%) Hora: 1 ns Cobertura: mundial Capacidad de usuarios: ilimitada Sistema de coordenadas: Sistema Geodsico Mundial 1984 (WGS84) Centrado en la Tierra, fijo. Integridad: tiempo de notificacin 16 minutos o mayor. NO ES SUFICIENTE PARA LA AVIACIN CIVIL. Disponibilidad: 24 satlites

3.4.2. Evolucin del sistema GPS El GPS est evolucionando hacia un sistema ms slido (GPS III), con una mayor disponibilidad y que reduzca la complejidad de las aumentaciones GPS. Algunas de las mejoras previstas comprenden: Incorporacin de una nueva seal en L2 para uso civil. Adicin de una tercera seal civil (L5): 1176.45 MHz Proteccin y disponibilidad de una de las dos nuevas seales para servicio de Seguridad Para la Vida (SOL). Mejora en la estructura de las seales.

GPS

Pgina 16

Universidad Nacional del Santa

Incremento en la potencia de seal (L5 tendr un nivel de potencia de 154 dB).

Mejora en la precisin (1 5 m). Aumento en el nmero de estaciones monitorizadas: 12 (el doble) Permitir mejor interoperabilidad con la frecuencia L1 de Galileo

El programa GPS III persigue el objetivo de garantizar que el GPS pueda satisfacer requisitos militares y civiles para los prximos 30 aos. Este programa se est desarrollando para utilizar un enfoque en 3 etapas (una de las etapas de transicin es el GPS II); muy flexible, permite cambios futuros y reduce riesgos. El desarrollo de satlites GPS III comenz en 2005, y el primero de ellos estar disponible para su lanzamiento en 2012, con el objetivo de lograr la transicin completa de GPS III en 2017 [44]. Los desafos son los siguientes: Representar los requisitos de usuarios, tanto civiles como militares, en cuanto a GPS. Limitar los requisitos GPS III dentro de los objetivos operacionales Proporcionar flexibilidad que permita cambios futuros para satisfacer requisitos delos usuarios hasta 2030. Proporcionar solidez para la creciente dependencia en la determinacin de posicin y de hora precisa como servicio internacional.

GPS

Pgina 17

Universidad Nacional del Santa

3.2 RECEPTOR GPS BASICO El receptor GPS bsico discutido en esta tesis es el mostrado en la figura anterior. Las seales transmitidas de los satlites GPS son recibidas por la antena. A travs de la cadena de radiofrecuencia (RF) la seal de entrada es amplificada a una amplitud adecuada y la frecuencia es convertida a una frecuencia de salida deseada. Un convertidor analgico a digital (ADC) es usado para digitalizar la seal de salida. La antena, seales de RF, y el ADC es el hardware usado en el receptor.

Despus de que las seales son digitalizadas, el software es usado para su procesamiento, y es por eso que a esta tesis se le da un enfoque de software. La adquisicin significa encontrar la seal de un cierto satlite.

El lazo de seguimiento (marcado en la figura anterior) es usado para encontrar la transicin de la fase de los datos de navegacin, aqu cabe mencionar que el seguimiento es la parte central de esta tesis aunque en algunos captulos se hable en general sobre los receptores GPS basados en software no perdamos de vista que el objetivo es el estudio e implementacin del bloque de seguimiento del receptor de seales GPS. En un receptor convencional, la adquisicin y el seguimiento son realizados por hardware. De la transicin
GPS Pgina 18

Universidad Nacional del Santa

de fase de los datos de navegacin; las subtramas y los datos de navegacin pueden ser obtenidos. Los datos de efemrides y pseudorango.

3.3 CRITERIOS DE PRESENTACION

Hay dos criterios posibles de implementacin. Uno, es una manera simple de seguir el diagrama de flujo de la seal mostrado en la figura anterior. En este criterio se comienza con la estructura de la seal del sistema GPS y los mtodos para procesar la seal para obtener la informacin necesaria. Esta informacin ser usada para calcular las posiciones de los satlites y los pseudorangos. Usando la posicin de los satlites y los pseudorangos, puede ser encontrada la posicin del usuario. En este criterio, la discusin ser simple, de un objetivo a otro. Sin embargo, la desventaja de este criterio es que los lectores no tendrn una idea clara ya que estos pasos son necesarios. Entenderan el concepto de la operacin del GPS solo despus de leer un libro completo sobre GPS.

El otro criterio es comenzar con el concepto bsico del GPS. Este criterio empezara con el concepto bsico de encontrar la posicin del usuario de la posicin satelital. La descripcin de la constelacin satelital ser presentada. La informacin detallada de la rbita del satlite est contenida en los datos GPS. As que para obtener estos datos, la seal GPS debe ser seguida. El cdigo C/A de las seales GPS ser presentado. Cada satlite tiene un nico cdigo C/A. Un receptor puede realizar la adquisicin sobre el cdigo C/A para encontrar la
GPS Pgina 19

Universidad Nacional del Santa

seal. Una vez que el cdigo C/A de un cierto satlite es encontrado, la seal puede ser seguida (seguimiento de cdigo y portadora). Si se realiza un seguimiento correcto, esto ayuda a obtener los datos de navegacin. De estos datos, la posicin del satlite puede ser encontrada. El pseudorango puede ser obtenido comparando 10 el tiempo que un cierto dato llega al receptor. La posicin del usuario puede ser calculado de la posicin satelital y el pseudorango de varios satlites.

Esta tesis toma este segundo criterio para presentar el material debido a que da una clara idea de la funcin del GPS desde el comienzo; no olvidando que en esta tesis adems de que se da esta descripcin detallada del receptor GPS el tema principal es el seguimiento de la seal GPS.

3.4 RESULTADOS E INTERPRETACION: 3.4.1. Algoritmo de DIJKSTRA DIJKSTRA (Grafo G, nodo_fuente s) para u < V[G] hacer distancia[u] = INFINITO padre[u] = NULL distancia[s] = 0 adicionar (cola, (s,distance[s])) mientras que cola no es vaca hacer u = extraer_minimo(cola) para todos v < adyacencia[u] hacer si distancia[v] > distancia[u] + peso (u, v) hacer distancia[v] = distancia[u] + peso (u, v) padre[v] = u
GPS Pgina 20

Universidad Nacional del Santa

adicionar(cola,(v,distance[v]) fin si fin para fin mientras que fin para

3.4.2. Resultados de la prueba: El siguiente ejemplo se desarrollar con el fin de encontrar el camino ms corto desde a hasta z:

Leyenda: Rojo: Aristas y vrtices pertenecientes a la solucin momentnea. Azul: Aristas y vrtices candidatos.

Paso 1 En este primer paso, podemos apreciar que hay tres candidatos: Los vrtices b, c y d. En este caso, hacemos el camino desde el vrtice a, hasta el vrtice d, ya que es el camino ms corto de los tres.

GPS

Pgina 21

Universidad Nacional del Santa

Solucin momentnea: Pas 2 Ahora, vemos que se aade un nuevo candidato, el vrtice e, y el vrtice c, pero esta vez a travs del d. Pero el camino mnimo surge al aadir el vrtice c. Solucin momentnea: Camino: AD Distancia:5

Pas 3

Camino: ADC Distancia:9

En este paso no se aade ningn candidato ms puesto que el ltimo vrtice es el mismo que en el paso anterior. En este caso el camino mnimo hallado es el siguiente:
GPS Pgina 22

Universidad Nacional del Santa

Solucin momentnea: Camino: ADCB Distancia:11

Pas 4 Como podemos comprobar, se han aadido dos candidatos nuevos, los vrtices f y g, ambos a travs del vrtice b. El mnimo camino hallado en todo el grafo hasta ahora es el siguiente:

Solucin momentnea: Camino: ADCBF Distancia:15

Pas 5

GPS

Pgina 23

Universidad Nacional del Santa

En el penltimo paso, vuelve a aparecer otro candidato: el vrtice e, pero esta vez a travs del vrtice f. De todas formas, el camino mnimo vuelve a cambiar para retomar el camino que vena siguiendo en los pasos anteriores: Solucin momentnea:

Camino: ADCBFE Distancia:18

Pas 6 Por fin, llegamos al ltimo paso, en el que slo se aade un candidato, el vrtice z a travs del e. El camino mnimo y final obtenido es nada mas y nada menos k:

Solucin Final: Camino: ADCBFEZ Distancia:23

GPS

Pgina 24

Universidad Nacional del Santa

CAPITULO IV DESARROLLO DE LA APLICACIN EN EL LENGUAJE DE PROGRAMACION JAVA


VENTANAS DEL PROGRAMA Ventana principal del proyecto para hayar la ruta ms corta entre dos puntos:

GPS

Pgina 25

Universidad Nacional del Santa

Ventana con la ruta ms corta desde Sihuas hasta Huarmey:

GPS

Pgina 26

Universidad Nacional del Santa

CODIGO DEL PROGRAMA PAQUETE INTERFAS: 1. Lienso package Interfaz; import TAD.*; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import javax.swing.ImageIcon;

public class Lienzo extends Canvas{ private int[] X,Y; private int tamVertice=20,visitado=-1; private Ellipse2D vertice[]; private Line2D arista[];
GPS Pgina 27

Universidad Nacional del Santa

private Rectangle2D marco; private boolean usarFondo=true; private Grafo grafo; private ImageIcon fondo; private Color color[] = new Color[1]; public Lienzo(int[] X, int Y[],Grafo grafo) { this.X=X; this.Y=Y; this.grafo=grafo; vertice = new Ellipse2D[grafo.MatrizAdyacencia().length]; arista = new Line2D[grafo.MatrizAdyacencia().length]; this.setSize(425, 600); color[0]=Color.BLUE; } @Override public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; marco = new Rectangle2D.Double(0, 0, 424, 599); g2.draw(marco); if(usarFondo) { g2.drawImage(fondo.getImage(), 0, 0, 425, 600, null); } pintarAristas(g2); pintarVertices(g2);//pintarVertices(g2); if(visitado!=-1){ pintarVisitado(g2); } }

private void pintarVertices(Graphics2D g2) { int coloreado[]= new int[grafo.grado().length]; //Pintamos en el Orden Total (Grado y Grado de Error) for(int i = 0; i<coloreado.length; i++) { g2.setColor(color[0]); vertice[i] = new Ellipse2D.Double(X[i],Y[i],tamVertice,tamVertice); g2.fill(vertice[i]); g2.setColor(Color.WHITE); g2.drawString(String.valueOf(i), X[i]+4, Y[i]+15); g2.draw(vertice[i]); } } private void pintarAristas(Graphics2D g2) { for(int i=0; i<grafo.MatrizAdyacencia().length; i++) { int startJ=0; if(grafo.getTipoGrafo()==2){// Grafo No Direccionado: no repite la unin de aristas
GPS Pgina 28

Universidad Nacional del Santa

startJ=i; } for(int j=startJ; j<grafo.MatrizAdyacencia().length; j++) { if(grafo.MatrizAdyacencia()[i][j]==1) { g2.setColor(new Color(35,90,145));//aca se define el color de las aristas arista[i]=new Line2D.Double( X[i]+tamVertice/2,Y[i]+tamVertice/2, X[j]+tamVertice/2,Y[j]+tamVertice/2); g2.draw(arista[i]); g2.setColor(Color.BLACK);//El Color De Los N De Los Pesos g2.drawString(String.valueOf(grafo.MatrizPesos()[i][j]), ((X[i]+X[j])/2)+4, ((Y[i]+Y[j])/2)+15); } } } } private void pintarVisitado(Graphics2D g2) { g2.setColor(Color.WHITE); g2.fill(vertice[visitado]); g2.setColor(Color.BLACK); g2.drawString(String.valueOf(visitado), X[visitado]+4, Y[visitado]+15); g2.draw(vertice[visitado]); g2.setColor(Color.WHITE); visitado=-1; } public void setVisitado(int visitado) { this.visitado=visitado; } public void setFondo(boolean usarFondo,ImageIcon fondo) { this.usarFondo=usarFondo; this.fondo=fondo; } }

2. Matriz package Interfaz; import TAD.Grafo; import java.awt.Color; import java.awt.Component; import java.awt.Font; import javax.swing.JLabel; import javax.swing.JTable;
GPS Pgina 29

Universidad Nacional del Santa

public class Matriz extends javax.swing.JFrame { //private Grafo grafo = new Grafo(); private RenderTabla tModelo = new RenderTabla(); public Matriz(Grafo grafo) { initComponents(); this.setLocationRelativeTo(null); //this.grafo=grafo; formatoTabla(); cargarMatriz(grafo.MatrizAdyacencia()); } public class RenderTabla implements javax.swing.table.TableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { JLabel modelo = new JLabel(); //cada celda tendr el formato del modelo if(value!= null && (row==20 || column==0) ) { modelo.setBackground (new Color(58,65,145)); modelo.setOpaque(true); modelo.setForeground(Color.WHITE);//pintamos en la tabla la enumeraciones } else{ modelo.setForeground(Color.BLACK);//pintamos en la tabala la matriz de adyacencia } modelo.setText((String) value); modelo.setFont(new Font("consolas",1,11)); modelo.setHorizontalAlignment(JLabel.CENTER); return modelo; } } private void formatoTabla() { jTableMatriz.setDefaultRenderer(String.class, tModelo); } private void cargarMatriz(int Matriz[][]) { for(int i=0; i<Matriz.length;i++) {// ingresando la matris a la tabla for(int j=1; j<=Matriz[i].length; j++) { jTableMatriz.setValueAt(String.valueOf(Matriz[i][j-1]), i, j); } }

3. Principal:
GPS Pgina 30

Universidad Nacional del Santa

package Interfaz; import TAD.*; import java.util.Timer; import java.util.TimerTask; import javax.swing.ImageIcon;

public class Principal extends javax.swing.JFrame { String mensaje=""; private Grafo grafo = new Grafo(); private String provincia[] = {"Santa","Casma","Huaylas","Pomabamba","Sihuas", "Corongo","Pallasca","Yungay","Carhuas","Asuncin", "M. Luzuriaga","C. F. Fitzcarrald","Antonio Raimondi", "Huaraz","Aija","Huarmey","Recuay","Huari", "Bolognesi","Ocros"}; private int X[] = {79,98,176,264,241,167,162,204,221,270,299,308,348,202,219,158,285,337,32 5,260}; private int Y[] = {196,322,201,159,100,117,52,247,282,255,187,224,247,342,384,458,406,315,4 66,532}; private Lienzo lienzo = new Lienzo(X,Y,grafo); private boolean mostrarMapa=true; private Pila pila=new Pila(X.length); private Timer timer; private ImageIcon ancash = new ImageIcon(getClass().getResource("fondo.png")); int desde, hasta; public Principal() { initComponents(); this.setLocationRelativeTo(null); cargarTablas(); dibujar(); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { bGMatriz = new javax.swing.ButtonGroup(); jLabel1 = new javax.swing.JLabel(); jPanelSettings = new javax.swing.JPanel(); jCBMapa = new javax.swing.JCheckBox(); jButtonMatriz = new javax.swing.JButton(); jPanelProvincia = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane();
GPS Pgina 31

Universidad Nacional del Santa

jTableProvincia = new javax.swing.JTable(); jScrollPane2 = new javax.swing.JScrollPane(); jTableDestino = new javax.swing.JTable(); jScrollPane3 = new javax.swing.JScrollPane(); jTableIndice = new javax.swing.JTable(); jButton1 = new javax.swing.JButton(); jLPLienzo = new javax.swing.JLayeredPane(); jLabel2 = new javax.swing.JLabel(); jScrollPane4 = new javax.swing.JScrollPane(); txtarea1 = new javax.swing.JTextArea();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Sistema de GPS"); setResizable(false); jLabel1.setFont(new java.awt.Font("Consolas", 0, 12)); jLabel1.setForeground(new java.awt.Color(0, 102, 153)); jLabel1.setText("ANCASH - PER");

jPanelSettings.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jCBMapa.setSelected(true); jCBMapa.setText("Mostrar Mapa"); jCBMapa.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCBMapaActionPerformed(evt); } }); jButtonMatriz.setText("Mostrar Matriz"); jButtonMatriz.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonMatrizActionPerformed(evt); } }); javax.swing.GroupLayout jPanelSettingsLayout = new javax.swing.GroupLayout(jPanelSettings); jPanelSettings.setLayout(jPanelSettingsLayout); jPanelSettingsLayout.setHorizontalGroup( jPanelSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment .LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelSettingsLayout.createSequentialGroup() .addGap(50, 50, 50) .addComponent(jCBMapa) .addGap(35, 35, 35) .addComponent(jButtonMatriz)
GPS Pgina 32

Universidad Nacional del Santa

.addContainerGap(46, Short.MAX_VALUE)) ); jPanelSettingsLayout.setVerticalGroup( jPanelSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment .LEADING) .addGroup(jPanelSettingsLayout.createParallelGroup(javax.swing.GroupLayout .Alignment.BASELINE) .addComponent(jButtonMatriz) .addComponent(jCBMapa)) );

jPanelProvincia.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jTableProvincia.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null} }, new String [] { "PARTIDA" } ){ Class[] types = new Class [] { java.lang.String.class }; boolean[] canEdit = new boolean [] { false }; public Class getColumnClass(int columnIndex) {
GPS Pgina 33

Universidad Nacional del Santa

return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); jScrollPane1.setViewportView(jTableProvincia); jTableProvincia.getColumnModel().getColumn(0).setResizable(false); jTableDestino.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null} }, new String [] { "DESTINO" } ){ Class[] types = new Class [] { java.lang.String.class }; boolean[] canEdit = new boolean [] { false }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; }
GPS Pgina 34

Universidad Nacional del Santa

}); jScrollPane2.setViewportView(jTableDestino); jTableDestino.getColumnModel().getColumn(0).setResizable(false); jTableIndice.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null}, {null} }, new String [] { "N" } ){ Class[] types = new Class [] { java.lang.String.class }; boolean[] canEdit = new boolean [] { false }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); jScrollPane3.setViewportView(jTableIndice); jTableIndice.getColumnModel().getColumn(0).setResizable(false); jButton1.setText("Recorrer"); jButton1.addActionListener(new java.awt.event.ActionListener() {
GPS Pgina 35

Universidad Nacional del Santa

public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); javax.swing.GroupLayout jPanelProvinciaLayout = new javax.swing.GroupLayout(jPanelProvincia); jPanelProvincia.setLayout(jPanelProvinciaLayout); jPanelProvinciaLayout.setHorizontalGroup( jPanelProvinciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignme nt.LEADING) .addGroup(jPanelProvinciaLayout.createSequentialGroup() .addGroup(jPanelProvinciaLayout.createParallelGroup(javax.swing.GroupLayo ut.Alignment.LEADING) .addGroup(jPanelProvinciaLayout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanelProvinciaLayout.createSequentialGroup() .addGap(125, 125, 125) .addComponent(jButton1))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanelProvinciaLayout.setVerticalGroup( jPanelProvinciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignme nt.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelProvinciaLayout.createSequentialGroup() .addContainerGap(21, Short.MAX_VALUE) .addGroup(jPanelProvinciaLayout.createParallelGroup(javax.swing.GroupLayo ut.Alignment.TRAILING) .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 345, javax.swing.GroupLayout.PREFERRED_SIZE)
GPS Pgina 36

Universidad Nacional del Santa

.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 345, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 345, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE D) .addComponent(jButton1) .addContainerGap()) ); jLPLienzo.setBackground(new java.awt.Color(230, 245, 249)); jLPLienzo.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jLPLienzo.setFocusCycleRoot(true); jLabel2.setFont(new java.awt.Font("Tahoma", 1, 18)); jLabel2.setForeground(new java.awt.Color(0, 102, 153)); jLabel2.setText("GPS"); txtarea1.setColumns(20); txtarea1.setRows(5); jScrollPane4.setViewportView(txtarea1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE ADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE ADING) .addGroup(layout.createSequentialGroup() .addGap(55, 55, 55) .addComponent(jLabel1) .addGap(253, 253, 253)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(52, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE ADING, false) .addComponent(jPanelSettings, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
GPS Pgina 37

Universidad Nacional del Santa

.addComponent(jPanelProvincia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane4)) .addGap(18, 18, 18))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel2) .addGap(184, 184, 184))) .addComponent(jLPLienzo, javax.swing.GroupLayout.PREFERRED_SIZE, 425, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(39, 39, 39)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TR AILING, false) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanelProvincia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jPanelSettings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE D) .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(3, 3, 3)) .addComponent(jLPLienzo, javax.swing.GroupLayout.PREFERRED_SIZE, 600, javax.swing.GroupLayout.PREFERRED_SIZE))
GPS Pgina 38

Universidad Nacional del Santa

.addContainerGap(31, Short.MAX_VALUE)) ); pack(); }// </editor-fold> // <editor-fold defaultstate="collapsed" desc=" Poner las provincias en la tabla "> private void cargarTablas() { for(int i=0; i<provincia.length; i++) { jTableIndice.setValueAt(String.valueOf(i),i,0); jTableProvincia.setValueAt(provincia[i],i,0); jTableDestino.setValueAt(provincia[i],i,0); } } // </editor-fold> private void jCBMapaActionPerformed(java.awt.event.ActionEvent evt) { mostrarMapa=!mostrarMapa; lienzo.setFondo(mostrarMapa, ancash); lienzo.repaint(); } //para que prenda el foco con la propiedad time private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { desde =jTableProvincia.getSelectedRow(); hasta = jTableDestino.getSelectedRow(); if(desde!=-1 && hasta != -1) { recorrerCaminoMinimo(desde,hasta); timer = new Timer(); timer.purge(); timer.schedule(new Recorrer(),0,1500); } } private void jButtonMatrizActionPerformed(java.awt.event.ActionEvent evt) { Matriz ventanaMatriz = new Matriz(grafo); ventanaMatriz.setVisible(true); } class Recorrer extends TimerTask { @Override public void run() { if(!pila.Vacia()) { lienzo.setVisitado(Integer.parseInt(pila.getDatoTope())); lienzo.repaint(); pila.Sacar(); mensaje+=pila.getDatoTope() +" - "; }
GPS Pgina 39

Universidad Nacional del Santa

else { timer.cancel(); } txtarea1.setText("Camino mas rapido para llegar de "+ provincia[desde]+ " a "+provincia[hasta]+":\n"+" "+desde+" - "+mensaje); } } public void dibujar() { lienzo.setFondo(mostrarMapa, ancash); jLPLienzo.add(lienzo, new Integer(2)); } private void recorrerCaminoMinimo(int desde, int hasta) { int caminoMinimo=grafo.MatrizCaminosMinimos()[desde][hasta]; int ultimo=hasta; pila.Meter(String.valueOf(ultimo)); while(ultimo!=desde) { for(int i=0; i<grafo.MatrizAdyacencia().length; i++) { if(grafo.MatrizAdyacencia()[i][ultimo]==1) { if(caminoMinimo - grafo.MatrizPesos()[i][ultimo]== grafo.MatrizCaminosMinimos()[desde][i]) { caminoMinimo = grafo.MatrizCaminosMinimos()[desde][i]; ultimo = i; pila.Meter(String.valueOf(ultimo)); } } } } } PAQUETE TAD: 1. GRAFO package TAD; public class Grafo { private int tipoGrafo=2; String mensajegrafo=""; private int grado[],gradoError[]; private int A[][]={ //Matriz de Adyacencia {0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0}, {1,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, {0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0},
GPS Pgina 40

Universidad Nacional del Santa

{1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0}, {0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0}, {0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0}, {0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0}, {0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0}, {0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,0,1,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0} }; private int W[][]={ //Matriz de Pesos {0,2,4,0,0,1,3,6,0,0,0,0,0,0,0,0,0,0,0,0}, {5,0,0,0,0,0,0,8,0,0,0,0,0,11,0,13,0,0,0,0}, {16,0,0,14,19,13,0,20,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,18,0,9,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, {0,0,2,1,0,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,33,0,41,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,0,0,7,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {8,3,29,0,0,0,0,0,14,36,8,15,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,17,0,9,0,0,0,3,0,0,0,5,0,0}, {0,0,0,0,0,0,0,14,2,0,0,1,0,0,0,0,0,7,0,0}, {0,0,0,9,0,0,0,2,0,0,0,7,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,18,0,19,7,0,6,0,0,0,0,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,9,0,0}, {0,22,0,0,0,0,0,47,6,0,0,0,0,0,28,4,8,3,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,8,9,0,0,0}, {0,20,0,0,0,0,0,0,0,0,0,0,0,4,8,0,9,0,23,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,5,0,3,1,0}, {0,0,0,0,0,0,0,0,7,32,0,14,2,17,0,0,1,0,5,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,7,4,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,272,0} };

public int[][] MatrizAdyacencia() { return A; } public int[][] MatrizPesos() { return W; } public int getTipoGrafo() { return tipoGrafo; }
GPS Pgina 41

Universidad Nacional del Santa

public int[] grado() { grado = new int[A.length]; for(int i=0; i<A.length; i++){ int cont=0; for(int j=0; j<A[i].length; j++) { if(A[i][j]==1){ cont++; } } grado[i]=cont; } return grado; } public int[] gradoError() { gradoError = new int[A.length]; for(int i=0; i<A.length; i++) { int cont = 0; if(grado[i]<3){ gradoError[i]=grado[i]; }else { for(int j=0; j<A.length; j++) { if(A[i][j]==1) if(grado[j]>=grado[i]) cont++; } gradoError[i]=grado[i]+cont; } } return gradoError; } // <editor-fold defaultstate="collapsed" desc=" Algoritmo de Dijkstra "> public int[][] MatrizCaminosMinimos() { int Q[][] = new int [W.length][W.length]; //Matriz de Caminos Mnimos for(int i=0; i<W.length; i++){ for(int j=0; j<W[i].length; j++) { if(W[i][j]==0){ Q[i][j]=999; }else{ Q[i][j]=W[i][j]; } } } for(int k=0; k<A.length; k++) { for(int i=0; i<A.length; i++) { for(int j=0; j<A[i].length; j++) { if(getTipoGrafo()==2 && i==j){ Q[i][j]=0;
GPS Pgina 42

Universidad Nacional del Santa

}else { Q[i][j]=Math.min(Q[i][j], Q[i][k]+Q[k][j]) ; } } } } return Q; } // </editor-fold> } 2. PILA package TAD; public class Pila { String strPila[]; int tope; public Pila(int tamPila) { crearPila(tamPila); } public void crearPila(int tamPila) { strPila = new String[tamPila]; setTope(-1); } public void setTope(int tope) { this.tope=tope; } public int getTope() { return tope; } public String Meter(String valor) { if(Llena()) { return "OVERFLOW"; } else { setTope(getTope()+1); strPila[getTope()]=valor; return "PILA"; } } public String Sacar() { if(Vacia()) { return "UNDERFLOW";
GPS Pgina 43

Universidad Nacional del Santa

} else { setTope(getTope()-1); return "PILA"; } } public boolean Vacia() { if(getTope()==-1){ return true; }else{ return false; } } public boolean Llena() { if(getTope()==strPila.length-1) { return true; }else { return false; } } //devuelve el dato que se encuentra en la cima public String getDatoTope() { return strPila[getTope()]; } }

CONCLUSIONES
Se aprovecho la tecnologa actual como es la tecnologa java para el desarrollo de la la ruta mas corta con el sistema GPS
GPS Pgina 44

Universidad Nacional del Santa

La importancia de este tema es para ayudar a agilizar la manera de llegar de un punto A hasta B buscando la ruta mas corta.

Desarrollar nuestro sentido de abstraccin de datos de las muestras para la ejecucin correcta y eficiente obtencin de resultados

Considerar que la tecnologa java es aplicable a muchos campos para demostrar un botn, es decir este proyecto de la prueba del GPS.

Se configur de modo grafico el programa con el objetivo de tener mayor visualizacin

ENLACES DE INTERNET

http://www.asifunciona.com/electronica/af_gps/af_gps_8.htm http://eia.unex.es/EIIAA/GPS/GPS%20avanzado.pdf

GPS

Pgina 45

Вам также может понравиться