Estructuras de Control En Java Prof: Ing Howard Pernía.

56
LENGUAJE DE PROGRAMACIÓN II (ESTRUCTURA DEL LENGUAJE JAVA) ING. HOWARD PERNÍA

Transcript of Estructuras de Control En Java Prof: Ing Howard Pernía.

Page 1: Estructuras de Control En Java Prof: Ing Howard Pernía.

LENGUAJE DE

PROGRAMACIÓN II

(ESTRUCTURA DEL LENGUAJE JAVA)

ING. HOWARD PERNÍA

Page 2: Estructuras de Control En Java Prof: Ing Howard Pernía.

Contenido y Objetivos

Es necesario que el estudiante sea capaz de:

• Poseer conocimientos básicos de programación

• Habilidad para ejecutar comandos utilizando interfaces de líneas de

comandos.

– Conocer los conocimientos básicos de la Orientación a Objetos

– Manejar los fundamentos del lenguaje JAVA

– Aprender la sintaxis del lenguaje JAVA

– Desarrollar aplicaciones usando el lenguaje JAVA

– Desarrollar interacciones GUI avanzadas

– Profundizar en el área de conocimientos de la Programación Orientada a Objetos

JAVA

– Manejar los procesos de declaraciones y expresiones JAVA

– Manejar eventos de teclado y mouse.

Page 3: Estructuras de Control En Java Prof: Ing Howard Pernía.

Introducción

• Java fue desarrollado por Sun Microsystem a principios de los 90.

• Esta basado en C y C++.

• Es un Lenguaje Orientado a Objetos

• Desarrollo de un Lenguaje Multiplataforma

En http://www.java.com/es/ puedes encontrar las últimas versiones para descargar en diversos paquetes y

para diferentes sistemas operativos.

Page 4: Estructuras de Control En Java Prof: Ing Howard Pernía.

En la actualidad, el auge y aceptación que se tiene por las computadoras es muy grande, éstas son usadas para

facilitar las labores y tareas más diversas. Las computadoras existen gracias a que el hombre inventó los

microprocesadores que forman parte fundamental de las mismas. En un futuro se hace casi impensable que un

artefacto eléctrico no posea un microprocesador que lo controle y haga más fácil su manejo.

Al notar esto, en 1991 Sun Microsistems patrocinó un proyecto interno llamado “Green” el cual buscaba el desarrollo

de un lenguaje basado en C++ que permitiera programar los mas diversos aparatos eléctricos. Su fundador, James

Gosling le dio el nombre de OAK. Posteriormente descubrió que existía otro lenguaje con el mismo nombre, y no fue

hasta que un grupo de gente visito una cafetería que se sugirió el nombre de JAVA (una variedad de café).

El proyecto enfrentó fuertes dificultades debido a que el mercado de electrodomésticos inteligentes no se desarrollo

rápidamente y Sun enfrentaba problemas económicos pero gracias a la creciente popularidad de la World Wide Web y

a que Java era un lenguaje que permitía agregar contenido dinámico a las paginas web, el proyecto tomo nueva vida.

En 1995 Java es anunciado en una conferencia que genero un gran interés en la comunidad de negocios gracias al

interés en la World Wide Web.

Actualmente Java se utiliza para desarrollar aplicaciones de gran escala, para proporcionar aplicaciones para

dispositivos domésticos (teléfonos celulares, microondas, etc.) y para múltiples propósitos

Breve Historia

Page 5: Estructuras de Control En Java Prof: Ing Howard Pernía.

Entre las características más destacadas tenemos

Simple: Es un lenguaje sencillo de aprender con sintaxis parecida al C++.

Orientado a Objetos: Todo, excepto los tipos fundamentales son objetos.

Distribuido: Esta orientado al trabajo en red, soporta diversos protocolos (TCP/IP, UDP, HTTP,

etc.) y su uso es muy sencillo.

Robusto: El sistema Run-Time maneja la memoria y no el programador.

Seguro: Java no permite que ninguna aplicación pueda dañar la maquina

Portable: Java es independiente de las plataformas, gracias a que interactúa con el sistema que

corre sobre el computador adaptando nuestra aplicación a la plataforma.

Multi-Hilo: Java permite la ejecución de multi-hilos, lo que permite mayor rendimiento en

ambientes interactivos.

Características

Page 6: Estructuras de Control En Java Prof: Ing Howard Pernía.

En Perl 5, se añadieron características para soportar estructuras de datos complejas, funciones de

primer orden (p. e. Clausuras como valores) y un modelo de programación orientada a objetos. Estos

incluyen referencias, paquetes y una ejecución de métodos basada en clases y la introducción de

variables de ámbito léxico, que hizo mas fácil escribir código robusto (junto con el pragma strict). Una

característica principal introducida en Perl 5 fue la habilidad de empaquetar código reutilizable como

módulos. Larry Wall indico más adelante que “la intención del sistema de módulos de Perl 5 era

apoyar el crecimiento de la cultura Perl en vez del núcleo de Perl”.

Todas las versiones de Perl hacen el tipado automático de datos y la gestión de memoria. El

interprete conoce el tipo y requerimientos de almacenamiento de cada objeto en el programa; reserva

y libera espacio para ellos según sea necesario. Las conversiones legales de tipo se hacen de forma

automática en tiempo de ejecución; las conversiones ilegales son consideradas errores fatales.

Características

Page 7: Estructuras de Control En Java Prof: Ing Howard Pernía.

De manera resumida se puede decir que algunas de las características de Perl más importantes son

las siguientes:

Soporta programación orientada a objetos

Soporta programación procedural

Se ejecuta en el lado servidor y no en el lado cliente

Posee integración con bases de datos como Oracle, PostgreSQL, MySQL, Sybase y otras.

