Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Manual Básico de Programación en JAVA, Guías, Proyectos, Investigaciones de Programación Java

Manual Básico de Programación en JAVA

Tipo: Guías, Proyectos, Investigaciones

2017/2018

A la venta desde 08/08/2021

fabian-espinosa-7
fabian-espinosa-7 🇪🇨

19 documentos

1 / 67

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
TRABAJO FINAL DE FUNDAMENTOS DE PROGRAMACIÓN
I. PORTADA
UNIVERSIDAD TÉCNICA DE AMBATO
Facultad de Ingeniería en Sistemas, Electrónica e Industrial
“Proyecto Académico de Fin de Semestre”
Título: Manual Básico de Programación en JAVA
Carrera: Ingeniería en Telecomunicaciones
Unidad de Organización Curricular: Básica
Línea de Investigación: Programación
Ciclo Académico y Paralelo: Segundo Semestre - Paralelo “A”
Alumnos participantes: Espinosa Yánez Franklin Fabián
Telenchana Tenelema Alex Roger
Módulo y Docente: Fundamentos de Programación - Ing. Granizo César
II. INFORME DEL PROYECTO
1. PP2. YY
2.1 Título
Manual Básico de Programación en JAVA
2.2 Objetivos
Mediante el desarrollo de este proyecto se pretenden lograr los siguientes objetivos:
- Orientar a estudiantes en la materia de “Fundamentos de Programación”,
presentando varios temas sobre la programación en JAVA.
- Brindar al estudiante un mayor enfoque sobre los múltiples beneficios que ofrece
el aprendizaje de programación en JAVA.
- Fomentar que el estudiante se relacione de mejor manera con la programación,
avanzando en una sociedad de tecnologías y comunicación.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43

Vista previa parcial del texto

¡Descarga Manual Básico de Programación en JAVA y más Guías, Proyectos, Investigaciones en PDF de Programación Java solo en Docsity!

TRABAJO FINAL DE FUNDAMENTOS DE PROGRAMACIÓN

I. PORTADA

UNIVERSIDAD TÉCNICA DE AMBATO

Facultad de Ingeniería en Sistemas, Electrónica e Industrial “Proyecto Académico de Fin de Semestre” Título: Manual Básico de Programación en JAVA Carrera: Ingeniería en Telecomunicaciones Unidad de Organización Curricular: Básica Línea de Investigación: Programación Ciclo Académico y Paralelo: Segundo Semestre - Paralelo “A” Alumnos participantes: Espinosa Yánez Franklin Fabián Telenchana Tenelema Alex Roger Módulo y Docente: Fundamentos de Programación - Ing. Granizo César II. INFORME DEL PROYECTO

1. PP2. YY 2.1 Título Manual Básico de Programación en JAVA 2.2 Objetivos Mediante el desarrollo de este proyecto se pretenden lograr los siguientes objetivos:

  • Orientar a estudiantes en la materia de “Fundamentos de Programación”, presentando varios temas sobre la programación en JAVA.
  • Brindar al estudiante un mayor enfoque sobre los múltiples beneficios que ofrece el aprendizaje de programación en JAVA.
  • Fomentar que el estudiante se relacione de mejor manera con la programación, avanzando en una sociedad de tecnologías y comunicación.

2.3 Resumen En este folleto se presentan las características generales de Java como lenguaje de programación algorítmico debido a las necesidades de la época. Se va a intentar ser breve, considerando que el lector (programador) ya conoce algunos otros lenguajes de programación y está familiarizado con lo que son variables, bucles, etc. En 1991, la empresa Sun Microsystems crea el lenguaje Oak (de la mano del llamado proyecto Green). Mediante este lenguaje se pretendía crear un sistema de televisión interactiva. Este lenguaje sólo se llegó a utilizar de forma interna. Su propósito era crear un lenguaje independiente de la plataforma y para uso en dispositivos electrónicos. Se intentaba con este lenguaje paliar el problema fundamental del C++; que consiste en que al compilar se produce un fichero ejecutable cuyo código sólo vale para la plataforma en la que se realizó la compilación. Sun deseaba un lenguaje para programar pequeños dispositivos electrónicos. La dificultad de estos dispositivos es que cambian continuamente y para que un programa funcione en el siguiente dispositivo aparecido, hay que rescribir el código. Por eso Sun quería crear un lenguaje independiente del dispositivo. En 1995 pasa a llamarse Java y se da a conocer al público. Adquiere notoriedad rápidamente. Java pasa a ser un lenguaje totalmente independiente de la plataforma y a la vez potente y orientado a objetos. Esa filosofía y su facilidad para crear aplicaciones para redes TCP/IP ha hecho que sea uno de los lenguajes más utilizados en la actualidad. La versión actual de Java es el llamado Java 2. Sus ventajas sobre C++ son: o Su sintaxis es similar a C y C++ o No hay punteros (lo que le hace más seguro) o Totalmente orientado a objetos o Muy preparado para aplicaciones TCP/IP o Implementa excepciones de forma nativa o Es interpretado (lo que acelera su ejecución remota, aunque provoca que las aplicaciones Java se ejecuten más lentamente que las C++ en un ordenador local). o Permite multihilos o Admite firmas digitales o Tipos de datos y control de sintaxis más rigurosa o Es independiente de la plataforma La última ventaja (quizá la más importante) se consigue ya que el código Java no se compila, sino que se pre compila, de tal forma que se crea un código intermedio que no es ejecutable. Para ejecutarle hace falta pasarle por un intérprete que va ejecutando cada línea. Ese intérprete suele ser la máquina virtual de Java.

