UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)

1,497 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,497
On SlideShare
0
From Embeds
0
Number of Embeds
33
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • utpl
  • UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)

    1. 1. ESCUELA : CIENCIAS DE LA COMPUTACIÓN NOMBRES PROGRAMACIÓN AVANZADA Ing. Daniel Guamán OCTUBRE 2011 – FEBRERO 2012 SEGUNDO BIMESTRE
    2. 2. <ul><li>Esquema de Contenidos </li></ul><ul><li>Colecciones </li></ul><ul><li>Genéricos </li></ul><ul><li>Expresiones Regulares </li></ul><ul><li>Conexiones a BDD </li></ul><ul><li>Sentencias CRUD </li></ul><ul><li>Multiprocesamiento </li></ul>
    3. 3. <ul><li>Colecciones </li></ul><ul><li>Son estructuras de datos (objetos). </li></ul><ul><li>Se pueden realizar operaciones de Get, Set, Find, Clear, Contains, similar a usar sentencias CRUD en BDD. </li></ul><ul><li>Sirven para simular el procesamiento de lo que se conoce como DataTable y/o DataSet Tipados y no Tipados en programación con VStudio. </li></ul><ul><li>La interfaz Collection es la interfaz raíz en la jerarquía de colecciones, a partir de la cual se derivan las interfaces Set y List . </li></ul>
    4. 4. <ul><li>Tips Colecciones </li></ul><ul><li>List = ordenado </li></ul><ul><li>List = puede contener elementos duplicados </li></ul><ul><li>Set = Elementos únicos </li></ul><ul><li>LinkedList = Valores duplicados </li></ul><ul><li>Collections = Interfaz raiz en la jerarquia de Colecciones </li></ul><ul><li>Map = No puede contener claves duplicadas </li></ul>
    5. 5. Ejemplo Colecciones 1 //Crea el objeto colecciones arraylist List<String> Cursos = new ArrayList<String>(); //Permite añadir los valores a la lista Cursos.add(0, &quot;Valor0&quot;); Cursos.add(1, &quot;Valor1&quot;); Cursos.add(2, &quot;Valor2&quot;); int tamanio = Cursos.size(); System.out.println(&quot;Tamanio de la Collection: &quot; + tamanio); System.out.println(&quot;Dado el indice retorna el elemento&quot; + Cursos.get(0)); System.out.println(&quot;Dando el elemento retorna el valor&quot; + Cursos.indexOf(&quot;Valor1&quot;)); boolean resultado = Cursos.contains(&quot;Valor1&quot;); //Evaluar o buscar elemento dentro de la Coleccion if (resultado ==true) System.out.println(&quot;Elemento encontrado: &quot; + resultado + &quot;en posicion es: &quot; + Cursos.get(1)); //permite setear o añadir nuevo valor en la collection String set = Cursos.set(1, &quot;ValorNN&quot;); int tamanio1 = Cursos.size(); System.out.println(&quot;Nuevo elemento en posicion 1: &quot;+ Cursos.get(1));
    6. 6. Ejemplo Colecciones 2 //Haciendo referencia a una Clase java List <Persona> ListPersonas = new ArrayList<Persona>(); Persona p = new Persona(&quot;Daniel&quot;,&quot;Guaman&quot;); Persona p1 = new Persona(&quot;Daniel2&quot;,&quot;Guaman2&quot;); ListPersonas.add(p); ListPersonas.add(p1); int tamanio2 = ListPersonas.size(); System.out.print(&quot;Tamano Persona &quot; + tamanio2); //Clase Persona public class Persona { String Nombre; String Apellido; public Persona(String N, String A) {this.Nombre = N; this.Apellido = A;} }
    7. 7. <ul><li>Genéricos </li></ul><ul><li>Similar a trabajar con sobrecarga de Métodos. </li></ul><ul><li>Sobrecarga de Métodos: Varias Métodos que se programan de forma diferente y se obtiene el mismo resultado. </li></ul>
    8. 8. Ejemplo Genéricos (Métodos Sobrecargados) public class Principal { public static void main(String[] args) { Figura f= new Figura(4,5) { @Override public double GetArea() { throw new UnsupportedOperationException(&quot;Not supported yet.&quot;); } }; f.GetArea(); }} abstract class Figura { //Atributos protected int X1; protected int Y1; //Constructor public Figura (int X, int Y) { this.X1 = X; this.Y1 = Y;} //Metodo Abstracto public abstract double GetArea(); }
    9. 9. Ejemplo Genéricos (Métodos Sobrecargados) class Triangulo extends Figura { private double base; private double altura; public Triangulo(int X, int Y, double b, double a) { //llamada al contructor de la clase padre super(X,Y); this.base= b; this.altura= a; } public double GetArea() { return (this.base * this.altura)/2; } class Cuadrado extends Figura {private double lado; public Cuadrado(int X, int Y, double l) { //llamada al contructor de la clase padre super(X,Y); this.lado = l;} public double GetArea() { return (Math.pow(lado, 2));}
    10. 10. Expresiones Regulares Sirven para realizar o validar temas como: longitud de cadenas, validacion de números de teléfono, celular, número de seguro social, email, etc. Para las expresiones regulares se utilizan Pattern y Matcher ; el primero para ubicar el patron de comparación y Matcher para poder validar la expresión. //Pattern expression = Pattern.compile(&quot;[1-9]+[1-9]+[0]&quot;); Pattern expression = Pattern.compile(&quot;[a-z]+@[a-z]+[a-z]+[a-z]+[a-z]&quot;); //String test = &quot;110&quot;; String test = &quot;daguaman@utpl&quot;; Matcher matcher = expression.matcher(test); System.out.println(&quot;Matcher&quot; + matcher); boolean res = matcher.matches(); System.out.println(res); Pattern expresion2=Pattern.compile(&quot;[ t]+$&quot;); String test2 = &quot;Es una prueba para elimnar espacios&quot;; Matcher matcher1 = expresion2.matcher(test2); System.out.println(matcher1);
    11. 11. <ul><li>Conexiones a Base de Datos </li></ul><ul><li>Una BDD permite almacenar datos e información. </li></ul><ul><li>Una BDD posee objetos que son propios de BDD entre los que destacan Tablas, indices, paquetes, procedimientos almacenados, triggers, etc. </li></ul><ul><li>Un motor de BDD puede ser: Oracle, SQL, MySql, Access, DB2, etc. </li></ul><ul><li>En java para conectarse a una BDD se necesita importar el paquete java.sql. </li></ul><ul><li>Para operar con una BDD en java: </li></ul><ul><ul><li>Conectarse a la BDD. </li></ul></ul><ul><ul><li>Abrir la BDD. </li></ul></ul><ul><ul><li>Operar sobre la BDD. </li></ul></ul><ul><ul><li>Cerrar la conexión a la BDD. </li></ul></ul><ul><li>//Metodo que permite realizar conexion a BDD en este caso Access </li></ul><ul><li>private static Connection getConnection() throws Exception </li></ul><ul><li>{ </li></ul><ul><li>Driver d = (Driver)Class.forName(&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;).newInstance(); </li></ul><ul><li>Connection c = DriverManager.getConnection(&quot;jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/BASE/prueba.mdb&quot;); </li></ul><ul><li>return c; </li></ul><ul><li>} </li></ul>
    12. 12. <ul><li>Sentencias CRUD </li></ul><ul><li>Sentencias SQL que permiten operar sobre una BDD. </li></ul><ul><li>Se utilizan con cualquier lenguaje de programación que permita conexión a BDD. </li></ul><ul><li>C = Create -> Insert </li></ul><ul><li>R = Read -> Select </li></ul><ul><li>U = Update </li></ul><ul><li>D = Delete </li></ul><ul><li>Ejemplos: </li></ul><ul><li>SELECT * FROM DUAL; </li></ul><ul><li>SELECT CAMPO1 FROM DUAL; </li></ul><ul><li>SELECT CAMPO1, CAMPO2, CAMPO3….. FROM DUAL </li></ul><ul><li>INSERT INTO TABLA VALUES(1,2,”A”); </li></ul>
    13. 13. <ul><li>Ejemplos Sentencias CRUD en java </li></ul><ul><li>//Objeto Connection </li></ul><ul><li>Connection conn = getConnection(); </li></ul><ul><li>//Objeto para manipulas las sentencias SQL </li></ul><ul><li>java.sql.Statement sentencia = conn.createStatement(); </li></ul><ul><li>//Ejecucion de la sentencia SQL </li></ul><ul><li>java.sql.ResultSet rsResultado = sentencia.executeQuery(&quot;SELECT * FROM ESTUDIANTES&quot;); </li></ul><ul><li>//Recorrer las filas resultantes </li></ul><ul><li>while (rsResultado.next()) </li></ul><ul><li>{ </li></ul><ul><li>System.out.println(rsResultado.getString(&quot;CEDULA&quot;)); </li></ul><ul><li>System.out.println(rsResultado.getString(&quot;NOMBRES&quot;)); </li></ul><ul><li>System.out.println(rsResultado.getString(&quot;APELLIDOS&quot;)); </li></ul><ul><li>} </li></ul><ul><li>rsResultado.close(); </li></ul><ul><li>sentencia.close(); </li></ul><ul><li>java.sql.Statement sentenciaINS = conn.createStatement(); </li></ul><ul><ul><li>String sql= &quot;INSERT INTO ESTUDIANTES VALUES (7,'1108','BBBBB','XXXXX')&quot;; </li></ul></ul><ul><ul><li>int rsResultadoINS = sentenciaINS.executeUpdate(sql); </li></ul></ul><ul><ul><li>sentenciaINS.close(); </li></ul></ul><ul><ul><li>java.sql.Statement sentenciaUPD = conn.createStatement(); </li></ul></ul><ul><ul><li>String sqlUPD= &quot;UPDATE ESTUDIANTES SET NOMBRES = 'DANIEL' WHERE ID = 6&quot;; </li></ul></ul><ul><ul><li>int rsResultadoUPD = sentenciaUPD.executeUpdate(sqlUPD); </li></ul></ul><ul><ul><li>sentenciaUPD.close(); </li></ul></ul><ul><ul><li>conn.close(); </li></ul></ul>
    14. 14. <ul><li>Bases de Datos </li></ul><ul><li>Gestores o Motores de BDD: SQL Server, Mysql, Oracle, Access. </li></ul><ul><li>BDD Livianas: Access, MySql. </li></ul><ul><li>BDD contiene tablas y dentro de las tablas se tiene filas y columnas o tuplas y columnas. </li></ul><ul><li>Sql es el lenguaje para operar en una BDD. </li></ul>
    15. 15. <ul><li>Multiprocesamiento </li></ul><ul><li>Para realizar el multiprocesamiento se necesita de programar HILOS. </li></ul><ul><li>Hilos = Thread; poseen prioridad (alta, media, baja) </li></ul><ul><li>Dentro de un programa java se puede tener 1, 2 o mas hilos. </li></ul><ul><li>Temas similares a multiprocesamiento tienen que ver con el rendimiento del Equipo (PC). </li></ul><ul><li>Para ejecutar un hilo se necesita del uso de Start y su ejecución se encuentra dentro de run. </li></ul><ul><li>El uso del multiprocesamiento es similar a los temas estudiados en los temas de recursividad. </li></ul><ul><li>Con multiprocesamiento se puede realizar los siguiente: </li></ul><ul><ul><li>Ejecutar un programa que muestre los números pares. </li></ul></ul><ul><ul><li>En una GUI poder ingresar valores a una BDD. </li></ul></ul><ul><ul><li>En una GUI ubicar un reloj que incremente segundo, minuto y hora. </li></ul></ul>
    16. 16. Multiprocesamiento public class Hilos2 extends Thread { public void run() { while(true) {Pares();}}} public void Pares() { for (int i =0; i<100000; i++) { if (i%2 == 0) System.out.println(&quot;Par :&quot; + i);}} //llamada a los hilos para su ejecucion Hilos h1 = new Hilos(); public PruebaHilos() { h1.start(); Hilos2 h2 = new Hilos2(); h2.start(); }
    17. 17. Preguntas Ejemplo: El término CRUD significa: a) Create, Read, Update y Delete b) Create, Reset, Update y Delete c) Create, Read, Unique y Delete d) Create, Red, Update, Diference Un objeto List es un objeto Collections ………..que puede contener elementos duplicados a) ordenado b) desordenado c) en arrays d) todas las anteriores La interfaz…………define a una colección que representa a una línea de espera a) Set b) Collection c) Queue d) Collections Una colección es: a) una clase b) un objeto c) una sentencia de control d) todas las anteriores
    18. 18. <ul><li>Preguntas Ejemplo Ensayo: </li></ul><ul><li>Remítase a las presentaciones 6 y 13. </li></ul><ul><li>Conocimientos previos: </li></ul><ul><li>Creación de Clases. </li></ul><ul><li>Definición de atributos y métodos de clase. </li></ul><ul><li>Conocer sentencias CRUD y el uso de getConnection, CreateStament, Execute </li></ul><ul><li>Conocer para que se utiliza Set, Clear, IndexOf. </li></ul>

    ×