Trabaja con HTML, XML y otros lenguajes de tipo mark-up.

Es ampliable a través de módulos Existen más de 500 módulos disponibles en CPAN

El interprete de Perl puede ser embebido en otros sistemas (programas de otro lenguaje). Perl

deriva ampliamente de lenguaje C

Características

Page 8: Estructuras de Control En Java Prof: Ing Howard Pernía.

Contenido:

Introducción a la Programación Orientada a Objetos

¿Que es un Objeto?

¿Que es una Clase?

Conceptos de la Orientación a Objetos.

Objetivos

Introducir al alumno sobre algunos aspectos importantes de la Programación Orientada a Objetos

Fundamentos de Programación Orientada a Objetos

(POO)

Page 9: Estructuras de Control En Java Prof: Ing Howard Pernía.

Principios y conceptos básicos de la Programación Orientada a Objetos (POO). Se deben tener claros

los fundamentos de la POO para poder utilizar y comprender de manera perfecta el lenguaje Java.

Los principios de la POO nacen en los años 60 y tienen como objetivo primordial facilitar el desarrollo

y mantenimiento de software.

Desde ese entonces han surgido un sin numero de Lenguajes Orientados a Objetos, entre ellos:

Eiffel, Smalk Talk, C++, Java. Una de las mas grandes ventajas de la Orientación a Objetos es que

permite la re-utilización de código, basándose en sus principios básicos como son la Herencia,

parametrización, composición y también basándose en librerías Con la Programación Orientada a

Objetos podemos probar versiones mucho antes que lo que se conseguía de manera tradicional

Fundamentos de Programación Orientada a Objetos

(POO)

Page 10: Estructuras de Control En Java Prof: Ing Howard Pernía.

¿Que es un Objeto?

Un objeto es cualquier cosa a la vista y que afecta nuestros sentidos. Si enfocamos este concepto a

la informática diríamos que un Objeto posee en si mismo variables y métodos que definen todas sus

características y como interactuar con ellas.

Cualquier Objeto de la vida real se puede ver como un objeto informático Un ejemplo seria:

Fundamentos de Programación Orientada a Objetos

(POO)

Es una representación de la

estructura y comportamiento de un

objeto

Vida Real Diseño OO

Puerta

Largo

Ancho

Color

Abrir()

Cerrar()

Page 11: Estructuras de Control En Java Prof: Ing Howard Pernía.

¿Que es un Clase?

Es una representación de la Estructura y comportamiento de un Objeto, puede verse como un patrón

para definir los atributos y comportamientos para un tipo de objetos. Los Objetos de una misma clase

son idénticos en estructura y comportamiento, pero todos ellos son únicos entre si, Ejemplo:

En este ejemplo vemos dos puertas que tienen las mismas características de la Clase “Puerta”, pero

entre ellas son únicas por que son objetos diferentes.

Fundamentos de Programación Orientada a Objetos

(POO)

Clase

Puerta

Page 12: Estructuras de Control En Java Prof: Ing Howard Pernía.

Una instancia es el concepto que se le da al objeto perteneciente a una clase. En fin, una clase

comprende la estructura y comportamiento de un tipo particular de objetos, mientras que una

instancia (objeto) pertenece a una clase (tipo de objeto) pero entre instancias son únicas

Fundamentos de Programación Orientada a Objetos

(POO)

Class nombre_clase {

Int nombre_variable;

}

Page 13: Estructuras de Control En Java Prof: Ing Howard Pernía.

Conceptos de la Orientación a Objetos: cualquier lenguaje orientado a objetos debe emplear estos

conceptos básicos:

Abstracción: Consiste en la generalización de los atributos y comportamiento de un determinado

grupo de objetos. La clave de la programación Orientada a Objetos consiste en agrupar las

características y comportamientos comunes de un grupo de objetos en una sola clase. Ejemplo:

¿Qué características semejantes poseen todos los automóviles? Todos tienen una marca, un color,

frenan, retroceden, entre otros.

Encapsulamiento u ocultamiento: Consiste en separar la parte externa de la interna de una

clase, es decir, la parte que es accesible del objeto por otros objetos y la parte que permanece

oculta a los otros objetos. Por ejemplo: la radio de un automóvil encapsula todos los atributos y

métodos que permite al conductor sintonizar una emisora, el conductor no sabe que componentes

están dentro del radio. Todos los componentes están ocultos para nosotros y solo accesamos a los

métodos que nos permiten utilizar el radio.

Fundamentos de Programación Orientada a Objetos

(POO)

Page 14: Estructuras de Control En Java Prof: Ing Howard Pernía.

Conceptos de la Orientación a Objetos: cualquier lenguaje orientado a objetos debe emplear estos

conceptos básicos:

Polimorfismo: permite implementar múltiples formas de un mismo método, ejecutando diferentes

acciones para un mismo mensaje.

Herencia: consiste en crear nuevas clases a partir de las ya existentes. Las nuevas clases

heredan las características de la clase padre y además pueden añadírseles nuevas características.

La herencia permite la reutilización de código.

Fundamentos de Programación Orientada a Objetos

(POO)

Page 15: Estructuras de Control En Java Prof: Ing Howard Pernía.

Comentarios:

Los Comentarios ayudan a los programadores a documentar sus codigos y lo hacen mas legibles

para otros y ellos mismos.

//comentario

/*

Comentario

De varias lineas

*/

/**

Comentario para la documentación

*/

Sintaxis en Java

Page 16: Estructuras de Control En Java Prof: Ing Howard Pernía.

El compilador de Java ignora estos comentarios de manera que la computadora no hace nada cuando

este se ejecuta. Existen tres formas de insertar comentarios en Java:

// Comentario de Una Línea

/* Comentario de una o

mas líneas*/

/** Comentarios para documentar usando javadoc*/

