Escolar Documentos
Profissional Documentos
Cultura Documentos
PROYECTO FINAL
Algoritmo para programar una cartera de cálculos perteneciente a un levantamiento por radiación
simple.
RESUMEN ..................................................................................................................................... 4
INTRODUCCIÓN .......................................................................................................................... 5
OBJETIVO GENERAL .................................................................................................................. 6
OBJETIVOS ESPECIFICOS.......................................................................................................... 6
MARCO TEÓRICO........................................................................................................................ 7
TOPOGRAFÍA ............................................................................................................................... 7
LEVANTAMIENTO TOPOGRÁFICO ......................................................................................... 7
LEVANTAMIENTO POR RADIACIÓN (SIMPLE) .................................................................... 7
SOFTWARE ................................................................................................................................... 8
Software de sistema ..................................................................................................................... 8
Software de aplicación ................................................................................................................ 8
PROGRAMACIÓN ........................................................................................................................ 8
LENGUAJES .................................................................................................................................. 8
Lenguaje Maquina ....................................................................................................................... 8
Lenguaje de alto nivel ................................................................................................................. 9
ESTADO DE ARTE ..................................................................................................................... 11
SURGIMIENTO DE JAVA ......................................................................................................... 11
Software de enseres domésticos ................................................................................................ 11
World Wide Web ...................................................................................................................... 11
JAVA EN LA ACTUALIDAD .................................................................................................... 13
Características ........................................................................................................................... 13
Instalación ................................................................................................................................. 14
Diversos programas ................................................................................................................... 14
Actualizaciones ......................................................................................................................... 14
ECLIPSE, SU ENTORNO DE DESARROLLO .......................................................................... 17
CODIGO ABIERTO EN ECLIPSE.............................................................................................. 17
BUCLE FOR EN JAVA (ECLIPSE) ............................................................................................ 17
Sintaxis del ciclo “For” en JAVA ............................................................................................. 18
METODOLOGIA ......................................................................................................................... 19
Algoritmo: Diagrama de flujo ................................................................................................... 19
2
Explicación del algoritmo ............................................................................................................. 21
ANÁLISIS DE RESULTADOS .................................................................................................. 23
CONCLUSIONES ........................................................................................................................ 24
RECOMENDACIONES ............................................................................................................... 25
BIBLIOGRAFÍA .......................................................................................................................... 26
ANEXOS ...................................................................................................................................... 27
TABLA DE ILUSTRACIONES
ILUSTRACIÓN 1. EXPLICACIÓN GRÁFICA DE UN LEVANTAMIENTO POR RADIACIÓN SIMPLE. ............ 7
ILUSTRACIÓN 2. PROCESO DE TRANSFORMACIÓN DE UN ALGORITMO A UN PROGRAMA
EJECUTABLE. IMAGEN BASADA EN AGUILAR, L. (2008) ............................................................ 9
TABLA DE TABLAS
TABLA 1.SIMILITUD QUE POSEEN ALGUNOS LENGUAJES PARA ESCRIBIR LA PALABRA "HOLA".
TABLA TOMADA DE ZAPATA OSPINA, C. (2006) ....................................................................... 9
TABLA 2. HISTORIA DEL SOFTWARE TOMADO DE ZAPATA OSPINA, C. (2006) ................................ 12
TABLA 3. ACTUALIZACIONES 2011-2018 DE LA VERSIÓN 2.0 Y 8.0 DE JAVA ................................. 15
3
RESUMEN
El presente proyecto pretende exponer el proceso de conceptualización previo que se debe tener
al interactuar con un lenguaje de programación como lo es Java-Eclipse concibiendo un
programa propio posteriormente al esquematizar un procedimiento de una cartera de cálculo de
un levantamiento por radiación simple directamente en el programa con el lenguaje de
programación respectivo cuya finalidad ha sido implementar los conocimientos de la interfaz
adquiridos en clase y explorados autodidactamente.
Palabras Clave: Lenguaje de programación, Java, Eclipse, Software.
4
INTRODUCCIÓN
La información consolidada a continuación expone la tecnología base de Java que por medio de
un software llamado eclipse es posible desarrollar un código en lenguaje de programación
permitiendo resolver los cálculos pertinentes de una cartera de cálculo del levantamiento
topográfico (planimetrico) por radiación simple. Código en el cual se puede ingresar cualquier
valor numérico correspondiente a una radiación simple y es calculado debidamente, ya que está
destinado para tal función convirtiéndose en el objetivo primordial del presente proyecto
El código establecido para tal fin permite calcular los ángulos, azimut, las proyecciones y
finalmente las coordenadas del terreno a levantar, todo esto desarrollado por medio de librerías
de Java, algunas de ellas aplicadas en clase y otras indagadas e investigas para su cometido para
con el proyecto y la cartera de cálculo.
Es posible hacer hincapié en Java como herramienta importante para el curso de Lógica de
programación que sin él no se hubiese podido elaborar tal código ni conocer la importancia que
posee Java como líder mundial de plataformas virtuales a nivel de los programadores de
software. Por lo visto, se pudo demostrar la sencillez y facilidad en la que trabaja Java teniendo
conocimientos básicos previos enfocado en cualquier parte de la población que quiera ser parte
del mundo de la programación.
La carrera de Ingeniería topográfica fue el enfoque principal utilizado para crear un programa
aplicado directamente a la esta carrera por tema de elección de cada quien.
5
OBJETIVO GENERAL
OBJETIVOS ESPECIFICOS
6
MARCO TEÓRICO
TOPOGRAFÍA
LEVANTAMIENTO TOPOGRÁFICO
Los levantamientos proporcionan información detallada del terreno obteniendo detalles como la
ubicación de inclinaciones y elementos artificiales o naturales. Gracias a la información obtenida
se realiza la representación gráfica de terrenos y objetos por medio de cálculos de áreas y
volúmenes.
Según Rincón Villalba, M.,Vargas Vargas W & Vergara González, C. (2012) autores del libro
“Planimetría” se considera un levantamiento por radiación, la toma de detalles desde un mismo
punto llamado centro de radiación o vértice, para cada uno de los detalles se mide distancia y
ángulo. (A partir de una línea de referencia).
Para cada uno de los detalles es necesario obtener el ángulo o dirección comprendida entre la
norte y el punto, observado desde el vértice o centro, que como es tomado a partir de la norte en
topografía se denomina azimut, y la distancia desde el punto centro a cada uno de los detalles.
7
La siguiente sección corresponde al campo de Java y el lenguaje de programación “ECLIPSE”:
SOFTWARE
Tal como se conoce desde el nacimiento de las computadoras, el Hardware es la parte física y
tangible del mismo, es decir, todas los elementos que integran al computador tal como el teclado,
la pantalla, CPU, etc. Por lo tanto, es posible inferir que el Software es el componente digital de
la computadora como lo son los programas.
Software de sistema
El software del sistema es un conjunto de programas indispensables que gestiona los recursos de
la computadora. Estos programas son el sistema operativo y los compiladores/ interpretes
conocidos como los lenguajes de programación.
Software de aplicación
PROGRAMACIÓN
LENGUAJES
Lenguaje Maquina
El lenguaje maquina es el idioma nativo del computador desde su naturaleza. Puede oscilar
entorno a dos estados 1 (encendido) y 0 (apagado). Por lo tanto la computadora genera cadenas
extensas de número 0 y 1 más conocidos como los números binarios o bits para generar
8
imágenes de internet, leer correos electrónicos, abrir redes sociales y simples búsquedas por
medio del sistema operativo.
Los programadores son los diseñadores y escritores de programas. El procedimiento de traducir
un algoritmo en seudocódigos, es decir, la representación textual de un algoritmo en forma de
sintaxis, a un lenguaje de programación se denomina codificación y tal algoritmo escrito en un
lenguaje de programación se denomina código fuente. Por lo tanto los programas que traducen el
código fuente escrito en un lenguaje de programación a lenguaje maquina adquieren el nombre
de traductores, tales programas como Java y C++.
Traductor/c
ompilador
Lenguaje Maquina
(Programa
ejecutable)
El lenguaje de alto nivel es más fácil y cercano a los usuarios por su estructura gramatical cada
vez más próxima a la realidad del hombre.
Tabla 1.Similitud que poseen algunos lenguajes para escribir la palabra "Hola". Tabla tomada de
Zapata Ospina, C. (2006)
9
EXPRESIÓN PARA
LENGUAJE
IMPRIMIR
Lenguaje
escribir “hola”
algorítmico
C print(“hola”);
C++ cout>>“hola”;
Java System.out.print(“hola”);
Pascal Write(“hola”);
Basic print (“hola”)
10
ESTADO DE ARTE
Java es la tecnología base usada para el desarrollo de aplicaciones de sitios web y conocido a
manera de lenguaje de programación orientado a objetos, posee una cobertura cercana a la
mayoría de aplicaciones existentes globalmente. Java brinda la oportunidad de diseñar software
por lo que puede ser utilizada innatamente en diferentes plataformas virtuales.
Su estilo propio y sencillo se convierte en uno de los tipos de lenguajes con más desarrolladores
en todo el mundo, alrededor de 9 millones de personas, reduciendo su complejidad y permitiendo
dar a conocedores la oportunidad de emplear esta herramienta adaptable a las necesidades
humanas creando una comunicación universal y a los no conocedores sumergirse en este nuevo
mundo de la interfaz sin complicaciones.
SURGIMIENTO DE JAVA
Anteriormente, sobre los años noventa, tener aparatos domésticos inteligentes se consideraba el
último avance de la tecnología, tal como cafeteras comandadas desde un computador o un
televisor controlado desde un dispositivo. En 1991, SunMicrosystem fundo un equipo de
investigación para trabajar en un “proyecto verde” cuya finalidad era crear enseres domésticos
inteligentes.
La inteligencia domestica radicaba en tener un Software portátil, Sun planeo la utilización de
C++ para crear estos enseres, sin embargo, se dieron cuenta que C++ no era lo suficientemente
portátil por lo que decidieron crear su propio lenguaje de programación y realizar con este
software los dispositivos del hogar. Les gusto el nombre de “Java” mientras los empleados de
Sun descansaban en una café local porque la cafeína tiene un papel significativo en las vidas de
los desarrolladores de software.
Sucedió que el mercado de domésticos inteligentes no dio tanto fruto como se esperaba, casi
detiene la marcha del proyecto hasta que la World Wide Web los hizo famosos ala hacer popular
el nuevo lenguaje de programación dándose cuenta que la Web le podría dar demanda a Java. En
1995 con el apoyo de Netscape que era el navegador más conocido en ese momento se aliaron
dando un crecimiento que ha venido en aumento desde entonces.
Java fue capaz de brindarle mayor funcionalidad a las páginas planas de la web ya que eran
capaces de leer y procesar datos del usuario proporcionando una experiencia interactiva más
placentera.
11
Tabla 2. Historia del software tomado de Zapata Ospina, C. (2006)
Anteriormente SunMicrosystem ,
actualmente Oracle
Tras ya haber definido las bases principales de un lenguaje de programación tal como lo es Java,
que es el programa que se ha venido escudriñando en la duración del curso actual, por lo mismo
es posible tener un enfoque directamente en Java.
12
JAVA EN LA ACTUALIDAD
Hoy en día, los programadores utilizan Java en muchos ambientes diferentes. Existen los applets,
que son programas de Java en las páginas Web. Gracias a los applets inicialmente ayuda a Java a
posicionarse como un líder mundial en lenguajes de programación, los applets aún son conocidos
y muy usados, sin embargo Java ha venido desarrollando otros tipos de programa superando a los
mismos applets en términos de popularidad.
Java se puede evidenciar en diversos aspectos según Java, recuperado de:
https://www.java.com/es/about/
Es de descarga gratuita ofreciendo la oportunidad de disposición para todo el que quiera acceder
a ella, permite mejorar la conectividad del mundo progresando en el servicio, la productividad, la
comunicación y colaboración con el usuario final. Fue diseñado para dar un elevado rendimiento
en las plataformas informáticas y ha sido logrado con tal éxito que la mayoría de los
desarrolladores eligen Java.
Características
Algunas de las características nombradas por la web oficial de Java (Java, recuperado de:
https://www.java.com/es/about/) son:
Escribir software en una plataforma y ejecutarla virtualmente en otra
Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web
disponibles
Desarrollar aplicaciones de servidor para foros en línea, almacenes, encuestas,
procesamiento de formularios HTML y mucho más
Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o
servicios con un gran nivel de personalización
13
Escribir aplicaciones potentes y eficaces para teléfonos móviles, procesadores remotos,
microcontroladores, módulos inalámbricos, sensores y prácticamente cualquier otro
dispositivo electrónico.
Instalación
Un dato importante acerca de Java es que no es lo mismo que JavaScript, está que es una
tecnología sencilla creada para usar páginas web ejecutándose en el explorador nada más.
Diversos programas
Un applet es un programa que está contenido en una página web. Un servlet es un programa que
auxilia a una página web pero se ejecuta en una computadora diferente a donde está la página
web. Un JavaServer Page (JSP) es una página Web que tiene fragmentos de un programa Java.
Java Micro Edicion (ME) es un programa java que se ejecuta en un número reducido de
dispositivos. Un java Edición Estanda (SE) es un programa que se ejecuta en una computadora
estándar.
Actualizaciones
14
La última versión disponible es compatible con las versiones anteriores. Sin embargo, algunas
aplicaciones Java pueden indicar que dependen de una versión específica y que, por tanto, si no
tiene esta versión instalada, es posible que no se ejecuten correctamente.
A continuación se expondrá una tabla acerca de las últimas actualizaciones de la versión 7.0 y
.8.0 que posee Java, cada vez aumentando su nivel de seguridad y ejecución.
Tabla 3.Actualizaciones 2011-2018 de la versión 2.0 y 8.0 de java
15
Java 7 Update 75 CPU
Java 7 Update 76 PSU (OTN)
Java 8 Update 25 CPU
Java 7 Update 71 CPU 14 de octubre de 2014
Java 7 Update 72 PSU (OTN)
Actualización limitada de Java 8 Update 20
19 de agosto de 2014
(OTN)
Actualización limitada de Java 7 Update 67 4 de agosto de 2014
Java 8 Update 25 CPU (OTN)
15 de julio de 2014
Java 7 Update 71 CPU
Actualización limitada de Java 7 Update 60 28 de mayo de 2014
Java 8 Update 5 CPU (OTN)
15 de abril de 2014
Java 7 Update 55 CPU
Java versión 8 (OTN) 18 de marzo de 2014
Java 7 Update 51 CPU 14 de enero de 2014
Java 7 Update 45 CPU 15 de octubre de 2013
Actualización limitada de Java 7 Update 40 10 de septiembre de 2013
Java 7 Update 11 CPU2 13 de enero de 2013
Actualización limitada de Java 7 Update 10 11 de diciembre de 2012
Java 7 Update 9 CPU 16 de octubre de 2012
Java 7 Update 7 - Actualización especial1 30 de agosto de 2012
Actualización limitada de Java 7 Update 6 14 de agosto de 2012
Java 7 Update 5 CPU 12 de junio de 2012
Actualización limitada de Java 7 Update 4 26 de abril de 2012
Actualización limitada de Java 7 Update 2 12 de diciembre de 2011
Java 7 Update 1 CPU 18 de octubre de 2011
Versión Java 7 28 de julio 2011
16
ECLIPSE, SU ENTORNO DE DESARROLLO
Eclipse es una plataforma de desarrollo OPEN SOURCE (código abierto) basada en Java. Es
simplemente un marco de trabajo y un conjunto de servicios para construir un entorno de
desarrollo de los componentes de entrada Afortunadamente, Eclipse tiene un conjunto de
complementos, incluidas las Herramientas de Desarrollo de Java (JDT).
Dado que todo en Eclipse es un complemento, todos los desarrolladores de herramientas tienen
un campo de juego de nivel para ofrecer extensiones a Eclipse y para proporcionar un entorno de
desarrollo integrado y unificado para los usuarios.
Esta paridad y consistencia no está limitada a las herramientas de desarrollo de Java. Aunque
Eclipse se escribe en el lenguaje Java, su uso no se limita al lenguaje Java. Por ejemplo, los
complementos se encuentran disponibles o planificados para incluir soporte para los lenguajes de
programación como C/C++ y COBOL.
El software de código abierto es un software lanzado con una licencia que pretende asegurarse de
que se les otorguen ciertos derechos a los usuarios. Por supuesto, el derecho principal
directamente es que el código fuente debe estar disponible, entonces los usuarios tienen la
libertad de modificar y de re distribuir el software. Esta protección de los derechos de los
usuarios se alcanza con un dispositivo denominado copyleft: la licencia del software solicita la
protección del derecho de autor y prohíbe la distribución, a menos que el usuario tenga esos
derechos. El copyleft también requiere que cualquier software redistribuido sea cubierto por la
misma licencia.
Los ciclos o bucles son una estructura que nos permite repetir una o varias acciones una
cantidad definida de veces, por lo tanto se repiten hasta cumplir una condición ya establecida con
anterioridad.
Entre los ciclos más conocidos se encuentra el for (o ciclo para) permite ejecutar una o varias
líneas del código cíclicamente, por lo tanto es necesario tener un valor inicial y otro final ya que
se ejerce cierto control en las repeticiones y hacer uso de las posiciones.
17
Sintaxis del ciclo “For” en JAVA
Este bucle se divide en tres componentes según Dean,J&Dean, R (2009) autores del libro
“Introducción a la programación con Java” en la inicialización, condición y actualización de
componentes.
1. Inicialización de componente Antes de que se ejecute la primera instrucción dentro del ciclo,
ejecutar la inicialización del componente.
2. Condición del componente Antes de que se realice cualquier iteración, evaluar la condición
del componente:
• Si la condición es verdadera, ejecutar el cuerpo del ciclo.
• Si la condición es falsa, terminar el ciclo (pasar a la sentencia debajo del paréntesis de llave de
cierre del ciclo).
3. Actualización del componente Después de cada ejecución dentro del cuerpo del ciclo, volver
al encabezado del ciclo y ejecutar la actualización del componente. Posteriormente, volver a
verificar la continuación de la condición del segundo componente, y si se satisface, ir al cuerpo
del ciclo otra vez.
18
METODOLOGIA
INICIO
Abrir Eclipse
Crear proyecto
Establecer clase
dentro del proyecto
Importar librería
Declarar variable
Definir variables
19
A
Hallar coordenadas N y E
Imprimir resultados
FIN
20
Explicación del algoritmo
Inicio
1. Abrir la plataforma de programación “eclipse”
a. Crear un proyecto en Java.
b. Establecer una clase dentro del proyecto
2. Importar librería “java.util.Scanner” el programa usara la clase scanner de java
del paquete java.util.
3. Declarar variable “Scanner entrada = new Scanner (System.in)” especifica el
nombre y tipo de variable.
4. Definir los diferentes tipos de variables
Int n;
Double no, es;
Double A= 0; (ángulos)
Double D = 0; (distancias)
Double PNS = 0; (proyecciones N-S)
Double PEW = 0; (proyecciones E-W)
Double CN = 0; (Coordenada Norte)
Double CE = 0; (Coordenada Este)
Long
9. Hacer uso del bucle “for (iniciación; condición; actualización)”, se usa para llenar
la cantidad de puntos que posee el levantamiento.
EW: PEW=D*(Math.sin(A*Math.PI/180));
21
13. Hallar las coordenadas de cada uno de los puntos, haciendo uso de las
proyecciones y de las coordenadas del punto en el cual se armo el equipo.
N: CN=no+PNS;
E: CE=es+PEW;
Fin
22
ANÁLISIS DE RESULTADOS
El resultado del código al “correrlo” fue el esperado, se ejecutó exitosamente por lo tanto el
objetivo principal del proyecto cumplió su cometido. Se considera que es un programa pertinente
para cualquier persona, ya sea estudiante en proceso de formación, profesional u operario que se
desempeñe en el área laboral de la topografía o como alguna otra personal del común que quiera
realizar el cálculo de la cartera por medio del código.
El programa cumple la función de economizador de pasos convirtiendo más fácil el proceso de
cálculo incluso más rápido que una programación de Excel.
El programa en primera instancia solicitará las coordenadas de partida donde se armó el equipo,
es decir, NORTE Y ESTE, estas coordenadas pueden ser georreferenciadas por lo tanto son
verdaderas o si se desea arbitrarias.
Luego necesitará la cantidad de detalles tomados (el número específico) y posteriormente se
pedirá que ingrese el valor de cada ángulo en números decimales y su respectiva distancia
tomada en campo e inmediatamente calculará: Así realizará el cálculo correcto rápido y
eficazmente de cada detalle ingresado.
Ilustración 4. Parte tomada del código para explicar cómo se imprimen los resultados en el
programa
23
CONCLUSIONES
Por medio de Java, fue posible programar una cartera de cálculos perteneciente a una radiación
simple, de esta forma se presenta a esta interfaz como una herramienta sumamente útil en
cualquier campo, pues permite desarrollar algoritmos básicos y complejos de programación que
sin duda alguna facilitan cualquier tipo de proceso, en este proyecto el lenguaje de Java es
aplicado hacia la topografía.
Cada uno de los conceptos vistos durante el curso de lógica de programación fue fundamental y
de vital importancia para llevar a cabo dicho proyecto; por otra parte se lograron habilidades
mentales lógicas necesarias, pues como el nombre del curso lo indica, la programación es lógica,
independiente de algún tipo de lenguaje de programación.
24
RECOMENDACIONES
25
BIBLIOGRAFÍA
26
ANEXOS
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("\t\t\t\t\tBIENVENIDO\n\n");
System.out.print("ESTE PROGRAMA CALCULARA LAS COODENADAS
RECTANGULARES DE CADA DETALLE O PUNTO TOMADO A PARTIR DE REALIZAR UNA
RADIACION SIMPLE, PARA ELLO DEBE INGRESAR LOS DATOS TOMADOS EN CAMPO. \n\n");
while (A<0||A>360)
{
System.out.print("Fuera de rango,Recuerde que el
angulo debe ser mayor a 0° y menor a 360° ");
A = 0;
System.out.print(" Ingrese nuevamente el angulo
");
27
A = Double.parseDouble(entrada.nextLine());
}
PNS=D*(Math.cos(A*Math.PI/180));
PEW=D*(Math.sin(A*Math.PI/180));
CN=no+PNS;
CE=es+PEW;
}
}
28