lenguaje Java, aunque en algunas de esas características el lenguaje sea todavía bastante mejorable. 2.6 Materiales y Metodología Libros Folletos Sitios web Computadora 2.7 Resultados y Discusión En un sentido estricto, Java no es un lenguaje absolutamente orientado a objetos, a diferencia de, por ejemplo, Ruby o Smalltalk. Por motivos de eficiencia, Java ha relajado en cierta medida el paradigma de orientación a objetos, y así por ejemplo, no todos los valores son objetos. El código Java puede ser a veces redundante en comparación con otros lenguajes. Esto es en parte debido a las frecuentes declaraciones de tipos y conversiones de tipo manual (casting). También se debe a que no se dispone de operadores sobrecargados, y a una sintaxis relativamente simple. Sin embargo, J2SE 5.0 introduce elementos para tratar de reducir la redundancia, como una nueva construcción para los bucles “foreach”. A diferencia de C++, Java no dispone de operadores de sobrecarga definidos por el usuario. Los diseñadores de Java tomaron esta decisión puesto que consideraban que, bajo ciertas circunstancias, esta característica podía complicar la lectura y mantenimiento de los programas. 2.8 CONCLUSIONES Con la realización de este manual java se han cumplido los objetivos que se fijaron al comienzo del mismo, obteniendo resultados que los validan. Los objetivos que se han complementado se pueden expresar de forma somera:  Obtener un estudio detallado de la arquitectura y funcionamiento de los componentes básicos de Java.  Emplear los resultados obtenidos del análisis para aplicar en el campo científico y laboral.  Implementar una nueva versión de las clases y componentes java teniendo como referencia en manual.

En este proyecto se ha generado un manual a partir de modificaciones estructurales realizadas a lo largo del periodo académico. El mecanismo básico para probar dicha implementación es ejecutar cada componente y de forma práctica la observación de resultados. 2.9 RECOMENDACIONES Derivados de los conocimientos adquiridos a lo largo del proyecto nos planteamos la importancia que tienen estos. Es decir, es necesario conocer los entresijos del funcionamiento de cada componente java para programar aplicaciones. El conocimiento del modelo arquitectural de este manual puede ayudar a evitar determinadas prácticas de programación que si bien son correctas desde el punto de vista funcional, son incorrectas en cuanto a consumo de recursos de sistema se refiere. El uso de estas prácticas posibilita que nuestras aplicaciones pueden ser ejecutadas en un mayor número de dispositivos y lo que es más importante que se ejecuten a mayor velocidad con menor consumo de memoria. 2.10 REFERENCIAS BIBLIOGRÁFICAS [1] NN, «lucidchart,» lucidchart, 4 Enero 2015. [En línea]. Available: https://www.lucidchart.com/pages/es/qu%C3%A9-es-un-diagrama-de-flujo. [Último acceso: 7 Julio 2018]. [2] A. Rodríguez, «aprenderaprogramar,» aprenderaprogramar, 12 Febrero 2017. [En línea]. Available: https://www.aprenderaprogramar.com/index.php?option=com_content&view=artic le&id=419:tipos-de-datos-java-tipos-primitivos-int-boolean-y-objeto-string-array- o-arreglo-variables-cu00621b&catid=68&Itemid=188. [Último acceso: 7 Julio 201 8]. [3] NN, «puntocomnoesunlenguaje,» puntocomnoesunlenguaje, 4 Abril 2017. [En línea]. Available: http://puntocomnoesunlenguaje.blogspot.com/2012/04/tipos-de- datos-java.html. [Último acceso: 7 Julio 2018]. [4] NN, «juntadeandalucia,» juntadeandalucia, 13 Febrero 2018. [En línea]. Available: http://www.juntadeandalucia.es/averroes/centros- tic/14005663/helvia/aula/archivos/repositorio/0/164/html/lenguajec/unidad4.htm. [Último acceso: 7 Julio 2018]. [5] NN, «wikibooks,» wikibooks, 1 Octubre 2011. [En línea]. Available: https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Operadores_de_asig naci%C3%B3n. [Último acceso: 7 Julio 2018].