Sintaxis en Java

Page 17: Estructuras de Control En Java Prof: Ing Howard Pernía.

Identificadores:

Son los nombres que se les da a las variables, clases y métodos. Se deben de tener presente las

siguientes reglas:

• Deben de empezar por una letra o subrayado.

• Después del primer carácter se pueden usar números

• Distingue las mayúsculas de las minúsculas

• No se debe usar keyword (palabras reservadas del lenguaje)

Temp_media, promedio2, _cuenta //Correcto

Temp-media, 2promedio, cuenta/ciclo //incorrecto

Las palabras reservadas son de uso exclusivo del lenguaje, algunas de ellas son: for. While, do,

throw, static, private, public, entre otras.

Sintaxis en Java

Page 18: Estructuras de Control En Java Prof: Ing Howard Pernía.

Operadores:

Los operadores son las herramientas que nos permite manipular las variables. Con ellos podemos comparar, sumar,

restar, incrementar, asignar, entre otros, valores a las variables. Podemos dividir a los operadores según su tipo en:

• Operadores Aritméticos: estos nos permiten realizar operaciones matemáticas.

• Operadores Lógicos y Booleanos: Los operadores lógicos y booleanos nos permiten manipular y hacer

operaciones lógicas.

• Operadores Relacionales: Se utilizan generalmente para comparar dos variables y ver si cumplen o no una

condición.

• Operadores de Asignación: Estos toman el valor de una expresión o variable y se le asigna a otra

NOTA: En la tabla se puede apreciar que es una forma abreviada de escribir una expresión de suma. También existen

expresiones de asignación para los operando que se han visto, por ejemplo: *=, %=, &&=, etc.

Sintaxis en Java

Operación en Java Operador Ejemplo Lo que hace

Asignar valor a variable = I = 2 Asigna el valor 2 a i

Suma y asigna valor a

variable

+= K += J Suma k + j y el resultado lo

asigna a k

Resta y asigna valor a

variable

-= J -= r Resta j – r y el resultado lo

asigna a j

Page 19: Estructuras de Control En Java Prof: Ing Howard Pernía.

Tipos de Variables:

• Tipos de Datos y Variables: Una variable es la unidad básica de almacenamiento de datos. En el

lenguaje Java, cualquier variable que definamos debe de tener un tipo. Una variable para poder

ser utilizada debe de ser inicializada sino en la compilación se presentan errores. Se pueden

definir dos tipos de datos genéricos a los cuales pueden pertenecer estas variables:

Los tipos Primitivos

Los tipos complejos o clases

Existen ocho tipos de datos primitivos, ellos son:

Números enteros: int, byte, short, long.

Números reales: float, double.

Carácter: char

Lógico: boolean.

Sintaxis en Java

Page 20: Estructuras de Control En Java Prof: Ing Howard Pernía.

• Datos primitivos enteros: Estos representan valores enteros y de acuerdo a su definición

abarcan un conjunto de números determinados.

byte: Almacena en memoria un numero de 8 bits por lo tanto abarca el conjunto de números

que va desde el -127 hasta el 127

short: Usa 16 bits para almacenar un dato, lo que le permite abarcar los números desde el -

32768 hasta 32768.

int. Dispone de 32 bits para almacenar los datos y cubre los números desde el -2147483468

hasta el -2147483468.

long. Dispone de 64 bits para almacenar un dato.

Sintaxis en Java

Page 21: Estructuras de Control En Java Prof: Ing Howard Pernía.

• Datos primitivos Reales: existen dos tipos para representar números reales y de acuerdo a la plataforma,

dependerá la precisión de cada uno de ellos.

float. Usa 32 bits para almacenar un numero.

Double. Usa 64 bits para almacenar un dato.

• Datos primitivos de carácter:

char. Posee un tamaño de 2 bytes y representa un carácter UNICODE. Sus posibles valores son un carácter

entre comillas simples o caracteres especiales por ejemplo: 'a', '\n', '\t‘, etc.

• Datos primitivos de lógicos:

boolean. Sus dos posibles valores son true o false. Su valor por defecto es false.

• Diferencias entre variables primitivas y complejas: Una variable del tipo primitivo contiene el dato directamente

mientras que una variable del tipo complejo es una referencia que apunta a la región en memoria donde esta el

objeto.

Sintaxis en Java

Page 22: Estructuras de Control En Java Prof: Ing Howard Pernía.
Page 23: Estructuras de Control En Java Prof: Ing Howard Pernía.

Acumuladores y Contadores Un contador se usa cuando los incrementos (o decrementos) son periódicos, es decir si vas de 1 en 1, de 3

en 3. Usas el acumulador cuando los incrementos no son periódicos, es decir cuando incrementas 10 y luego

30 y luego 15 y luego -2.

Considera el acertijo clásico como ejemplo (no de programación):

Un autobús sale del terminal con 9 pasajeros, en la primera parada suben 7 personas y bajan 3, vuelven

hacer otra parada, bajan 2 personas y suben 5, nuevamente vuelve a parar, suben 6 personas y bajan 8.

En este caso usas un contador para saber cuantas paradas hizo el autobús y utilizas un acumulador para

saber cuantas personas hay al final en el.

Un acumulador: solo almacena las funciones que realizas.

Un Contador: solo es el medidor y el razonador de las entradas y salidas de las expresiones y operadores

Mas….. En Estructuras de Control (Ciclos)

Page 24: Estructuras de Control En Java Prof: Ing Howard Pernía.

Uso de Variables: para poder usar una variable en el lenguaje Java, primero debemos crearla e inicializarla, sino se

hace ninguno de estos pasos se presentan errores en la compilación. Para declarar una variable se hace una

sentencia compuesta por un tipo y un identificador de la siguiente forma:

Tipo identificador;

Int i; // Declara una variable llamada i del tipo entero

Float j=1.1; // Declara la variable j del tipo real y se inicializa con un valor de 1.1 int a, b, c

a, b, c; // Declara 3 variables enteras del tipo int.

Sintaxis en Java

Page 25: Estructuras de Control En Java Prof: Ing Howard Pernía.

La estructura básica de un programa en java es la siguiente:

// Declaración de clase

Public class identificador {

// declaración de variables

public static void main (String [ ] args) {

//Método que empieza la ejecución del programa

}

}

Estas son las principales reglas de sintaxis y las operaciones básicas para manipular variables.

Sintaxis en Java (Mi primer programa en Java)

Page 26: Estructuras de Control En Java Prof: Ing Howard Pernía.

/**Mi primer programa en Java

* Este es un comentario.

* Este programa declara unas variables primitivas y las muestra

* en pantalla

* */

public class PrimerPrograma {

//El método Main empieza la ejecución de la aplicación

public static void main(String[] args) {

int i=0; //Declara variable entera

int j=10; //Declara variable entera llamada j de valor 10

char letra='a';

double pi=3.1416;

boolean logico=true;

//Intrucciones para mostrar en pantalla las variables

System.out.println("El valor de i es: " + i);

System.out.println("El valor de j es: " + j);

System.out.println("El valor de letra es: " + letra);

System.out.println("El valor de pi es: " + pi);

System.out.println("El valor de lógico es: " + lógico);

} // Fin del método Main

} // Fin de la Clase PrimerPrograma

Sintaxis en Java (Mi primer programa en Java)

Page 27: Estructuras de Control En Java Prof: Ing Howard Pernía.

Sintaxis en Java (Mi primer programa en Java)

Page 28: Estructuras de Control En Java Prof: Ing Howard Pernía.

Desde la línea 1 a la 5 tenemos un comentario que encabeza nuestro programa. Generalmente este comentario

contiene lo que hace el programa, quien lo hizo y la versión entre otras cosas. . Las líneas 6 y 7 son líneas en blanco

para facilitar la lectura del programa. La línea 8

