



























































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Manual Básico de Programación en JAVA
Tipo: Guías, Proyectos, Investigaciones
1 / 67
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




























































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:
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].
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:
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