SlideShare a Scribd company logo
1 of 30
 Java  Básico Programación 302
Esta presentación tiene como objetivo ver varios temas básicos de Java. Se va a utilizar en varias clases, no sólo en una, ya que el tiempo no alcanzaría. Para cada ejemplo mostrado,  se realizará el programa correspondiente en java, si el ejemplo es un programa, lo editarán y ejecutarán para analizar el resultado del mismo. Deberán analizar los conceptos vistos con anterioridad, e indicar en una clase posterior  la lista de conceptos involucrados en cada uno de estos ejemplos, es decir, si en un programa  se ven operadores de incremento, indicar que contiene estos operadores, si muestra concatenación de cadenas, de la misma manera,  ámbito de variable, etc.  Deben guardar  los programas que realicen en una carpeta, y la fecha de creación del programa debe coincidir con la del archivo guardado( como máximo debe tener un día de diferencia).
Un ejemplo con double Un ejemplo para calcular el área de un círculo (PI*r2) publicclassArea { publicstaticvoidmain(String[] args)    { double PI = 3.1416; double radio = 3.2, area; area = radio * radio * PI;		// Calculo el área System.out.println( "El área es: " + area);   }  Investigar para la siguiente clase como se define una constante, y  volver a hacer este ejemplo, pero utilizado a PI y radio como constantes
Ámbito de una variable El ámbito de una variable u objeto es el espacio del programa en el que esa variable existe. Por ello, se habla de “ámbito de vida” De forma general (hay excepciones que veremos más adelante), la vida de una variable comienza con su declaración y termina en el bloque en el que fue declarada (los bloques de código se delimitan por llaves: {}). Por ejemplo, ¿cuál es el ámbito de la variable ‘radio’?: publicstaticvoidmain(String[] args) { double PI = 3.1416; double radio = 3; System.out.println( “El área es” + (PI*radio*radio) ); }
Conversión de tipos Se ha visto que los datos tienen un tipo. Pero en ocasiones nos conviene convertir un dato de su tipo original a otro Tipos de conversión: Automática o implícita. El tipo destino es más grande (mayor número de bits) que el tipo origen (ensanchamiento o promoción): int Origen = 65; float Destino = 4.35f; Destino = Origen;	// ¿Cuál es el valor de ‘Destino’? Hacer el programa en java, que pruebe este ejemplo 	También hay conversión automática ante tipos compatibles. Por ejemplo, la asignación de un int a un char, investigar un ejemplo y traerlo para la siguiente clase. Explicita. La conversión se produce cuando el tipo destino es más pequeño que el origen (estrechamiento). Para ello debemos realizar un moldeado (cast): double Origen = 65.13; int Destino = 4; Destino = (int) Origen; 	// ¿Cuál es el valor de ‘Destino’? Hacer el programa en java que pruebe este ejemplo La conversión por medio de métodos es en realidad una aplicación de los tipos de conversión anteriores. Para ver ejemplos  (transparencia dedicada a la clase String): String p = String.valueOf( numero); double radio = Double.parseDouble( cadena ); Vamos a dejar este ejemplo para el tema entrada de datos
6 Comprender la conversión de tipos Suponer que se tiene en una variable (int) el precio de un producto, el cual se quiere incrementarlo en un 20%: int precio = 10000; precio = precio * 1.2; Este código parece correcto, sin embargo el compilador nos informa de un error: “Error num.: 355 : puede perderse precisión: double, hacía falta int”. ¿Cuál es la razón? Para entenderlo, conviene comprender como trabaja el ordenador: El ordenador trata de realizar el producto (precio*1.2) entre un int y un double (1.2), para lo cual el ordenador convierte de forma automática el int en un double. Hasta aquí todo va bien, el resultado de multiplicar dos números double es un double: precio = precio * 1.2; (int) (double) (conversión automática a double) (double) ,[object Object],Para que se produzca esta conversión es necesario realizar un casting (cast): precio = (int) (precio * 1.2); // Esto si es correcto
Sentencias de control
8 Introducción Las sentencias de control nos ayudan a que el flujo de ejecución del programa deje de tener un carácter lineal. Ejemplos de sentencias de control en la vida cotidiana: Ejemplo 1: Si el cheque es correcto y hay fondos Entonces pagar Si no: No pagar Ejemplo 2: Mientras la salsa no este densa: Calentar y remover Ejemplo 3: Siga adelante Cuando llegue a la plaza: Si es hora pico Entonces de vuelta a la derecha Si no: Siga en línea recta Vamos a ver los siguientes tipos de sentencias de control: Selección Iteración
9 if / else (I) La sentencia básica para realizar bifurcaciones o ramificaciones. Formato: if (condición) 	sentencia 1; [else 	sentencia 2] La condición es una expresión booleana. Si es true, se ejecuta la sentencia 1; si es false, se ejecuta la sentencia 2 (si existiese) Ejemplo: int a = 3, b = 9, c; if (a < b && a != 0) 	c = b – a; else 	c = a – b; Precaución: La tabulación es fundamental para realizar código legible
10 Instrucciones de flujo if..else publicclassControlFlujo{     publicstaticvoidmain(Stringarg[]){         		//Asigacion de variable        	 		byte caliEstudi= 100;                 		//Flujo de control if if( caliEstudi >= 60)     					System.out.println("Aprobado " + caliEstudi);     	}//main }//class
11 if / else (II) Si hay más de una sentencia se deben delimitar los bloques por llaves {}. En el siguiente ejemplo se va a determinar las ventajas que tiene un cliente en función de los puntos de su tarjeta de compra: if (puntos > 1000) { tipo_cliente = "VIP";       descuento = 0.05f; } else { tipo_cliente = "Normal";       descuento = 0.02f; } System.out.println( "Tipo: " + tipo_cliente + "Descuento: " + descuento*100 + "%"); Los condicionales pueden ser anidados, es decir, que uno este dentro de otro. En el ejemplo se va a añadir otra condición: para los clientes de más de 1000 puntos, si su antigüedad es mayor de 1825 días, se le otorgará un descuento del 6%: if (puntos > 1000) { tipo_cliente = "VIP";       descuento = 0.05f; if (antiguedad > 1825)           descuento = 0.06f; }
Ejemplo  Condicional publicclassEjercicioCondicional { //Comienzo del flujo principal del programa. publicstaticvoidmain(String [] argumentos)  { // Uso de if.  intx = 5; int y = 7; comparar(x,y); comparar(7,5); comparar(5,5);  }// fin main publicstaticvoid salida ( String cadena )  { System.out.println(cadena);  } // fin salida, como no estamos utilizando un objeto aún, el método se declara static publicstaticvoid comparar(int entero1, int entero2)  { if(entero1 > entero2)          salida("El primer argumento es menor"); else if(entero1 < entero2) salida ("El primer argumento es mayor."); else            salida("Los dos argumentos son iguales");   }// fin comparar, es static el metodo ya que aún no utilizamos un objeto  }//fin classEjercicioCondicional
Atributo static Un atributo static no es un atributo específico de un objeto , sino más bien es un atributo de la clase; esto es, un atributo del que sólo hay una copia que comporten todos los objetos de la clase. Por esta razón, un atributo static existe y puede ser utilizado aunque no exista ningún objeto de la clase.
14 switch Formato: switch ( expresión ) {		// expresión: no tiene que ser booleano 	case constante1: 		secuencia de sentencias 		break; 	case constante2: 		secuencia de sentencias 		break; 	... 	default: 		secuencia de sentencias } No olvidar ‘break’. Pero a veces es adecuado omitirlo: switch ( categoria ) { 	case 1: 	case 2: 		porcen = 0.2;	// Tanto para 1 como para 2  		break; 	case 3: 		porcen = 0.15; 		break; 	default: 		porcen = 0.1; }
15 Instrucciones de flujoswitch Ejemplo:  switch (modeloAuto) { 	case DELUJO: System.out.printl(“Guao”);		break; 	case ESTANDARD; System.out.println(“Bueno”); 		break; 	default: System.out.println(“Hum”); 	} Tipos datos para switch Permitidos: ,[object Object]
Promover a int:
byte
short
charNo permitidos: ,[object Object],[object Object]
17 while Formato: while (condición) Sentencia La sentencia puede ser un bloque delimitado por llaves ({}). El bucle se realiza mientras la condición sea cierta Ejemplo en el que se modifica un vector de números, de tal modo que se pone el cuadrado del número que antes estuviese: double serie[] = {23, 4, 36, 9}; int i = 0; while ( i < serie.length ) { System.out.print( "Posición: " + i + " Anterior: " + serie[i] );       	serie[i] = serie[i] * serie[i]; System.out.println( " Cuadrado: " + serie[i] );       	i++;     } Bucle Posición: 0	 Anterior: 23.0	Cuadrado: 529.0 Posición: 1	 Anterior: 4.0	 	Cuadrado: 16.0 Posición: 2	 Anterior: 36.0	Cuadrado: 1296.0 Posición: 3	 Anterior: 9.0		Cuadrado: 81.0
Investigar n para la siguiente clase: length Cómo se declara e inicializa un vector Y cómo se accede a un elemento del vector
Ejemplos while  Tabla  multiplicar de un numero publicclassEjemploWhile { publicstaticvoidmain (Stirng [] args)    { int n, i;  n es numero e i un contador        n= Integer.parseInt( args[0]);       i=0; while)(i <=10)       { System.out.println (n+ “x ” +i+ “ = ” + (n*i));         i++       }// fin while   }fin main }fin class Realizarlo en clase, recordar que al ejecutar el programa deben mandar el número como argumento, tal como lo hicieron con el ejercicio TotalHoras.
Otro ejemplo while publicclasss Ejemplowhile2 { publicstaticvoidmain ( Stringargs[])   { int n, divisor;      n= Integer.parseInt(args[0]); System.out.println(“Los divisores son: ”);      divisor=n; while (divisor>0)      { if ((n%divisor)==0) System.out.println(divisor);         divisor—      } fin while   }  fin main }  fin class
21 for (I) En la vida cotidiana hay numerosos casos de iteraciones (repeticiones). Por ejemplo, si alguien tiene que asignar un número a las cinco personas que hay en una habitación haría algo así: for (el número es 1; mientras que el número sea < 6; incremento el número) Digo en voz alta el número, señalando a la persona correspondiente De forma semejante, el formato de for es: for ( inicialización; condición; variación )  	Sentencia Con un ejemplo puede aclararse. Suponer que se quiere mostrar por pantalla los cuatro primeros números enteros, empezando por el 3: La inicialización sería: empezar con el número 3 Condición: mientras que el número sea menor que 7 (es aquello que debe cumplirse para poder volver a repetir la sentencia) Variación: incrementar en uno el número Sentencia (aquello que se debe iterar o repetir, en nuestro ejemplo 4 veces): mostrar el número por pantalla Ejemplo: int i; for ( i = 3; i < 7; i++) System.out.println( i ); Es posiblesaltar la inicialización (empieza en el valor previo) int i = 3; for ( ; i < 7; i++) System.out.println( i );
22 for (II) Vamos a ver paso a paso como actua la iteración Ejemplo: int i; for ( i = 1; i < 3; i++) System.out.println( i ); Al observar la ejecución paso a paso es importante recordar: Siempre se evalúa la condición ANTES de ejecutar la sentencia DESPUÉS de la sentencia siempre se realiza la variación Se pueden iterar varias variables, para lo cual se necesitan comas: for(i=0, k=5; i < 5; i++, k=k+5) INICIO: la variable i se inicia a 1 CONDICIÓN: se comprueba la condición: ¿ i<3 ? SI SENTENCIA: se ejecuta la sentencia println VARIACIÓN: al terminar el bucle, se incrementa i. Ahora vale 2 CONDICIÓN: se comprueba la condición: ¿ i<3 ? SI SENTENCIA: se ejecuta la sentencia println VARIACIÓN: al terminar el bucle, se incrementa i. Ahora vale 3 CONDICIÓN: se comprueba la condición: ¿ i<3 ? NO, fin del bucle IMPORTANTE: al salir del bucle el valor de i es 3. ¿Cuál sería su valor si la condición fuese i<=3?
23 for (III) Igual que los casos anteriores:  se utilizan {} para acotar conjuntos de sentencias que pueden ser anidables. Ejemplo en el que se calcula la media y el máximo de un vector de números: publicstaticvoidmain(String[] args) { float serie[] = {-8, -12, -4, -14}; float media, sumatorio = 0; int contador; floatmaximo = serie[0];  // ¿Funcionaria si asignamos el 0?     /*** Encontrar el máximo y sumamos todos los números ***/ for ( contador = 0; contador < serie.length; contador++ ) { if (serie[contador] > maximo) maximo = serie[contador];         sumatorio = sumatorio + serie[contador];     }     /*** Calcular media. Mostrar la media y el maximo ***/     media = sumatorio / contador; System.out.println( "La media es " + media + " y el max es " + maximo);   } Se pueden clasificar las variables en virtud de su función o uso (hasta ahora se han clasificado en virtud del tipo de dato). Entre estos tipos de usos hay dos que son muy comunes y aparecen en el ejemplo anterior: Variables contador Variables sumatorio
24 do-while Formato: do { Sentencia } while (condición); A diferencia de while, analiza la condición al final del bucle. Por tanto, la sentencia se realiza al menos una vez Ejemplo. ¿Qué hace?: int i = 1; do { System.out.println( i*i*i ); 	i++; } while ( i < 3 ); do-while es muy útil en la gestión de menús. El diseño sería: do { 		Muestro las opciones de menú 		Solicito la opción por teclado switch (opcion) { 			En función de la opción elegida realizo una u otra acción 		} } while (la opción no sea “Salir”);
25 Salto Hay sentencias que controlan el flujo de ejecución, de tal forma que realizan saltos fuera del bloque en el que se encuentran: break: salta fuera del bucle o switch return: salta fuera del método Un ejemplo con break. Busca un nombre en una lista y, si lo encuentra, sale del bucle: privatestaticvoidfuncion() { int i = 0; String nombre[] = { "Ana", "Belen", "Juan", "Pedro"}; StringnombrBuscado = “Belen"; boolean encontrado = false; while (i < nombre.length) { if (nombre[i].equals(nombreBuscado)) { System.out.println(nombre_buscado + " está en la posición " + i);         		encontrado = true; break;       	}       	i++;     } if (!encontrado) System.out.println("No encontrado"); }
26 Streams (I) Cualquier programa realizado en Java que necesite llevar a cabo una operación de I/O lo hará a través de un stream.  Un stream, cuya traducción literal es "flujo", es una abstracción de todo aquello que permite introducir o extraer información. Así, un stream de teclado es un flujo de entrada para el programa y un stream de pantalla es un flujo de salida del programa Input: Teclado Output: Pantalla ,[object Object],[object Object]
28 Stream de entrada por teclado Para manejar entradas por teclado se tieneque crear un BufferedReader a partir de System.in: import java.io.*; publicclass inicio { publicstaticvoidmain(String[] args) throwsIOException { String cadena; BufferedReader entrada; 	entrada = new BufferedReader(new InputStreamReader(System.in)); // Crear objeto de entrada System.out.println("Escribe tu nombre:"); 	cadena = entrada.readLine(); //leemos cadena de caracteres mediante readLine()   } } Condiciones previas a la creación de un BufferedReader: Se tienenque importar las clases que uso (BufferedReader y InputStreamReader), que están en el paquete java.io, por medio de import. Se tiene que poner “throwsIOException” en la función que usa BufferedReader (ya se explicará más adelante el manejo de excepciones). Una vez creado el objeto de entrada para teclado, mediante BufferedReader,  se puede leer la entrada por teclado mediante una llamada a objeto.readLine() (la entrada termina al pulsar Enter). No olvidar que esta función devuelve un String, es decir, cualquier cosa que el usuario teclea se almacena como una cadena, sea “pedro” o “3420”. Java es un lenguaje fuertemente tipado y si se quiere que lo tecleado se convierta en un número habrá que hacer posteriormente una conversión mediante métodos, como se ve en el siguiente ejemplo.

More Related Content

What's hot

Sentencias de Repeticion
Sentencias de RepeticionSentencias de Repeticion
Sentencias de RepeticionKenyi Figueroa
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++LenHugo
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Tema 3 sentencias de control de java por gio
Tema 3   sentencias de control de java por gioTema 3   sentencias de control de java por gio
Tema 3 sentencias de control de java por gioRobert Wolf
 
Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3camnav
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4camnav
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en cDiego Maxdj Chicaiza
 
Jyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcacionesJyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcacionesJyoc X
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NETbrobelo
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...David Zapateria Besteiro
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...David Zapateria Besteiro
 
Elementos del lenguaje java
Elementos del lenguaje javaElementos del lenguaje java
Elementos del lenguaje javaMarisol Henao
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlSilvia Boscan
 
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...Diego Andrés Alvarez Marín
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++die_dex
 

What's hot (20)

Sentencias de Repeticion
Sentencias de RepeticionSentencias de Repeticion
Sentencias de Repeticion
 
Manual
ManualManual
Manual
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Tema 3 sentencias de control de java por gio
Tema 3   sentencias de control de java por gioTema 3   sentencias de control de java por gio
Tema 3 sentencias de control de java por gio
 
Video 1 metodos y arreglos
Video 1 metodos y arreglosVideo 1 metodos y arreglos
Video 1 metodos y arreglos
 
Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
 
Jyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcacionesJyoc java-cap02 bifurcaciones
Jyoc java-cap02 bifurcaciones
 
Estructura switch case
Estructura switch caseEstructura switch case
Estructura switch case
 
6 excepciones
6 excepciones6 excepciones
6 excepciones
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NET
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
 
Elementos del lenguaje java
Elementos del lenguaje javaElementos del lenguaje java
Elementos del lenguaje java
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Programación básica
Programación básicaProgramación básica
Programación básica
 

Viewers also liked (20)

Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Java
JavaJava
Java
 
Planclase programacion
Planclase programacionPlanclase programacion
Planclase programacion
 
Practicar metodos
Practicar metodosPracticar metodos
Practicar metodos
 
Induccion fundbd2012
Induccion fundbd2012Induccion fundbd2012
Induccion fundbd2012
 
Elementos básicos del lenguaje java alumno
Elementos básicos del lenguaje java alumnoElementos básicos del lenguaje java alumno
Elementos básicos del lenguaje java alumno
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Modulos sgbd
Modulos sgbdModulos sgbd
Modulos sgbd
 
Proyecto finalprogramacion
Proyecto finalprogramacionProyecto finalprogramacion
Proyecto finalprogramacion
 
Induccion fundbd2012
Induccion fundbd2012Induccion fundbd2012
Induccion fundbd2012
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Ejercicio java
Ejercicio javaEjercicio java
Ejercicio java
 
Ejercicio java1.1
Ejercicio java1.1Ejercicio java1.1
Ejercicio java1.1
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Respaldando bd
Respaldando bdRespaldando bd
Respaldando bd
 
Ejecutando mi primer programa en java
Ejecutando mi primer programa en javaEjecutando mi primer programa en java
Ejecutando mi primer programa en java
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 

Similar to Java básico

Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Javasvhurtado
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c Mar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Manuales ...
Manuales ...Manuales ...
Manuales ...elidetjc
 
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoDANNYOSE
 
Guía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CGuía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CPablo Chiesa
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2xjordi
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodosLao Tobon
 
Implementacion de punteros
Implementacion de punterosImplementacion de punteros
Implementacion de punterosKareliaRivas
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)luis freddy
 
Lenguajes de programacion c
Lenguajes de programacion c Lenguajes de programacion c
Lenguajes de programacion c charnisch
 
Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3Joaquin1418
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en JavaManuel Antonio
 

Similar to Java básico (20)

Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
Cap I
Cap ICap I
Cap I
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Manuales ...
Manuales ...Manuales ...
Manuales ...
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
 
Guía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CGuía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en C
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2
 
Fund Java
Fund JavaFund Java
Fund Java
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
Clase09 java script
Clase09 java scriptClase09 java script
Clase09 java script
 
Implementacion de punteros
Implementacion de punterosImplementacion de punteros
Implementacion de punteros
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
 
Lenguajes de programacion c
Lenguajes de programacion c Lenguajes de programacion c
Lenguajes de programacion c
 
Tipos basicos de java
Tipos basicos de javaTipos basicos de java
Tipos basicos de java
 
Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3Lenguajesdeprogramacion c nivel1-unidad3
Lenguajesdeprogramacion c nivel1-unidad3
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 
Tema 11
Tema 11Tema 11
Tema 11
 

More from María Luisa Velasco (20)

Sql
SqlSql
Sql
 
Sql
SqlSql
Sql
 
Ejercicios normalización
Ejercicios normalizaciónEjercicios normalización
Ejercicios normalización
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Proyecto final de algoritmica
Proyecto final de algoritmicaProyecto final de algoritmica
Proyecto final de algoritmica
 
Ejercicios arreglos4
Ejercicios arreglos4Ejercicios arreglos4
Ejercicios arreglos4
 
Ejercicios arreglos2
Ejercicios arreglos2Ejercicios arreglos2
Ejercicios arreglos2
 
Seguridad bd
Seguridad bdSeguridad bd
Seguridad bd
 
Ejercicios3parte
Ejercicios3parteEjercicios3parte
Ejercicios3parte
 
Ejercicio privilegios
Ejercicio privilegiosEjercicio privilegios
Ejercicio privilegios
 
Ejercicios2parte
Ejercicios2parteEjercicios2parte
Ejercicios2parte
 
Arreglos
ArreglosArreglos
Arreglos
 
Ejercicios arreglos
Ejercicios arreglosEjercicios arreglos
Ejercicios arreglos
 
Ejercicios arreglos
Ejercicios arreglosEjercicios arreglos
Ejercicios arreglos
 
Practica controlconcurrencia
Practica controlconcurrenciaPractica controlconcurrencia
Practica controlconcurrencia
 
Arreglos
ArreglosArreglos
Arreglos
 
Practicacandados
PracticacandadosPracticacandados
Practicacandados
 
Concurrencia
ConcurrenciaConcurrencia
Concurrencia
 
Ejercicio 2 transacciones
Ejercicio 2 transaccionesEjercicio 2 transacciones
Ejercicio 2 transacciones
 

Java básico

  • 1. Java Básico Programación 302
  • 2. Esta presentación tiene como objetivo ver varios temas básicos de Java. Se va a utilizar en varias clases, no sólo en una, ya que el tiempo no alcanzaría. Para cada ejemplo mostrado, se realizará el programa correspondiente en java, si el ejemplo es un programa, lo editarán y ejecutarán para analizar el resultado del mismo. Deberán analizar los conceptos vistos con anterioridad, e indicar en una clase posterior la lista de conceptos involucrados en cada uno de estos ejemplos, es decir, si en un programa se ven operadores de incremento, indicar que contiene estos operadores, si muestra concatenación de cadenas, de la misma manera, ámbito de variable, etc. Deben guardar los programas que realicen en una carpeta, y la fecha de creación del programa debe coincidir con la del archivo guardado( como máximo debe tener un día de diferencia).
  • 3. Un ejemplo con double Un ejemplo para calcular el área de un círculo (PI*r2) publicclassArea { publicstaticvoidmain(String[] args) { double PI = 3.1416; double radio = 3.2, area; area = radio * radio * PI; // Calculo el área System.out.println( "El área es: " + area); } Investigar para la siguiente clase como se define una constante, y volver a hacer este ejemplo, pero utilizado a PI y radio como constantes
  • 4. Ámbito de una variable El ámbito de una variable u objeto es el espacio del programa en el que esa variable existe. Por ello, se habla de “ámbito de vida” De forma general (hay excepciones que veremos más adelante), la vida de una variable comienza con su declaración y termina en el bloque en el que fue declarada (los bloques de código se delimitan por llaves: {}). Por ejemplo, ¿cuál es el ámbito de la variable ‘radio’?: publicstaticvoidmain(String[] args) { double PI = 3.1416; double radio = 3; System.out.println( “El área es” + (PI*radio*radio) ); }
  • 5. Conversión de tipos Se ha visto que los datos tienen un tipo. Pero en ocasiones nos conviene convertir un dato de su tipo original a otro Tipos de conversión: Automática o implícita. El tipo destino es más grande (mayor número de bits) que el tipo origen (ensanchamiento o promoción): int Origen = 65; float Destino = 4.35f; Destino = Origen; // ¿Cuál es el valor de ‘Destino’? Hacer el programa en java, que pruebe este ejemplo También hay conversión automática ante tipos compatibles. Por ejemplo, la asignación de un int a un char, investigar un ejemplo y traerlo para la siguiente clase. Explicita. La conversión se produce cuando el tipo destino es más pequeño que el origen (estrechamiento). Para ello debemos realizar un moldeado (cast): double Origen = 65.13; int Destino = 4; Destino = (int) Origen; // ¿Cuál es el valor de ‘Destino’? Hacer el programa en java que pruebe este ejemplo La conversión por medio de métodos es en realidad una aplicación de los tipos de conversión anteriores. Para ver ejemplos (transparencia dedicada a la clase String): String p = String.valueOf( numero); double radio = Double.parseDouble( cadena ); Vamos a dejar este ejemplo para el tema entrada de datos
  • 6.
  • 8. 8 Introducción Las sentencias de control nos ayudan a que el flujo de ejecución del programa deje de tener un carácter lineal. Ejemplos de sentencias de control en la vida cotidiana: Ejemplo 1: Si el cheque es correcto y hay fondos Entonces pagar Si no: No pagar Ejemplo 2: Mientras la salsa no este densa: Calentar y remover Ejemplo 3: Siga adelante Cuando llegue a la plaza: Si es hora pico Entonces de vuelta a la derecha Si no: Siga en línea recta Vamos a ver los siguientes tipos de sentencias de control: Selección Iteración
  • 9. 9 if / else (I) La sentencia básica para realizar bifurcaciones o ramificaciones. Formato: if (condición) sentencia 1; [else sentencia 2] La condición es una expresión booleana. Si es true, se ejecuta la sentencia 1; si es false, se ejecuta la sentencia 2 (si existiese) Ejemplo: int a = 3, b = 9, c; if (a < b && a != 0) c = b – a; else c = a – b; Precaución: La tabulación es fundamental para realizar código legible
  • 10. 10 Instrucciones de flujo if..else publicclassControlFlujo{ publicstaticvoidmain(Stringarg[]){ //Asigacion de variable byte caliEstudi= 100; //Flujo de control if if( caliEstudi >= 60) System.out.println("Aprobado " + caliEstudi); }//main }//class
  • 11. 11 if / else (II) Si hay más de una sentencia se deben delimitar los bloques por llaves {}. En el siguiente ejemplo se va a determinar las ventajas que tiene un cliente en función de los puntos de su tarjeta de compra: if (puntos > 1000) { tipo_cliente = "VIP"; descuento = 0.05f; } else { tipo_cliente = "Normal"; descuento = 0.02f; } System.out.println( "Tipo: " + tipo_cliente + "Descuento: " + descuento*100 + "%"); Los condicionales pueden ser anidados, es decir, que uno este dentro de otro. En el ejemplo se va a añadir otra condición: para los clientes de más de 1000 puntos, si su antigüedad es mayor de 1825 días, se le otorgará un descuento del 6%: if (puntos > 1000) { tipo_cliente = "VIP"; descuento = 0.05f; if (antiguedad > 1825) descuento = 0.06f; }
  • 12. Ejemplo Condicional publicclassEjercicioCondicional { //Comienzo del flujo principal del programa. publicstaticvoidmain(String [] argumentos) { // Uso de if. intx = 5; int y = 7; comparar(x,y); comparar(7,5); comparar(5,5); }// fin main publicstaticvoid salida ( String cadena ) { System.out.println(cadena); } // fin salida, como no estamos utilizando un objeto aún, el método se declara static publicstaticvoid comparar(int entero1, int entero2) { if(entero1 > entero2) salida("El primer argumento es menor"); else if(entero1 < entero2) salida ("El primer argumento es mayor."); else salida("Los dos argumentos son iguales"); }// fin comparar, es static el metodo ya que aún no utilizamos un objeto }//fin classEjercicioCondicional
  • 13. Atributo static Un atributo static no es un atributo específico de un objeto , sino más bien es un atributo de la clase; esto es, un atributo del que sólo hay una copia que comporten todos los objetos de la clase. Por esta razón, un atributo static existe y puede ser utilizado aunque no exista ningún objeto de la clase.
  • 14. 14 switch Formato: switch ( expresión ) { // expresión: no tiene que ser booleano case constante1: secuencia de sentencias break; case constante2: secuencia de sentencias break; ... default: secuencia de sentencias } No olvidar ‘break’. Pero a veces es adecuado omitirlo: switch ( categoria ) { case 1: case 2: porcen = 0.2; // Tanto para 1 como para 2 break; case 3: porcen = 0.15; break; default: porcen = 0.1; }
  • 15.
  • 17. byte
  • 18. short
  • 19.
  • 20. 17 while Formato: while (condición) Sentencia La sentencia puede ser un bloque delimitado por llaves ({}). El bucle se realiza mientras la condición sea cierta Ejemplo en el que se modifica un vector de números, de tal modo que se pone el cuadrado del número que antes estuviese: double serie[] = {23, 4, 36, 9}; int i = 0; while ( i < serie.length ) { System.out.print( "Posición: " + i + " Anterior: " + serie[i] ); serie[i] = serie[i] * serie[i]; System.out.println( " Cuadrado: " + serie[i] ); i++; } Bucle Posición: 0 Anterior: 23.0 Cuadrado: 529.0 Posición: 1 Anterior: 4.0 Cuadrado: 16.0 Posición: 2 Anterior: 36.0 Cuadrado: 1296.0 Posición: 3 Anterior: 9.0 Cuadrado: 81.0
  • 21. Investigar n para la siguiente clase: length Cómo se declara e inicializa un vector Y cómo se accede a un elemento del vector
  • 22. Ejemplos while Tabla multiplicar de un numero publicclassEjemploWhile { publicstaticvoidmain (Stirng [] args) { int n, i; n es numero e i un contador n= Integer.parseInt( args[0]); i=0; while)(i <=10) { System.out.println (n+ “x ” +i+ “ = ” + (n*i)); i++ }// fin while }fin main }fin class Realizarlo en clase, recordar que al ejecutar el programa deben mandar el número como argumento, tal como lo hicieron con el ejercicio TotalHoras.
  • 23. Otro ejemplo while publicclasss Ejemplowhile2 { publicstaticvoidmain ( Stringargs[]) { int n, divisor; n= Integer.parseInt(args[0]); System.out.println(“Los divisores son: ”); divisor=n; while (divisor>0) { if ((n%divisor)==0) System.out.println(divisor); divisor— } fin while } fin main } fin class
  • 24. 21 for (I) En la vida cotidiana hay numerosos casos de iteraciones (repeticiones). Por ejemplo, si alguien tiene que asignar un número a las cinco personas que hay en una habitación haría algo así: for (el número es 1; mientras que el número sea < 6; incremento el número) Digo en voz alta el número, señalando a la persona correspondiente De forma semejante, el formato de for es: for ( inicialización; condición; variación ) Sentencia Con un ejemplo puede aclararse. Suponer que se quiere mostrar por pantalla los cuatro primeros números enteros, empezando por el 3: La inicialización sería: empezar con el número 3 Condición: mientras que el número sea menor que 7 (es aquello que debe cumplirse para poder volver a repetir la sentencia) Variación: incrementar en uno el número Sentencia (aquello que se debe iterar o repetir, en nuestro ejemplo 4 veces): mostrar el número por pantalla Ejemplo: int i; for ( i = 3; i < 7; i++) System.out.println( i ); Es posiblesaltar la inicialización (empieza en el valor previo) int i = 3; for ( ; i < 7; i++) System.out.println( i );
  • 25. 22 for (II) Vamos a ver paso a paso como actua la iteración Ejemplo: int i; for ( i = 1; i < 3; i++) System.out.println( i ); Al observar la ejecución paso a paso es importante recordar: Siempre se evalúa la condición ANTES de ejecutar la sentencia DESPUÉS de la sentencia siempre se realiza la variación Se pueden iterar varias variables, para lo cual se necesitan comas: for(i=0, k=5; i < 5; i++, k=k+5) INICIO: la variable i se inicia a 1 CONDICIÓN: se comprueba la condición: ¿ i<3 ? SI SENTENCIA: se ejecuta la sentencia println VARIACIÓN: al terminar el bucle, se incrementa i. Ahora vale 2 CONDICIÓN: se comprueba la condición: ¿ i<3 ? SI SENTENCIA: se ejecuta la sentencia println VARIACIÓN: al terminar el bucle, se incrementa i. Ahora vale 3 CONDICIÓN: se comprueba la condición: ¿ i<3 ? NO, fin del bucle IMPORTANTE: al salir del bucle el valor de i es 3. ¿Cuál sería su valor si la condición fuese i<=3?
  • 26. 23 for (III) Igual que los casos anteriores: se utilizan {} para acotar conjuntos de sentencias que pueden ser anidables. Ejemplo en el que se calcula la media y el máximo de un vector de números: publicstaticvoidmain(String[] args) { float serie[] = {-8, -12, -4, -14}; float media, sumatorio = 0; int contador; floatmaximo = serie[0]; // ¿Funcionaria si asignamos el 0? /*** Encontrar el máximo y sumamos todos los números ***/ for ( contador = 0; contador < serie.length; contador++ ) { if (serie[contador] > maximo) maximo = serie[contador]; sumatorio = sumatorio + serie[contador]; } /*** Calcular media. Mostrar la media y el maximo ***/ media = sumatorio / contador; System.out.println( "La media es " + media + " y el max es " + maximo); } Se pueden clasificar las variables en virtud de su función o uso (hasta ahora se han clasificado en virtud del tipo de dato). Entre estos tipos de usos hay dos que son muy comunes y aparecen en el ejemplo anterior: Variables contador Variables sumatorio
  • 27. 24 do-while Formato: do { Sentencia } while (condición); A diferencia de while, analiza la condición al final del bucle. Por tanto, la sentencia se realiza al menos una vez Ejemplo. ¿Qué hace?: int i = 1; do { System.out.println( i*i*i ); i++; } while ( i < 3 ); do-while es muy útil en la gestión de menús. El diseño sería: do { Muestro las opciones de menú Solicito la opción por teclado switch (opcion) { En función de la opción elegida realizo una u otra acción } } while (la opción no sea “Salir”);
  • 28. 25 Salto Hay sentencias que controlan el flujo de ejecución, de tal forma que realizan saltos fuera del bloque en el que se encuentran: break: salta fuera del bucle o switch return: salta fuera del método Un ejemplo con break. Busca un nombre en una lista y, si lo encuentra, sale del bucle: privatestaticvoidfuncion() { int i = 0; String nombre[] = { "Ana", "Belen", "Juan", "Pedro"}; StringnombrBuscado = “Belen"; boolean encontrado = false; while (i < nombre.length) { if (nombre[i].equals(nombreBuscado)) { System.out.println(nombre_buscado + " está en la posición " + i); encontrado = true; break; } i++; } if (!encontrado) System.out.println("No encontrado"); }
  • 29.
  • 30. 28 Stream de entrada por teclado Para manejar entradas por teclado se tieneque crear un BufferedReader a partir de System.in: import java.io.*; publicclass inicio { publicstaticvoidmain(String[] args) throwsIOException { String cadena; BufferedReader entrada; entrada = new BufferedReader(new InputStreamReader(System.in)); // Crear objeto de entrada System.out.println("Escribe tu nombre:"); cadena = entrada.readLine(); //leemos cadena de caracteres mediante readLine() } } Condiciones previas a la creación de un BufferedReader: Se tienenque importar las clases que uso (BufferedReader y InputStreamReader), que están en el paquete java.io, por medio de import. Se tiene que poner “throwsIOException” en la función que usa BufferedReader (ya se explicará más adelante el manejo de excepciones). Una vez creado el objeto de entrada para teclado, mediante BufferedReader, se puede leer la entrada por teclado mediante una llamada a objeto.readLine() (la entrada termina al pulsar Enter). No olvidar que esta función devuelve un String, es decir, cualquier cosa que el usuario teclea se almacena como una cadena, sea “pedro” o “3420”. Java es un lenguaje fuertemente tipado y si se quiere que lo tecleado se convierta en un número habrá que hacer posteriormente una conversión mediante métodos, como se ve en el siguiente ejemplo.
  • 31. 29 Un ejemplo entrada por teclado y conversión publicstaticvoidmain(String[] args) throwsIOException { double PI = 3.1416, radio; intarea_int; String c; /* Creo el objeto 'entrada', es un lector de entradas por teclado */ BufferedReader entrada = new BufferedReader( new InputStreamReader(System.in)); System.out.print( "Escriba el radio: " ); c = entrada.readLine(); // Leo un String de la entrada de teclado radio = Double.parseDouble( c ); // Convierto el String en double radio System.out.println( "El área es: " + radio * radio * PI); area_int = (int) (radio * radio * PI); // Calculo el área entera del círculo. Realizar un casting System.out.println( "El área (entera) es: " + area_int); } Desde un String existen conversiones a otros tipos: Integer.parseInt( cadena ) o Float.parseFloat( cadena). La conversión inversa utiliza String.valueOf( numero). Buscar ejemplos de conversión inversa para la siguiente clase.
  • 32. Fuentes Bibliográficas: Introducción a Java(I) Consultado el día 8/02/2010. Disponible en: www.pdfbar.com/free-ppt-download/manara-ppt-Lnl.html Introducción a Java Consultado el día 8/02/2010. Disponible en: ants.dif.um.es/~fernan/Java.ppt Consultar los libros básicos de la bibliografía proporcionada en el programa de la experiencia educativa (Dada el primer día de clases)