Você está na página 1de 28

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD MEDIO AMBIENTE Y RECURSOS NATURALES

PROYECTO FINAL
Algoritmo para programar una cartera de cálculos perteneciente a un levantamiento por radiación
simple.

María Fernanda Lozano Sánchez COD 20172032069


Geraldine Viviana Gonzales Bustos COD 20172032043

Ingeniería Topográfica II Semestre


Proyecto final asignatura lógica de programación

Camilo González Parra


Ingeniero Topográfico

01 Junio del 2018


Bogotá D.C
TABLA DE CONTENIDO

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

ILUSTRACIÓN 3. SINTAXIS DEL BUCLE FOR REPRESENTADO EN DIAGRAMA DE FLUJO. TOMADO DE


DEAN,J & DEAN, R (2009) ..................................................................................................... 18
ILUSTRACIÓN 4. PARTE TOMADA DEL CÓDIGO PARA EXPLICAR CÓMO DA LOS RESULTADOS EL
PROGRAMA. ............................................................................................................................ 23

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

Programar un algoritmo que permita resolver una cartera de cálculo de un levantamiento


topográfico por radiación simple.

OBJETIVOS ESPECIFICOS

 Aplicar conceptos y herramientas básicas de programación en Java


 Consolidar la información ya aprendida en el transcurso del curso utilizando la sintaxis
adecuada para la plataforma de eclipse.
 Desarrollar habilidades lógicas.

6
MARCO TEÓRICO

El siguiente marco teórico se dividirá en dos secciones, la parte conceptual topográfica y


posteriormente la parte teórica de Java dando paso al estado del arte de java, respectivamente.

TOPOGRAFÍA

El libro Planimetría Rincón Villalba, M.,Vargas Vargas W & Vergara González, C.


(2012)expone la topografía como una ciencia por medio de la cual se establecen las posiciones
de puntos situados sobre la superficie terrestre, encima de ella y debajo de ella, para lo cual se
realizan mediciones de distancias, ángulos y elevaciones.
La topografía se divide en dos ramas: Planímetro y Altimétrico. La planimetría no toma en
cuenta las diferencias de nivel y se proyecta sobre un plano horizontal y la Altimetría trata de
determinar la distancia entre 2 alturas considerando el nivel del terreno. No obstante, el proyecto
se consolidará directamente en la rama de PLANIMETRIA.

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.

LEVANTAMIENTO POR RADIACIÓN (SIMPLE)

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.

Ilustración 1. Explicación gráfica de un levantamiento por radiación simple.

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

El software de aplicaciones es el conjunto de programas escritos que tiene como función


principal instruir a la computadora para que ejecute una tarea específica. Algún software de
aplicación se desarrolla en diferentes lenguajes y herramientas.

PROGRAMACIÓN

La programación es la acción de codificar o escribir esas instrucciones (Software) sobre un


entorno llamado lenguaje de programación, para generar aplicaciones o programas.

Existen lenguajes de programación prácticamente para cualquier necesidad, desde aplicaciones


de un circuito eléctrico, hacer cálculos de deudas generales hasta realizar compras en internet.

LENGUAJES

El programa, como se mencionó anteriormente, es un conjunto de instrucciones para que el


hardware ejecute. Esas instrucciones cumplen una serie de paramentos estrictos tal cual como las
normas para aprender y hablar cualquier idioma en la cotidianidad, cada tipo de lenguaje tiene
escritura y software propio.

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++.

PROBLEMA Algoritmo en Escritura Código


Resultado seudocódigo en Java Algoritmo Edición
fuente en
o diagrama de en Java
Java
flujo

Traductor/c
ompilador

Lenguaje Maquina
(Programa
ejecutable)

Ilustración 2.Proceso de transformación de un algoritmo a un programa ejecutable. Imagen


basada en Aguilar, L. (2008)

Lenguaje de alto nivel

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

Software de enseres domésticos

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.

World Wide Web

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)

IBM Desarrolla el primer lenguaje de programación de alto nivel llamado


