1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<% /* Ejercicio: 3x2x13 Fecha: 02/11/2012 Enunciado: Realiza un formulario checkemail.php para comprobar que una dirección de correo es válida (debe contener los símbolos @ y .) */ %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>3x2x13</title> </head> <body> <% String nombre = "", apellidos = "", email =""; try { nombre = request.getParameter("nombre"); apellidos = request.getParameter("apellidos"); email = request.getParameter("email"); } catch(Exception e) { e.printStackTrace(); } if( nombre == null || nombre == "") { %> <h1>Tema 3: Formularios</h1> <form action="3x2x13.jsp" method="get"> Nombre: <input type="text" name="nombre" required="required"/><br /> Apellidos: <input type="text" name="apellidos" required="required"/><br /> Email: <input type="text" name="email" required="required"/><br /> <input type="submit" value="Enviar datos"/> </form> <% } else { %> <h1>Tema 3: Formularios</h1> <form action="3x2x13.jsp" method="get"> Nombre: <input type="text" name="nombre" required="required" value="<% out.println(nombre); %>"/><br /> Apellidos: <input type="text" name="apellidos" required="required" value="<% out.println(apellidos); %>"/><br /> Email: <input type="text" name="email" required="required" value="<% out.println(email); %>"/><br /> <input type="submit" value="Enviar datos"/> </form> <% if( email.indexOf("@") == -1 || email.indexOf(".") == -1 ) out.print("<p>Por favor, escriba una direccion de correo valida</p>"); else out.print("<p>Bienvenid@ "+ nombre +"</p>"); } %> </body> </html> |
Categoría: Programación
Eclipse – PHP
Partiendo de la instalación de Eclipse voy a explicar como se instala el primer plugin para añadir un lenguaje de programación.
En concreto se trata del plugin PDT para PHP que además es sin duda uno de los más enrevesados de instalar.
Además la idea es que tanto Eclipse como todos los plugins y herramientas que sean necesarias puedan funcionar de forma portable, es decir, desde una memoria USB sin necesidad de instalar nada en el ordenador. Como mucho añadir algún directorio de los compiladores a las variables de entorno.
Leer másEjercicios sueltos de Python
Algunos de los ejercicios de C del año pasado pero esta vez en Python:
1 2 3 4 5 6 7 8 9 10 11 12 |
''' Autor: Alberto Gil Tesa Fecha: 09/11/2012 Enunciado 1x01: Escriba un programa que calcule el area de un triangulo (base x altura /2), pidiendo los datos base y altura al usuario. ''' base = int(raw_input("Vamos a calcular el area de un triangulo.\n Introduce la base: ")); altura = int(raw_input(" Introduce la altura: ")); print("\nEl area del triangulo de base " + str(base) + " y altura " + str(altura) + " es " + str(base * altura / 2)); |
Ejercicios Java UT3 Hoja1 – Conector JDBC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
/* Ejercicio: 3x03x03 - Conector JDBC Fecha: 16/10/2012 Enunciado: 3. Realiza el ejercicio anterior con sentencias preparadas. */ import java.sql.Connection; import java.sql.DriverManager; import com.mysql.jdbc.PreparedStatement; public class _3x03x03 { public static void metodo(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://giltesa.com:3306/baseDeDatos", "Usuario", "Contrasenia"); String sql = "UPDATE DEPT set dname = ? where deptno = ? and dname like ?"; PreparedStatement ps = (PreparedStatement)conn.prepareStatement(sql); ps.setString(1, args[0]); ps.setInt(2, Integer.parseInt(args[1])); ps.setString(3, args[2]); ps.executeUpdate(); conn.close(); } catch( Exception e ) { e.printStackTrace(); } } public static void main(String[] args) { String[] argumentos = { "Ventas", "30", "SALES" }; metodo(argumentos); } } |
Ejercicios ADA Procesos – Hoja1
En esta ocasión en vez de publicar los ejercicios pegando el código los voy a adjuntar en un zip, ya que aunque los primeros son solo un fichero y se podrían poner sin problemas, los dos últimos y los de las siguientes hojas van a tener muchos paquetes y seria muy lioso, además así aprovecho y adjunto también el ejecutable.
Leer másEjercicios Java UT2 Hoja4 – XML con DOM y SAX
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
/* Ejercicio: 2x4x01 Fecha: 08/10/2012 Enunciado: 1.- Realiza las siguientes tareas, a partir de la clase persona: a) Crea un fichero "FichPersona.dat", que almacene varios objetos persona. b) Tomando como base el fichero anterior, crea un documento XML usando DOM. c) Implementa una clase que permita leer el documento XML del apartado anterior. */ import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; import java.io.*; public class _2x4x01 { // a) Crea un fichero "FichPersona.dat", que almacene varios objetos persona. private static void creaFicheroDatosPersonas(String[] args) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File(args[0]), false)); oos.writeObject(new Persona("Pedro", 53)); oos.writeObject(new Persona("Juan", 26)); oos.writeObject(new Persona("Maria", 32)); oos.writeObject(new Persona("Laura", 19)); oos.close(); } // b) Tomando como base el fichero anterior, crea un documento XML usando DOM. private static void creaFicheroXMLPersonas(String[] args) throws IOException { FileInputStream fis = new FileInputStream(new File(args[0])); ObjectInputStream ois = new ObjectInputStream(fis); Persona perso; try { // Crea la cabecera del fichero XML en memoria: Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation().createDocument(null, "personas", null); document.setXmlVersion("1.0"); // Añade los objetos persona al XML: while( fis.available() > 0 ) { perso = (Persona)ois.readObject(); Element raiz = document.createElement("persona"); document.getDocumentElement().appendChild(raiz); crearElemento("nombre", perso.getNombre(), raiz, document); crearElemento("edad", String.valueOf(perso.getEdad()), raiz, document); } // Vuelca el XML a un fichero XML: TransformerFactory.newInstance().newTransformer().transform(new DOMSource(document), new StreamResult(new java.io.File(args[1]))); } catch( Exception e ) { e.printStackTrace(); } ois.close(); fis.close(); } static void crearElemento(String datoEmple, String valor, Element raiz, Document document) { Element elem = document.createElement(datoEmple); Text text = document.createTextNode(valor); raiz.appendChild(elem); elem.appendChild(text); } // c) Implementa una clase que permita leer el documento XML del apartado anterior. public static void imprimirFicheroXMLPersonas(String[] args) { try { Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(args[1])); document.getDocumentElement().normalize(); System.out.println(document.getDocumentElement().getNodeName()); NodeList empleados = document.getElementsByTagName("persona"); for( int i = 0 ; i < empleados.getLength() ; i++ ) { Node emple = empleados.item(i); if( emple.getNodeType() == Node.ELEMENT_NODE ) { Element elemento = (Element)emple; System.out.print(" " + getNodo("nombre", elemento)); System.out.println(" \t" + getNodo("edad", elemento)); } } } catch( Exception e ) { System.err.println("Error: " + e); } } private static String getNodo(String etiqueta, Element elem) { NodeList nodo = elem.getElementsByTagName(etiqueta).item(0).getChildNodes(); Node valorNodo = (Node)nodo.item(0); return valorNodo.getNodeValue(); } public static void main(String[] args) throws IOException { String[] argumentos = { "personas.dat", "personas.xml" }; creaFicheroDatosPersonas(argumentos); creaFicheroXMLPersonas(argumentos); imprimirFicheroXMLPersonas(argumentos); } } |
Ejercicios Java UT2 Hoja3 – Persistencia
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
/* Ejercicio: 2x3x01 Fecha: 04/10/2012 Enunciado: A partir de la clase punto... implementar los siguientes apartados. */ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; public class _2x3x01 { /* a) Se pide escribir una clase EjercicioSerial2 donde se defina un método estático de nombre almacenarColPuntosEnArchivo que reciba una colección de objetos de la clase Punto. El método también recibirá por parámetro el nombre de un archivo para volcar sobre él la INFORMACION de los objetos Punto contenidos en la colección. El método no capturará ninguna excepción. */ public static void almacenarColPuntosEnArchivo(Punto[] pts, String file) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File(file), false)); // Revisar: Al poner TRUE no funciona una vez creado el fichero. for( Punto p : pts ) { oos.writeObject(p.obtenerCoordX()); oos.writeObject(p.obtenerCoordY()); oos.writeObject(p.obtenerColor()); } oos.close(); } /* b) Añadir a la clase anterior un método estático, de nombre obtenerArrayListDeArchivo, que reciba por parámetro el nombre de un archivo con los datos correspondientes a varios objetos de la clase Punto. El método construirá y devolverá un objeto ArrayList<Punto> con los datos de los puntos leídos del archivo especificado. El método no capturará ninguna excepción. */ public static ArrayList<Punto> obtenerArrayListDeArchivo(String file) throws IOException, ClassNotFoundException { FileInputStream fis = new FileInputStream(new File(file)); ObjectInputStream ois = new ObjectInputStream(fis); ArrayList<Punto> arrayPunto = new ArrayList<>(); while( fis.available() > 0 ) arrayPunto.add(new Punto((Integer)ois.readObject(), (Integer)ois.readObject(), (String)ois.readObject())); ois.close(); fis.close(); return arrayPunto; } /* c) Añadir a la clase anterior un método main() para comprobar el funcionamiento de los métodos estáticos de los dos apartados anteriores. Se crearán varios objetos Punto que se almacenarán en un array. A partir del array se obtendrá una colección para guardar sus elementos en un archivo. Para finalizar se obtendrá un objeto ArrayList<Punto> con los objetos Punto creados a partir de los datos almacenados en el archivo. */ public static void main(String[] args) throws IOException, ClassNotFoundException { // PRIMERA PARTE: // Se crea una tabla con puntos: Punto[] puntos = { new Punto(5, 10, "red"), new Punto(25, 120, "green"), new Punto(45, -10, "white") }; // Se almacena la tabla: almacenarColPuntosEnArchivo(puntos, "puntos.dat"); // Se lee la informacion guardada y se mete en un ArrayList de Puntos ArrayList<Punto> arrayPunto = obtenerArrayListDeArchivo("puntos.dat"); // Se imprimen los datos de los puntos: for( Punto p : arrayPunto ) System.out.println(p.toString()); // SEGUNDA PARTE: // Se guarda la coleccion de puntos en un fichero2, despues se lee y se recupera en un array2: almacenarColPuntosComoObjetos(puntos, "puntos2.dat"); ArrayList<Punto> arrayPunto2 = obtenerArrayListDeArchivoComoObjeto("puntos2.dat"); // Se graba el array2 en fichero3, y despues se recupera: escribirArrayListEnArchivo(arrayPunto2, "puntos3.dat"); ArrayList<Punto> arrayPunt3 = leerArrayListDeArchivo("puntos3.dat"); // Se imprime el array3: System.out.println("\n" + arrayPunt3); } /* d) Escribir un método de nombre almacenarColPuntosComoObjetos que reciba por parámetro una colección de objetos Punto y el nombre del archivo donde se almacenarán. El método escribirá directamente cada objeto Punto al archivo. */ public static void almacenarColPuntosComoObjetos(Punto[] pts, String file) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File(file), false)); // Revisar: Al poner TRUE no funciona una vez creado el fichero. for( Punto p : pts ) oos.writeObject(p); oos.close(); } /* e) Escribir un método de nombre obtenerArrayListDeArchivoComoObjeto que reciba por parámetro el nombre de un archivo donde se encuentran almacenados varios objetos de la clase Punto. El método leerá los objetos del archivo y los almacenará en un ArrayList que, finalmente será devuelto. */ public static ArrayList<Punto> obtenerArrayListDeArchivoComoObjeto(String file) throws IOException, ClassNotFoundException { FileInputStream fis = new FileInputStream(new File(file)); ObjectInputStream ois = new ObjectInputStream(fis); ArrayList<Punto> arrayPunto = new ArrayList<>(); while( fis.available() > 0 ) arrayPunto.add((Punto)ois.readObject()); ois.close(); fis.close(); return arrayPunto; } /* f) Escribir un método de nombre escribirArrayListEnArchivo, que reciba por parámetro un objeto ArrayList de objetos Punto y el nombre del archivo donde se almacenará. El método almacenará directamente el objeto ArrayList sobre el archivo recibido. No se capturará ninguna excepción. */ public static void escribirArrayListEnArchivo(ArrayList<Punto> arrayPunto, String file) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File(file), false)); // Revisar: Al poner TRUE no funciona una vez creado el fichero. oos.writeObject(arrayPunto); oos.close(); } /* g) Escribir un método de nombre leerArrayListDeArchivo que reciba por parámetro el nombre de un archivo en el que se ha escrito previamente un objeto ArrayList que almacena objetos de la clase Punto. El método leerá el objeto ArrayList del archivo y lo devolverá. No se capturará ninguna excepción. */ public static ArrayList<Punto> leerArrayListDeArchivo(String file) throws IOException, ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File(file))); ArrayList<Punto> arrayPunto = (ArrayList<Punto>)ois.readObject(); // Revisar, marca conversion descontrolada ois.close(); return arrayPunto; } } |
Ejercicios Java UT2 Hoja2 – Uso de la clase File y RandomAccessFile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/* Ejercicio: 2x2x01 Fecha: 27/09/2012 Enunciado: Escribir un programa que muestre los nombres de los archivos y directorios que se encuentren en el directorio que se pase como argumento (args[0]). */ import java.io.File; public class _2x2x01 { public static void metodo(String[] args) { File file = new File(args[0]); if( file.isDirectory() ) { File[] ficheros = file.listFiles(); for( File f : ficheros ) System.out.println(f.getName()); } } public static void main(String[] args) { String[] argumentos = { "C:\\" }; metodo(argumentos); } } |