INDICE

INTRODUCCIÓN A LOS FUNDAMENTOS DE PROGRAMACIÓN

Los fundamentos de programación son las bases comunes a todos los programas. Es lo primero que tendrás que aprender incluso antes de elegir el programa con el que quieres programar. Lo primero que tienes que saber es que el ordenador es una máquina eléctrica y solo entiende el llamado código binario (1 y 0). 1 = hay corriente 0 = No hay corriente Este es su lenguaje. Entendernos con él mediante este código es muy difícil, por eso los lenguajes de programación se dividen en dos tipos diferentes dependiendo de su cercanía al lenguaje del ordenador. El código del ordenador se basa en asignar a cada caracter (letra, signo, número, etc.) una combinación de 8 ceros y unos (8 bits = byte) mediante un código que se llama ASCII. Por ejemplo, la letra A se representa con lo combinación siguiente: 01100001. Los lenguajes más cercanos al idioma del ordenador, llamados de bajo nivel, son muy complicados (casi como el código del ordenador) y poco usados. El más conocido es el código o lenguaje máquina, un código que el ordenador puede interpretar directamente. Aquí tienes un ejemplo: 8B542408 83FA0077 06B80000 0000C De este tipo de lenguajes, que solo suelen utilizar los que programan los ordenadores para su uso, no vamos hablar aquí. Hablaremos de los conocimientos comunes a los lenguajes de alto nivel. DIAGRAMA DE FLUJO Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático. Se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender. Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia. Pueden variar desde diagramas simples y dibujados a mano hasta diagramas exhaustivos creados por computadora que describen múltiples pasos y rutas. Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo, son uno de los diagramas más comunes del mundo, usados por personas con y sin conocimiento técnico en una variedad de campos. Los diagramas de flujo a veces se

denominan con nombres más especializados, como "diagrama de flujo de procesos", "mapa de procesos", "diagrama de flujo funcional", "mapa de procesos de negocios", "notación y modelado de procesos de negocio (BPMN)" o "diagrama de flujo de procesos (PFD)". Están relacionados con otros diagramas populares, como los diagramas de flujo de datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML). [1] Símbolos de diagramas de flujo A continuación, te enseñaremos algunos de los símbolos de diagramas de flujo más comunes. Para obtener una lista más exhaustiva, accede a nuestra completa página de símbolos de diagramas de flujo.

Como ejemplo podemos definir una variable a que contenga 32 y esto lo escribimos como a = 32. Posteriormente podemos cambiar el valor de a y hacer a = 78. O hacer “a” equivalente al valor de otra variable “b” así: a = b. Dado que antes hemos dicho que un objeto también ocupa un espacio de memoria: ¿en qué se parecen y en qué se diferencia un objeto de una variable? Consideraremos que las variables son entidades elementales: un número, un carácter, un valor verdadero o falso… mientras que los objetos son entidades complejas que pueden estar formadas por la agrupación de muchas variables y métodos. Pero ambas cosas ocupan lo mismo: un espacio de memoria (que puede ser más o menos grande). En los programas en Java puede ser necesario tanto el uso de datos elementales como de datos complejos. Por eso en Java se usa el término “Tipos de datos” para englobar a cualquier cosa que ocupa un espacio de memoria y que puede ir tomando distintos valores o características durante la ejecución del programa. Es decir, en vez de hablar de tipos de variables o de tipos de objetos, hablaremos simplemente de tipos de datos. Sin embargo, a veces “coloquialmente” no se utiliza la terminología de forma estricta: puedes encontrarte textos o páginas web donde se habla de una variable en alusión a un objeto. En Java diferenciamos dos tipos de datos: por un lado, los tipos primitivos, que se corresponden con los tipos de variables en lenguajes como C y que son los datos elementales que hemos citado. Por otro lado, los tipos objeto (que normalmente incluyen métodos). [2] Veamos los tipos de datos en Java sobre un esquema de síntesis:

DATOS NUMÉRICOS ENTEROS

En Java los representan los tipos: byte, short, int, long. El tipo de dato numérico entero es un subconjunto finito de los números enteros del mundo real. Pueden ser positivos o negativos. Ejemplo de declaración de variables enteras: int a; byte n1, n2; short x; DATOS NUMÉRICOS REALES En Java los representan los tipos: float, double. El tipo de dato numérico real es un subconjunto finito de los números reales. Siempre llevan un punto decimal y también pueden ser positivos o negativos. Los números reales tienen una parte entera y una parte decimal. Por ejemplo: 0.08 - 54.

Ejemplos típicos de operadores son la suma (+), la diferencia (-), el producto (), etc. Los operadores pueden ser unarios , binarios y ternarios , según actúen sobre uno, dos o tres operandos, respectivamente. En C existen muchos operadores de diversos tipos (éste es uno de los puntos fuertes del lenguaje), que se verán a continuación. [3] OPERADORES ARITMÉTICOS Los operadores aritméticos son los más sencillos de entender y de utilizar. Todos ellos son operadores binarios. En C se utilizan los cinco operadores siguientes:  Suma: +  Resta:  Multiplicación: *  División: /  Resto: % Todos estos operadores se pueden aplicar a constantes, variables y expresiones. El resultado es el que se obtiene de aplicar la operación correspondiente entre los dos operandos. El único operador que requiere una explicación adicional es el operador resto %. En realidad su nombre completo es resto de la división entera. Este operador se aplica solamente a constantes, variables o expresiones de tipo int. Aclarado esto, su significado es evidente: 23%4 es 3, puesto que el resto de dividir 23 por 4 es 3. Si a % b es cero, a es múltiplo de b. [4] Como se verá más adelante, una expresión es un conjunto de variables y constantes – y también de otras expresiones más sencillas– relacionadas mediante distintos operadores. Un ejemplo de expresión en la que intervienen operadores aritméticos es el siguiente polinomio de grado 2 en la variable x : 5.0 + 3.0x - x*x/2. OPERADORES DE ASIGNACIÓN Los operadores de asignación atribuyen a una variable – es decir, depositan en la zona de memoria correspondiente a dicha variable– el resultado de una expresión o el valor de otra variable (en realidad, una variable es un caso particular de una expresión). [4] El operador de asignación más utilizado es el operador de igualdad (=), que no debe ser confundido con la igualdad matemática. Su forma general es: nombre_de_variable = expresión;

Cuyo funcionamiento es como sigue: se evalúa expresión y el resultado se deposita en nombre_de_variable , sustituyendo cualquier otro valor que hubiera en esa posición de memoria anteriormente. Una posible utilización de este operador es como sigue: variable = variable + 1; Así pues, una variable puede aparecer a la izquierda y a la derecha del operador (=). Sin embargo, a la izquierda del operador de asignación (=) no puede haber nunca una expresión: tiene que ser necesariamente el nombre de una variable. Es incorrecto, por tanto, escribir algo así como: a + b = c; // incorrecto Existen otros cuatro operadores de asignación (+=, - =, *= y /=) formados por los 4 operadores aritméticos seguidos por el carácter de igualdad. Estos operadores simplifican algunas operaciones recurrentes sobre una misma variable. Su forma general es: variable op= expresion; donde op representa cualquiera de los operadores (+ - * /). La expresión anterior es equivalente a: variable = variable op expresion; A continuación se presentan algunos ejemplos con estos operadores de asignación: distancia += 1; equivale a: distancia = distancia + 1; rango /= 2.0 equivale a: rango = rango /2. x *= 3.0 * y - 1.0 equivale a: x = x * (3.0 * y - 1.0) OPERADORES INCREMENTALES Los operadores incrementales (++) y (--) son operadores unarios que incrementan o disminuyen en una unidad el valor de la variable a la que afectan. Estos operadores pueden ir inmediatamente delante o detrás de la variable. Si preceden a la variable, ésta es incrementada antes de que el valor de dicha variable sea utilizado en la expresión en la que aparece. Si es la variable la que precede al operador, la variable es incrementada después de ser utilizada en la expresión. A continuación, se presenta un ejemplo de estos operadores: i = 2; j = 2; m = i++; // después de ejecutarse esta sentencia m=2 e i= 3 n = ++j; // después de ejecutarse esta sentencia n=3 y j=