1957 FORTAN (Traductor de fórmulas). Actualmente es muy usado por
ingenieros, matemáticos y científicos.
Un equipo de la Universidad de Pensilvania, apoyado por el departamento de
1960 defensa de EE.UU desarrolla el primer lenguaje común orientado a negocios
llamado COBOL.
Ivan Sutherland de M.I.T implemento el primer software de gráficos,
1962
permitiendo dibujar interactivamente en la pantalla.
Thomas Kurt y John Kemendy desarrollaron el lenguaje de programación
1964
BASIC, muy popular y usado hasta los días de hoy.
Richard Greenblatt implemento el primer programa de ajedrez con éxito
1967
llamado MacHack.
1970 E.F Codd publico el primer diseño de bases de datos relacional.
Brian Kernighan publico una descripción del lenguaje C, confinando desde
principios de los años 60 en Bell Telephone. C fue y continua siendo el
1978 lenguaje de programación más popular, en los años 80 dio origen al lenguaje
C++, basado sobre el lenguaje pero con el soporte al paradigma de
programación orientado a objetos.
SunMicrosystem bajo el proyecto de James Gosling desarrollaron el lenguaje
Java. Java es el lenguaje más usado actualmente y empleado en diferentes
1991 ambientes como: páginas web, ordenadores de escritorio, servidores de alto
rendimiento, equipos móviles y entre otros.
1997 IBM desarrollo el sistema de juego de ajedrez llamado Deep Blue. En la
imagen se muestra al campeón mundial de ajedrez GariKaspárov durante una
partida con Deep Blue en Nueva York.

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/

 El 97% de los escritorios empresariales ejecutan Java


 El 89% de los escritorios (o computadoras) en Estados Unidos ejecutan
Java
 9 millones de desarrolladores de Java en todo el mundo
 La primera opción para los desarrolladores
 La primera plataforma de desarrollo
 3 mil millones de teléfonos móviles ejecutan Java
 El 100% de los reproductores de Blu-ray incluyen Java
 5 mil millones de Java Cards en uso
 125 millones de dispositivos de televisión ejecutan Java
 5 de los 5 principales fabricantes de equipos originales utilizan Java ME

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

Su instalación es bastante rápida, sencilla y eficaz.