Public class PrimerPrograma {

Comienza la declaración de clase para la clase PrimerPrograma. Todo programa de Java debe de consistir de al

menos una declaración de clase que el programador debe definir.

La palabra class es una palabra reservada para la declaración de una clase. Por convención, todos los nombres de

clases deben empezar en letra mayúscula, y la primera letra de las siguientes,

por ejemplo: NombreDeClase.

El nombre PrimerPrograma es un identificador.

Las llaves “{}” indican el cuerpo de declaración bien sea de una clase, método o algún otro bloque de programación.

En el ejemplo todo lo que este entre la llave de la línea 8 y la llave de la línea 27 pertenece al cuerpo de la clase

PrimerPrograma

La línea 9 es un espacio en blanco para mejorar la legibilidad del programa. La línea 10 es un comentario que

indica el propósito del método main. La línea 11

Public static void main( String[ ] args) {

Sintaxis en Java (Mi primer programa en Java)

Page 29: Estructuras de Control En Java Prof: Ing Howard Pernía.

Es el punto de inicio de toda aplicación Java. Los paréntesis después de main indican que este es un método. Una

declaración de clase de java generalmente posee muchos métodos pero solo uno puede llamarse main y se debe de

definir como se muestra en la línea 11. los métodos pueden devolver información una vez que han culminado su

ejecución, de no ser este el caso en su declaración deben de contener la palabra void que es una palabra reservada

del lenguaje que indica que el método no devuelve información. La llave que abre indica el inicio del cuerpo del método

y la llave derecha “}” en la línea 26 indica el fin del cuerpo del método.

Desde la línea 11 hasta la 17 se declaran e inicializan algunas variables. En la línea 11 se declara una variable que

guarda un dato entero y le asignamos el valor de 0. En la línea 13 se declara otra variable de tipo entero llamada j y se

le asigna el valor de 10. en la línea 15 se declara una variable de tipo carácter y se le asigna el valor ‘a’. Al hacer la

asignación de letras a los tipos char se debe colocar la letra entre comillas simples. En la línea 16 se declara una

variable llamada pi del tipo real y se le asigna el valor de 3.1416. en la línea 17 se declara una variable llamada lógico

y se le asigna el valor de true.

La línea 20

System.out.printl(“El valor de i es: ” + i);

Le indica a la computadora que imprima en la pantalla la cadena entre comillas dobles y además que muestre el valor

de i mediante el operador +

Sintaxis en Java

Page 30: Estructuras de Control En Java Prof: Ing Howard Pernía.

System.out es un objeto genérico que se incluye por defecto conocido como objeto de salida estándar. Se utiliza el

método println que muestra una cadena de caracteres en la ventana de comandos del sistema operativo donde se

ejecuta el programa. La cadena de caracteres es lo que esta entre los paréntesis del método. Gracias al operador más

hemos podido concatenar la cadena entre paréntesis con el valor de la variable i. las siguientes instrucciones hacen lo

mismo para las otras variables.

Luego de haber guardado el programa con el mismo nombre de la clase y extensión .java, desde la línea de comando

nos vamos al directorio donde se encuentra el programa y se ejecuta el comando

Javac PrimerPrograma.java

Si el programa no contiene errores se genera un archivo llamado PrimerPrograma.class el cual contiene los códigos

de byte de java que representan la aplicación. Estos códigos de byte son interpretados por el interprete Java cuando

se indique que debe ejecutar la aplicación.

Sintaxis en Java

Page 31: Estructuras de Control En Java Prof: Ing Howard Pernía.

Para ejecutar la aplicación se escribe:

Java PrimerPrograma

Con los que el interprete de Java carga el archivo .class y empieza la ejecución del programa. La salida de esta

aplicación se muestra a continuación:

El valor de i es: 0

El valor de j es: 10

El valor de letra es: a

El valor de pi es: 3.1416

El valor de lógico es: true

RESUMEN: Se debe de crear e inicializar una variable antes de poder utilizarla

Nota: mas adelante se hablara de las palabras reservadas public y static

Sintaxis en Java

Page 32: Estructuras de Control En Java Prof: Ing Howard Pernía.

bool, false, true

Sinopsis

La palabra-clave bool declara un tipo especial de variable, denominada booleana que solo puede tener dos valores:

cierto y falso.

Nota: por razón de los valores que pueden adoptar (cierto/falso), a estas variables también se las denomina variables

lógicas.

Sintaxis

bool <identificador>;

Descripción

Evidentemente el tipo bool está especialmente adaptado a para realizar comprobaciones lógicas; de hecho, todo el

álgebra de Boole se basa justamente en el uso de este tipo de variables de solo dos valores mutuamente excluyentes.

Por su parte, las palabras clave false y true son literales que tienen valores predefinidos (se puede considerar que son

objetos de tipo booleano de valor constante predefinido). false tiene el valor falso (numéricamente es cero), true tiene

el valor cierto (numéricamente es uno). Estos literales booleanos son Rvalues; no se les puede hacer una asignación

(no pueden estar a la izquierda de una asignación).

• bool val = false; // declara val variable Booleana y la inicia

• val = true; // ahora se cambia su valor (nueva asignación)

• true = 0; // Error!!

Bool - Boolean

Page 33: Estructuras de Control En Java Prof: Ing Howard Pernía.

Conversiones entre Tipos de Datos

La sintaxis de la operación Cast es la siguiente:

(tipo) variable o dato

tipo, especifica el tipo al que se quiere convertir.

Variable o dato, es el valor que se quiere convertir.

En Java es común que se requiera en un programa convertir de un tipo de datos a otro. Entre los datos numéricos

las conversiones se hacen de forma automática cuando operaciones que involucran varios tipos de datos se efectúan,

dando como resultado la solución en el tipo de dato que ofrezca la mayor precisión. La jerarquía de las conversiones

de mayor a menor es:

double > float > long > int > short > byte

Es posible convertir un dato de una jerarquía superior a una inferior pero hay un riesgo de perder datos en el

cambio. Este tipo de operaciones se llama Cast y para ejecutar una conversión de tipo, en la sentencia se debe de

anteponer el tipo al que se desea convertir entre paréntesis antes de la operación, por ejemplo:

K = (int) 8.555; // convierte 8.555 a un numero entero.

Sintaxis en Java

Page 34: Estructuras de Control En Java Prof: Ing Howard Pernía.

En este ejemplo se convierte el numero 8.555 el cual es de tipo doublé a un tipo entero que se guarda en la variable

k que debe de ser de tipo entero, o de lo contrario se produce un error de compilación por incompatibilidad entre tipos.

En la conversión se pierde la parte decimal del numero, por esto al realizar conversiones de este tipo se deben de

tener en cuenta estas premisas.

Aplicación Practica: Realice un programa que permita ver como funcionan los operadores, distinguiremos la

conversión entre los tipos y se tomaran en cuenta un poco el uso de variables. En esta ocasión solo se utilizaran el uso

de operadores aritméticos.

Los requerimientos para la aplicación son los siguientes:

Para realizar estos cálculos se debe realizar el siguiente programa

Sintaxis en Java

En un salón de clases de 40 alumnos, se realizó una prueba dando como resultado que 27 alumnos

aprobaron el examen. Se necesita un programa que muestre el porcentaje de alumnos reprobados y

aprobados en el salón.

Page 35: Estructuras de Control En Java Prof: Ing Howard Pernía.

Sintaxis en Java

Page 36: Estructuras de Control En Java Prof: Ing Howard Pernía.

La salida del programa es:

La variable del tipo float tiene el valor de: 67.0

El % de alumnos aprobados es: 67.5

El % de alumnos reprobados es: 32.5

El % de aprobados convertido a enteros es: 67

El % de reprobados convertido a enteros: 32

Después de haber solventado los requerimientos con el programa antes descrito. Primero se declara la clase y el

método main como se vio en el primer programa. En la línea 5 y 6 declaramos los datos que conocemos que son la

cantidad de alumnos y los alumnos aprobados. Se inicializan estas variable de tipo entero con los valores conocidos.

En la línea 9 se declara una variable entera sin inicializar que contendrá la cantidad de alumnos reprobado que lleva

por nombre reprobados.

En la línea 10 y 11 se declaran dos variables del tipo float que contendrán el porcentaje de alumnos aprobados y

reprobados respectivamente.

En la línea 15 restamos el numero de alumnos menos la cantidad de alumnos aprobados para obtener la cantidad

de alumnos reprobados haciendo uso del operador menos ( - ), el resultado de esta operación es asignado a la

variable reprobados.

Sintaxis en Java

Page 37: Estructuras de Control En Java Prof: Ing Howard Pernía.

Se realiza esta operación para obtener el porcentaje de alumnos aprobados. En esta operación ocurre una

conversión implícita, las variables aprobado y alumnos son del tipo int (enteros), por lo tanto el resultado de esta

operación es de tipo int, este es convertido automáticamente por java en un valor tipo float para que pueda ser

asignado a la variable aprox100. Al ver el contenido de la variable aprox100 luego de esta operación, se observa que

esta contiene solo la parte entera de nuestro resultado, debido a que la división era solo de números enteros, esta

devuelve un numero entero y omite los decimales.

En la línea 24,

aprox100 = (float) aprobado * 100 / alumnos;

Para solventar el truncamiento del resultado, se opta por transformar el valor de la variable aprobado por un valor

del tipo entero para esta operación, el máximo tipo en la jerarquía de la operación será un tipo float y el resultado de la

operación incluirá los decimales.

En la línea 27 se realiza lo mismo para obtener el porcentaje de alumnos reprobados.

Sintaxis en Java

Page 38: Estructuras de Control En Java Prof: Ing Howard Pernía.

Luego en las líneas desde la 29 hasta la 32 se muestran los resultados de ejecutar estas operaciones. Java permite

que una instrucción se escriba en dos líneas, siempre y cuando se finalice una cadena y en la siguiente línea se

empiece con el signo + como se ve en las líneas 29 y 30.

Desde la línea 33 hasta la 36 se muestran bien los valores de los porcentajes de alumnos reprobados y aprobados,

pero esta ves se han convertido estos valores del tipo float al tipo int pudiendo notar que se pierde la parte decimal al

realizar la conversión.

Sintaxis en Java

Page 39: Estructuras de Control En Java Prof: Ing Howard Pernía.
Page 40: Estructuras de Control En Java Prof: Ing Howard Pernía.

Introducción

Estructura de Control

Estructura de Selección Simple IF

Estructura de Selección doble if..else

Estructura de Repetición WHILE

Estructura de Repetición FOR

Estructura de Repetición Do..While

Instrucciones de ruptura break, continuo

Estructura de selección múltiple

Ejemplos Prácticos

Control de Flujo en Java

Page 41: Estructuras de Control En Java Prof: Ing Howard Pernía.

Introducción

Para realizar un programa que de solución a un problema es necesario tener una comprensión detallada del

problema, además de una metodología cuidadosamente detallada para resolver el mismo. Para escribir un programa,

es necesario comprender los bloques de construcción disponibles y como se ejecutan las instrucciones. Para resolver

un problema, es necesario ejecutar una serie de acciones en un orden especifico, a continuación veremos las

herramientas básicas que nos permiten llevar un control del orden en que se ejecutaran nuestras instrucciones. Estas

herramientas son comunes a la mayoría de los lenguajes de programación.

Control de Flujo en Java

Permite al programador especificar que instrucción

ejecutar.

Page 42: Estructuras de Control En Java Prof: Ing Howard Pernía.

Estructura de Control

Generalmente, en un programa se ejecutan las instrucciones de forma secuencial, pero que sucede cuando la

siguiente instrucción que queremos que se ejecute no es la siguiente en la secuencia. Java dispone de varias

instrucciones para indicar que la siguiente instrucción a ejecutar, tal vez no sea la siguiente en la secuencia, a esto se

le conoce como transferencia de control.

Gracias a el trabajo de investigación de Bohm y Jacoponi fue demostrado que todos los programas pueden

escribirse en términos de tres estructuras de control:

Estructura de secuencia

Estructura de selección

Estructura de repetición

La estructura de secuencia esta integrada a Java, al menos que se indique lo contrario Java ejecuta las acciones

una después de otra.

Control de Flujo en Java

Page 43: Estructuras de Control En Java Prof: Ing Howard Pernía.

Java posee tres tipos de estructura de selección (if, if … else, swicth).

• La instrucción if es una estructura de selección simple ya que selecciona o ignora una sola condición.

• La instrucción if … else es una estructura de selección doble porque selecciona entre dos opciones diferentes.

• La instrucción switch es una estructura de selección múltiple ya que selecciona entre diversos grupos de

instrucciones.

Java también cuenta con tres estructuras de repetición (while, do … while, for) que permite que el programa ejecute

instrucciones repetidas mientras que una condición (llamada condición de continuación de ciclo) sea verdadera, las

instrucciones while y for ejecutan las acciones en sus cuerpos 0 ó mas veces, mientras que la instrucción do ejecuta

las instrucciones en su cuerpo al menos una vez.

Cada programa se forma combinando tantas estructuras de secuencia, selección y repetición como le sea

apropiado para el algoritmo que implemente el programa.

Control de Flujo en Java

Page 44: Estructuras de Control En Java Prof: Ing Howard Pernía.

Estructura de Selección Simple IF

Sintaxis:

if (condición) {

instrucción1;

instrucción2;

}

Las instrucciones dentro del cuerpo de la sentencia if solo se ejecutan si la condición entre paréntesis es verdadera.

Véase el siguiente ejemplo donde se requiere determinar imprimir un mensaje en la pantalla si un alumno tiene una

calificación mayor ó igual a 10.

If (nota >= 10) {

System.out.println(“Aprobado”);

}

Si la nota del estudiante es mayor o igual a 10, se imprime en la pantalla “Aprobado”, pero si la nota es menor a 10

la condición nota >= 10 pasa a ser falsa y las instrucciones entre las llaves o cuerpo del if no se ejecutan.

Control de Flujo en Java

Page 45: Estructuras de Control En Java Prof: Ing Howard Pernía.

Estructura de Selección Doble if … else

Sintaxis:

if (condición) {

instrucción1;

} else {

instrucción2;

}

Ejemplo:

If (nota >= 10) {

System.out.println(“Aprobado”);

}

else

{

System.out.println(“Reprobado”);

}

En este ejemplo si la nota es mayor a 10 se imprime en la pantalla el mensaje “aprobado”, pero si nota no es mayor

a 10 entonces se imprimirá en la pantalla “Reprobado”. Entonces si la condición es verdadera se ejecutan las

instrucciones dentro del cuerpo del if, pero si la condición es falsa, se ejecutan las instrucciones dentro del cuerpo del

else.

Control de Flujo en Java

Permite al programador ejecutar instrucciones repetidas veces,

siempre y cuando una condición de control sea verdadera.

Page 46: Estructuras de Control En Java Prof: Ing Howard Pernía.

Estructura de Repetición WHILE

Sintaxis:

while (condición) {

grupo de instrucciones;

}

Ejemplo:

int numero = 0;

while (numero <= 20)

{

System.out.println(“numero”);

numero = numero + 2;

}

Este fragmento de código muestra en pantalla los números de 0 al 20. Mientras la variable “numero” sea menor a

20, se ejecutaran las instrucciones dentro del cuerpo del while. Para evitar que el programa se ejecute un sin numero

de veces, se debe asegurar que la condición de evaluación del ciclo pueda ser falsa, esto se logra mediante la

instrucción:

numero = numero +2;

La cual suma 2 al contenido de la variable numero y el resultado se lo asigna a la variable numero,

incrementándose a si misma, tantas veces como se repita el ciclo.

Control de Flujo en Java

Permite al programador ejecutar instrucciones

repetidas veces y especificar los detalles de la

repetición mediante el uso de contadores.

Page 47: Estructuras de Control En Java Prof: Ing Howard Pernía.

Estructura de Repetición FOR

Sintaxis:

For ( inicialización; condición; incremento)

{

grupo de instrucciones;

}

Ejemplo:

for (int i=1; i<=10; i++){

System.out.prinln(i);

}

En este fragmento de codigo se imprime los numeros del 1 al 10. Para una mejor comprensión, en la siguiente

figura se muestra el encabezado de la instrucción for del ejemplo.

For ( int i = 1 ; i <= 10 ; i++ ) // Expresiones presentes en este fragmento: Palabra clave, variable de

control, valor inicial de la variable, condición de continuidad del ciclo.

La instruccion for, en un comienzo ejecuta la “inicializacion”, que no es mas que asignar el valor de inicio a la variable

que controla al ciclo. Luego verifica si la “condicion de continuidad” es verdadera o falsa; si es verdadera ejecuta el

grupo de acciones dentro de su cuerpo.

Control de Flujo en Java

Page 48: Estructuras de Control En Java Prof: Ing Howard Pernía.

Al finalizar ejecuta la acción de incremento que se emplea para asegurar que la condición de control sea falsa.

Nuevamente verifica si la “Condición de Continuidad” es verdadera repitiendo el grupo de acciones hasta que la

condición sea falsa. La instrucción de incremento de la variable de control es el equivalente a decir:

i = i + 1;

y lo que hace es sumar 1 al valor que posee la variable i y asignarlo a la variable i. Existen operadores de

incremento y decremento de variables, como el que acabamos de ver, para decrementar una variable en 1 solo

debemos de sustituir los signos “++” por “ - - ” y se decrementara el valor de la variable en 1.

Control de Flujo en Java

Page 49: Estructuras de Control En Java Prof: Ing Howard Pernía.

Estructura de repetición Do .. While

Sintaxis:

do{

grupo de instrucciones;

}while (condición)

El siguiente ejemplo muestra en pantalla los números del 1 al 10

int i = 0;

do{

system.out.println(i);

i++;

} while(i<=10)

En este ejemplo se repetirán las acciones dentro del cuerpo de do hasta que la condición i <= 10 sea falsa.

Control de Flujo en Java

Son utilizadas para interrumpir bloques de repetición

Page 50: Estructuras de Control En Java Prof: Ing Howard Pernía.

Instrucciones de ruptura break, continuo

En Java existen dos instrucciones de repetición

Break: permite interrumpir la ejecución de un ciclo y además la ejecución de la sentencia switch

for (int i = 1 ; i <= 10 ; i++) {

if (i==8){

break;

}

System.out.println(i);

}

En este fragmento de código anterior, se muestra en pantalla los números del 1 al 7 debido a que cuando “i” es igual a 8

se interrumpe el ciclo for.

Continúe: Obliga a que un bucle comience en la siguiente iteración.

for (int i = 1 ; i <= 10 ; i++){

if (i==8){

continue;

}

System.out.prinln(i);

}

En el fragmento de código anterior se ha reemplazado la instrucción break por la instrucción continúe, dando como resultado que

se impriman los números del 1 al 10, pero cuando i es igual a 8 se ejecuta la instrucción continúe lo que obliga al ciclo a continuar

a la siguiente iteración dejando sin mostrar el numero 8. La salida del ciclo seria: 1 2 3 4 5 6 7 9 10

Control de Flujo en Java

Page 51: Estructuras de Control En Java Prof: Ing Howard Pernía.

Estructura de Selección múltiple

Sintaxis:

switch(expresion){

case 1: grupo de instrucciones

case 2: grupo de instrucciones

case 3: grupo de instrucciones;

default: grupo de instrucciones

}

Ejemplo:

switch (opcion) {

case 1:

system.out.prinln(“Usted pulso la opcion 1”);

break; // interrumpe el switch

case 2:

system.out.prinln(“Usted pulso la opcion 2”);

break; // interrumpe el switch

default:

system.out.prinln(“Opcion no valida”);

}

En el ejemplo, la variable de selección se llama “opción”, el programa compara el valor de la variable con cada valor de las etiquetas switch;

por ejemplo si la variable “opción” es igual a 2 entonces, el programa compara todos los valores después de la etiqueta case 2 y ejecuta las

instrucciones del case 2 ya que coincide con su valor, la cual muestra en pantalla el mensaje “Usted pulso la opción 2”, la instrucción break en

el switch evita que las instrucciones de las etiquetas case por debajo de la seleccionada no se ejecuten y obliga a salir de este bloque de

estructura.

Si “opción” posee un valor diferente al 1 ó 2, se salta al grupo de acciones de la etiqueta default que mandan a mostrar en pantalla “opción

no valida”

Control de Flujo en Java

Page 52: Estructuras de Control En Java Prof: Ing Howard Pernía.

Ejemplos

Necesitamos elaborar una aplicacion que dado el salario de un empleado imprima los siguientes mensajes en pantalla dependiendo de

su sueldo

• Mayor a 2.000 “Ganas bien”

• Mayor a 2.000 y menor que 1.000 “con los cesta ticket aguantas”

• Mayor a 500 y menor que 1.000 “Vamos a ver si te alcanza”

• Menor a 500 “Y tienes que pagar la luz”

Por los momentos no se introduciran datos por teclado, asi que salario sera una variable definida en el programa

Public class Salario {

public static void main(String[] args)

{

int salario = 800; // Salario del empleado

// comenzamos a evaluar el salario del empleado

// para saber que mensaje debemos escribir

// evaluamos si el salario es mayor a 2.000

if (salario >= 2.000)

{

system.out.println (“Ganas bien”);

}

else

if (salario >= 1.000 && salario < 2.000) {

System.out.println (“Con los cesta ticket aguantas”);

}

else

if (salario >= 500 && salario < 1.000){

System.out.println ("Vamos a ver si te alcanza");

}

else

if (salario < 500)

{

system.out.println("cambia de trabajo");

}

} // fin metodo main

} // fin de clase

Page 53: Estructuras de Control En Java Prof: Ing Howard Pernía.

La ejecución de este programa muestra en pantalla lo siguiente:

vamos a ver si te alcanza

En este ejemplo se asume que la variable “salario” tendrá el sueldo del trabajador. En la línea 11 se hace la primera

evaluación de salario con la instrucción.

if (salario >= 2000000)

Como el salario del trabajador es mucho menor esta condición es falsa e ignora las instrucciones dentro de su

cuerpo y para ahora a ejecutar las instrucciones en la etiqueta else. Se debe acotar que como solo es una instrucción

la que esta dentro del cuerpo de la etiqueta else de la linea 15, no es necesario que encerremos entre llaves su

cuerpo. La instrucción dentro del cuerpo de la etiqueta else es la sentencia if en la linea 16 que luce como sigue:

if (salario >= 1000000 && salario < 2000000)

Donde evaluamos si el salario esta comprendido entre uno y dos millones. En esta condición se ha utilizado el

operador “&&” que hace una operación and entre las dos expresiones. Para que esta condición sea verdadera, las dos

condiciones deben ser verdaderas, es decir, salario debe ser mayor de 1000000 y además salario debe ser menor que

2000000. de ser falsa una de estas dos condiciones, el resultado es falso y pasa a ejecutar el cuerpo del else de la

linea 20. las siguientes sentencia siguen la misma lógica que las líneas anteriores.

Ejemplos

Page 54: Estructuras de Control En Java Prof: Ing Howard Pernía.

Ejemplos

Calculo de intereses compuesto. En este ejemplo elaboraremos un programa calcule y muestre en pantalla el monto de dinero de una cuenta

suponiendo que al comienzo el cliente deposito 1000 dolares en la cuenta y todos los intereses fueron depositados en esa cuenta durante 10 años.

Para este calculo nos valemos de la siguiente formula: c= p(1 + t)² (no es 2 es n)

Donde,

C es la cantidad de dinero depositada al final del n-esimo año

N es el numero de años

T es la tasa de interes

P es el monto que se invirtio originalmente

import java.text.DecimalFormat;

public class InteresCompuesto {

public static void main(String[] args) {

double cantidad; // Cantidad depositada

double principal = 1000; // inversion inicial

double tasa = 0.05; // tasa de interes

// Objeto que establece el formato de 2 decimales de un numero

DecimalFormat dosdecimales = new DecimalFormat (".00");

// mostramos en pantalla la primera linea de texto

System.out.println("año \tCantidad en deposito");

for ( int anio = 1; anio <= 10; anio++)

{

// Calcular la nueva cantidad para el año especifico

cantidad = principal * Math.pow(1.0 + tasa, anio);

System.out.println(anio + "\t" + dosdecimales.format(cantidad));

}

}

}

Page 55: Estructuras de Control En Java Prof: Ing Howard Pernía.

El resultado de la ejecución de esta aplicación es el siguiente:

Java posee librerías predefinidas que podemos usar, para esto solo se debe de importar la clase que queremos usar

en nuestro programa. Un ejemplo de ello se ve en la línea 1 donde la instrucción

import java.text.DecimalFormat;

Importa la clase DecimalFormat la cual nos permite preformatear los números con el formato que nosotros

queramos.

Año Cantidad en

Deposito

1 1050,00

2 1102,50

3 1157,63

4 1215,51

5 1276,28

6 1340,10

7 1407,10

8 1477,46

9 1551,33

10 1628,89

Ejemplos

Page 56: Estructuras de Control En Java Prof: Ing Howard Pernía.

En la línea 12

DecimalFormat dosdecimales = new DecimalFormat ( “ .00” );

Se crea una instancia de la clase DecimalFormat la cual especifica que se usaremos un formato de dos decimales.

En la línea 17

for ( int anio = 1; anio <= 10; anio++ )

Se declara un ciclo que repite las instrucciones dentro de su cuerpo 10 veces. La instrucción para el calculo de la

cantidad

cantidad = principal * math.pow(1.0 + tasa, anio);

Muestra un método nuevo llamado Math.pow. Este es un objeto intrínseco de Java que permite hacer operaciones

matemáticas. El método pow calcula la potencia del primer termino (1.0 + tasa) elevado al segundo (anio). El resultado

de esta operación es asignado a la cantidad.

En la línea 21 se manda a mostrar en pantalla el resultado, luego de mostrar el año se anexa el carácter especial

“\t” que marca una tabulación y por ultimo se hace uso del objeto dosdecimales para que convierta el valor de decimal

a un formato de solo dos decimales.

Ejemplos