(2==1) // resultado=0 porque la condición no se cumple (3<=3) // resultado=1 porque la condición se cumple (3<3) // resultado=0 porque la condición no se cumple (1!=1) // resultado=0 porque la condición no se cumple OPERADORES LÓGICOS Los operadores lógicos son operadores binarios que permiten combinar los resultados de los operadores relacionales, comprobando que se cumplen simultáneamente varias condiciones, que se cumple una u otra, etc. El lenguaje C tiene dos operadores lógicos: el operador Y (&&) y el operador O (||). En inglés son los operadores and y or. Su forma general es la siguiente: expresion1 || expresion expresion1 && expresion El operador && devuelve un 1 si tanto expresion1 como expresion2 son verdaderas (o distintas de 0), y 0 en caso contrario, es decir si una de las dos expresiones o las dos son falsas (iguales a 0); por otra parte, el operador || devuelve 1 si al menos una de las expresiones es cierta. Es importante tener en cuenta que los compiladores de C tratan de optimizar la ejecución de estas expresiones, lo cual puede tener a veces efectos no deseados. Los operadores && y || se pueden combinar entre sí – quizás agrupados entre paréntesis–, dando a veces un código de más difícil interpretación. Por ejemplo: (2==1) || (-1==-1) // el resultado es 1 (2==2) && (3==-1) // el resultado es 0 ((2==2) && (3==3)) || (4==0) // el resultado es 1 ((6==6) ||(8==0)) && ((5==5) && (3==2)) //el resultado es 0 EXPRESIONES ARITMÉTICAS Están formadas por variables y/o constantes, y distintos operadores aritméticos e incrementales (+, - , *, /, %, ++, --). Como se ha dicho, también se pueden emplear paréntesis de tantos niveles como se desee, y su interpretación sigue las normas aritméticas convencionales. Por ejemplo, la solución de la ecuación de segundo grado: se escribe, en C en la forma:

x=(-b+sqrt((bb)-(4ac)))/(2a); donde, estrictamente hablando, sólo lo que está a la derecha del operador de asignación (=) es una expresión aritmética. El conjunto de la variable que está a la izquierda del signo (=), el operador de asignación, la expresión aritmética y el carácter (;) constituyen una sentencia. En la expresión anterior aparece la llamada a la función de librería sqrt() , que tiene como valor de retorno la raíz cuadrada de su único argumento. En las expresiones se pueden introducir espacios en blanco entre operandos y operadores; por ejemplo, la expresión anterior se puede escribir también de la forma: x = (-b + sqrt((b * b) - (4 * a * c)))/(2 * a); EXPRESIONES LÓGICAS Los elementos con los que se forman estas expresiones son valores lógicos ; verdaderos ( true , o distintos de 0) y falsos ( false , o iguales a 0), y los operadores lógicos ||, && y!. También se pueden emplear los operadores relacionales (<, >, <=, >=, ==, !=) para producir estos valores lógicos a partir de valores numéricos. Estas expresiones equivalen siempre a un valor 1 ( true ) o a un valor 0 ( false ). Por ejemplo: a = ((b>c)&&(c>d))||((c==e)||(e==b)); donde de nuevo la expresión lógica es lo que está entre el operador de asignación (=) y el (;). La variable a valdrá 1 si b es mayor que c y c mayor que d , ó si c es igual a e ó e es igual a b. EXPRESIONES GENERALES Una de las características más importantes (y en ocasiones más difíciles de manejar) del C es su flexibilidad para combinar expresiones y operadores de distintos tipos en una expresión que se podría llamar general , aunque es una expresión absolutamente ordinaria de C. Recuérdese que el resultado de una expresión lógica es siempre un valor numérico (un 1 ó un 0); esto permite que cualquier expresión lógica pueda aparecer como sub-expresión en una expresión aritmética. Recíprocamente, cualquier valor numérico puede ser considerado como un valor lógico: true si es distinto de 0 y false si es igual a 0. Esto permite introducir cualquier expresión aritmética como sub-expresión de una expresión lógica. Por ejemplo: (a - b*2.0) && (c != d) A su vez, el operador de asignación (=), además de introducir un nuevo valor en la variable que figura a su izquierda, deja también este valor disponible para ser utilizado