Se recomienda desinstalar versiones anteriores de Java ya que no obtener la versión más
cercana representa un riesgo para la seguridad del mismo.
Existen tres procedimientos de instalación según (Java, recuperado de:
https://www.java.com/es/about/): instalación en línea, fuera de línea o manual.

 La instalación en línea se lleva a cabo de forma automática mientras permanece


conectado a Internet.
 Para la instalación fuera de línea es necesario descargar un archivo ejecutable que
aparece en la lista de descarga manual y que incluye todos los archivos necesarios para
realizar la instalación completa a discreción del usuario.
 La instalación manual descarga un archivo de programa ejecutable para instalar desde la
red (y apenas requiere intervención del usuario. Al ejecutarlo, el programa obtiene de la
red todos los archivos necesarios, por lo que es imprescindible permanecer conectado a
Internet durante la 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.

Información tomada de Aguilar, L. (2008)

Actualizaciones

La actualización frecuente de Java obteniendo la versión más reciente es primordial para el


rendimiento, estabilidad y seguridad de las aplicaciones que se ejecutan con java en el
computador.

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

VERSIONES DE JAVA FECHA DE PUBLICACIÓN


Java 8 Update 171 CPU 17 de abril de 201
Java 8 Update 161 CPU 16 de enero de 2018
Java 8 Update 151 CPU 17 de octubre de 2017
Java 8 Update 144 LimitedUpdate 26 de julio de 2017
Java 8 Update 141 CPU 18 de julio de 2017
Java 8 Update 131 CPU 18 de abril de 2017
Java 8 Update 121 CPU 17 de enero de 2017
Java 8 Update 111 CPU 18 de octubre de 2016
Java 8 Update 101 CPU 19 de julio de 2016
8u91 versión 14 disponible el 19 de abril de
2016
19 de abril de 2016
8u91 versión 15 disponible el 26 de mayo de
2016
Java 8 Update 77 CPU 23 de marzo de 2016
Java 8 Update 73 CPU
5 de febrero de 2016
Java 8 Update 74 PSU (OTN)
Java 8 Update 71 CPU
19 de enero de 2016
Java 8 Update 72 PSU (OTN)
Actualización limitada de Java 8 Update 60 18 de agosto de 2015
Java 8 Update 51 CPU 14 de julio de 2015
Java 8 Update 45 CPU
Java 7 Update 79 CPU es la última versión
pública de Java 7 en java.com 14 de abril de 2015
Java 7 Update 80 PSU (OTN) es la última
versión pública de Java 7
Actualización limitada de Java 8 Update 40 3 de marzo de 2015
Java 8 Update 31 CPU 20 de enero de 2015

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

Existen más actualizaciones de las versiones 5 y 6 de Java que la página de Oracle-Java no


permite descargar actualmente y solamente las distribuye directamente a proveedores o
programadores que adquirieron un producto con ellos (Oracle) en esa actualización. La totalidad
de actualizaciones de las versiones 5 y 6 se pueden encontrar y descargar (Ilícitamente) por
medio del siguiente enlace http://www.oldapps.com/java.php

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.

CODIGO ABIERTO EN ECLIPSE

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.

BUCLE FOR EN JAVA (ECLIPSE)

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.

Ilustración 3. Sintaxis del bucle For representado en diagrama de flujo. Tomado de


Dean,J&Dean, R (2009)

18
METODOLOGIA

Algoritmo: Diagrama de flujo

INICIO

Abrir Eclipse

Crear proyecto

Establecer clase
dentro del proyecto

Importar librería

Declarar variable

Definir variables

Imprimir mensaje de bienvenida


e información del programa

Solicitar ingreso de coordenadas

19
A

Solicitar ingreso de la cantidad de puntos

Usar bucle for


F

Solicitar ingreso de ángulos

¿Se encuentra dentro


de 0° y 360°?

Solicitar ingreso de distancias

Hallar proyecciones (NS-EW)

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

5. Imprimir mensaje de bienvenida


System.out.print ("\t\t\t\t\bienvenido\n\n");
6. Dar a conocer lo que hace el programa
7. Solicitar al usuario el ingreso de coordenadas
8. Pedir al usuario que consigne la cantidad de puntos tomados en el levantamiento

9. Hacer uso del bucle “for (iniciación; condición; actualización)”, se usa para llenar
la cantidad de puntos que posee el levantamiento.

for (int i=0; i<n;i++)

9. Requerir al usuario el ingreso de cada uno de los ángulos registrados


10. Utilizar el bucle “while (condición)”dentro de “for” mientras se cumpla la
condición se ejecuta el código que se encuentra dentro del bucle, de lo contrario
se saldrá del bucle.
While (A<0||A>360)
11. Pedir al usuario que ingrese la distancia hacia cada punto
12. Hallar las proyecciones, haciendo uso de seno y coseno, además de la distancia.
NS: PNS=D*(Math.cos(A*Math.PI/180));

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;

System.out.print indica al usuario que debe realizar una acción


específica.

 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

 El paquete java.util contiene diversas clases de utilidad (enumeración, vector, separación,


generación de números aleatorios, propiedades del sistema), por esta razón es una buena
opción para implementarla
 Se deben trabajar los ángulos en radianes, ya que java programa en otro sistema de
unidades.
 Si se desea una mayor precisión en los resultados, es conveniente hacer uso del tipo de
variable doublé, pues ésta guarda los valores con 14 o 15 dígitos decimales.

25
BIBLIOGRAFÍA

Aguilar Joyanes , L. (2008). Fundamentos de Programación, cuarta edición. Madrid, España:


McGraw-Hill.
Dean, J. &Dean, R. (2009).Introducción a la programación, primera edición. México, México
D.F: McGraw-Hill.
Zapata Ospina, C. (2006). Fundamentos de programación, guía de auto enseñanza. Caldas,
Colombia: RA-MA editorial.
Java. Conozca más sobre la tecnología de Java. Oracle. Recuperado de:
https://www.java.com/es/about/
Rincón Villalba, M.,. Vargas Vargas W & Vergara González, C. (2012). Planimetría. Bogotá,
Colombia: Editorial UD.

26
ANEXOS

//PROYECTO FINAL: RADIACION SIMPLE


//INTEGRANTES: GERALDINE VIVIANA GONZALEZ BUSTOS 20172032043
//MARIA FERNANDA LOZANO SANCHEZ 20172032069
import java.util.Scanner;

public class radiacionsimp {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner entrada = new Scanner(System.in);


int n;
double no,es;
double A= 0;
double D = 0;
double PNS = 0;
double PEW = 0;
double CN = 0;
double CE = 0;

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");

System.out.print("INGRESE LAS COORDENADAS 'NORTE' DEL PUNTO EN EL


CUAL ARMO EL EQUIPO ");
no=Double.parseDouble(entrada.nextLine());

System.out.print("INGRESE LAS COORDENADAS 'ESTE' DEL PUNTO EN EL


CUAL ARMO EL EQUIPO ");
es=Double.parseDouble(entrada.nextLine());

System.out.print("Ingrese el numero de detalles tomados: ");


n = Integer.parseInt(entrada.nextLine());
for(int i=0;i<n;i++)
{

System.out.print("\n" + "Ingrese el angulo tomado


hacia el detalle numero " + (i+1) + " en sistema decimal: ");
A = Double.parseDouble(entrada.nextLine());

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());
}

System.out.print("Ingrese la distancia del punto en el


cual armo el equipo hacia el detalle " + (i+1) + ": ");
D = 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;

System.out.print("\n\nLOS RESULTADOS PARA EL DETALLE


NUEMRO " + (i+1) + " SON : " +"\n\n");
int gradosA = (int) A;
double minutosADecimal = (A - gradosA)*60;
int minutosA = (int) minutosADecimal;
double segundosADecimal = (minutosADecimal -
minutosA)*60;
System.out.println("Azimut: \t" + gradosA + " ° " +
(minutosA) + " ´ " + Math.round(segundosADecimal) + " ´´ ");

System.out.println("Proyección NS: \t" + PNS);


System.out.println("Proyección EW: \t" + PEW);

System.out.println("Coordenada Norte: \t" + CN);


System.out.println("Coordenada Este: \t" + CE);

}
}

28

Você também pode gostar