jueves, 3 de marzo de 2011

Uso de Interfaces en Java

Se muestra el uso de interfaces mediante un ejemplo en la cual se tiene a un Estudiante, se le asigna Clases y para cada clase se detalle las notas.

/**
* @author chinchillal
* Definición de metodos comunes entre clase
*/
public interface AccionHandler {
/**
* agrega un elmento a una estructura de almacenamiento
* @param elemento elemento que se agrega
*/
public abstract boolean agregar(Object elemento);
/**
* elimina segpun el indice un elmento de la estructura de almacenamiento
* @param indice posición del elmento a eliminar
* @param c indica de que lista vamos a eliminar
*/
public abstract boolean eliminar(int indice, Class c);
}
Descargar...

martes, 22 de febrero de 2011

Ejercicio: Agregar, Editar, Consultar y Eliminar registros de un arreglo dinámico

Fecha de Entrega: Martes, 01 de marzo del 2011

Se debe desarrollar el siguiente ejercicio: Agregar, Consultar, Editar y Eliminar Registros Arreglo dinámico

· Utilizando un arreglo dinámico el programa debe pedir información de un estudiante o un catedrático o un personal administrativo, es decir, se le debe pedir al usuario que información debe ingresar (1: Estudiante, 2: catedrático, 3: Personal Administrativo).
EL usuario podrá ingresar tanta información desee, el programa le debe indicar si quiere continuar ingresando información.

· El programa debe contar con una segunda opción que sea para poder consultar la información de un Estudiante/Catedrático/Personal Administrativo y desplegarlo en pantalla.

· Si el usuario lo desea también el programa debe contar con una opción de editar la información de un Estudiante/Catadratico/Personal Administrativo.

· Además el de contar con una tercera opción para poder eliminar un registro del arreglo dinámico.

· Consideraciones:

o El programa debe contar con un menú y las opciones de “Agregar”, “Consultar”, “Editar” y “Eliminar.”

o Tanto en las operaciones de agregar, editar, consultar, eliminar el programa debe mostrar un mensaje si desea seguir realizando la operación.

o En la opción de eliminar se debe mostrar una advertencia si, realmente desea eliminar el registro.

martes, 8 de febrero de 2011

Ejemplos de Recursividad

  1. Planteamiento Ejercicio 1. Programar un algoritmo recursivo que calcule el factorial de un número.
    Solución:
    int factorial(int n){
    if(n==0){
    return 1; //Caso Base
    }
    else {
    return n * factorial(n-1); //Fórmula Recursiva
    }
    }

  2. Planteamiento Ejercicio 2: Programar un algoritmo recursivo que calcule un número de la serie fibonacci.
    Solución:

    int fibonaci(int n){
    if(n==1 || n==2) {
    return 1;
    }
    else{
    return fibonaci(n-1)+fibonaci(n-2);
    }
    }

  3. Planteamiento Ejercicio 3: Programar un algoritmo recursivo que permita hacer la división por restas sucesivas. ver mas...
    Solución:

    int division (int a, int b) {
    if(b > a) {
    return 0;
    }
    else {
    return division(a-b, b) + 1;
    }
    }

  4. Planteamiento Ejercicio 4: Programar un algoritmo recursivo que permita invertir un número.Ejemplo: Entrada:123 Salida:321
    Solución:

    int invertir (int n) {
    if (n < 10) { //caso base
    return n;
    }
    else {
    return (n % 10) + invertir (n / 10) * 10;
    }
    }
  5. Planteamiento Ejercicio 5: Programar un algoritmo recursivo que permita sumar los dígitos de un número.Ejemplo: Entrada:123 Resultado:6
    Solución:

    int sumar_dig (int n) {
    if (n == 0) { //caso base
    return n;
    }
    else {
    return sumar_dig (n / 10) + (n % 10);
    }
    }

  6. Planteamiento Ejercicio 6: Programar un algoritmo recursivo que permita hacer una multiplicación, utilizando el método Ruso. Para mas información: aquí.
    Solución:

    int mult_rusa(int A, int B) {
    if(A==1){
    return (B);
    }
    if(A%2!=0){
    return (B+mult_rusa( A/2 , B*2));
    }
    else{
    return(mult_rusa( A/2 , B*2));
    }
    }

  7. Planteamiento Ejercicio 7: Programar un algoritmo recursivo que permita sumar los elementos de un vector.
    Solución:

    int suma_vec(int v [], int n) {
    if (n == 0) {
    return v [n];
    }
    else {
    return suma_vec(v, n - 1) + v [n];
    }
    }

  8. Planteamiento Ejercicio 8: Programar un algoritmo recursivo que permita multiplicar los elementos de un vector.
    Solución:

    int multiplicar (int vec [], int tam) {
    if (tam == 0) {
    return (vec [0]);
    }
    return (vec [tam] * multiplicar (vec, tam - 1));
    }

  9. Planteamiento Ejercicio 9: Programar un algoritmo recursivo que calcule el Maximo comun divisor de dos números.
    Solución:

    int sacar_mcd(int a, int b) {
    if(b==0) {
    return a;
    }
    else {
    return sacar_mcd(b, a % b);
    }
    }

  10. Planteamiento Ejercicio 10: Programar un algoritmo recursivo que determine si un número es positivo/negativo.
    Solución:

    public boolean positivo(int n){
    if(n<0) return true;
    else return negativo(n);
    }

    public boolean negativo(int n){
    if(n>0) return false;
    else return positivo(n);
    }
  11. Planteamiento Ejercicio 11: rogramar un algoritmo recursivo que determine si un número es impar utilizando recursividad cruzada.
    Solución:

    public boolean par(int n){
    if(n==0) {
    return true;
    }
    else {
    return impar(n-1);
    }
    }

    public boolean impar(int n){
    if(n==0) {
    return false;
    }
    else {
    return par(n-1);
    }
    }

  12. Planteamiento Ejercicio 12: Programar un algoritmo recursivo que permita sumar los elementos de una matriz.
    Solución:

    int suma (int fila, int col, int orden, int mat [] [])
    {
    if (fila == 0 && col == 0)
    return mat [0] [0];
    else
    if (col < 0)
    return suma (fila - 1, orden, orden, mat);
    else
    return mat [fila] [col] + suma (fila, col - 1, orden, mat);
    }
  13. Planteamiento Ejercicio 13: Programar un algoritmo recursivo que muestre el numero menor de un vector.
    Solución:

    int menorvec (int x [], int n, int menor) {
    if (n == 0) {
    if (menor > x [n]) {
    return x [0];
    }
    else {
    return menor;
    }
    }
    else{
    if (menor > x [n]) {
    return menorvec (x, n - 1, x [n]);
    }
    else {
    return menorvec (x, n - 1, menor);
    }
    }
    }

    int mayorvec (int numeros [], int posicion) {
    int aux;
    if (posicion == 0) {
    return numeros [posicion];
    }
    else {
    aux = mayor (numeros, posicion - 1);
    if (numeros [posicion] > aux){
    return numeros [posicion];
    }
    else{
    return mayor (numeros, posicion - 1);
    }
    }
    }


jueves, 3 de febrero de 2011

Contenido

Se presentan una lista de documentos que sirven como contenido para la clase, esta dividido según el parcial.

  1. I Parcial

  2. II Parcial

  3. III Parcial

viernes, 28 de enero de 2011

Códigos Fuentes

Se muestra una lista de enlaces para descargar los programas que se realizan en laboratorio.

  • Mi Primer Programa Java: descargar...
  • Mi Primer Programa Java (Actualizado 10-02-2011) : descargar...
  • Mi Primer Programa Java (Actualizado 15-02-2011): descargar...
  • Ejemplo Desarrollo en Laboratorio (Actualizado 22-02-2011): descargar...
  • Ejemplo Desarrollo en Laboratorio (Actualizado 24-02-2011): descargar...
  • Ejemplo Desarrollo en Lab. Colecciones (Actualizado 02-03-2011): descargar...
  • Ejemplo Desarrollo en Lab. Swing (Actualizado 15-03-2011): descargar...
  • Ejemplo Desarrollo en Lab. Swing (Actualizado 24-03-2011): descargar...
  • Ejemplo Desarrollo en Lab. Swing (Actualizado 01-04-2011): descargar...

miércoles, 26 de enero de 2011

Foro de Discusión

Se presenta una lista de temas que se discutiran en el transcurso de la clase: Programación Avanzada 1. Enlace foro Discusión: http://groups.google.com/group/progravan1_01_2011
  • Fecha Entrega Tope: Jueves, 27 de enero

    1. ¿Cual es la importancia del uso de paquetes en JAVA (Package)? , enlace... (Cerrado)

  • Fecha Entrega Tope: Lunes, 14 de Marzo
    Programación Secuencial vs. Programación concurrente, enlace...

lunes, 24 de enero de 2011

miércoles, 19 de enero de 2011

Uso de Subclases en JAVA

Se presenta un ejemplo en donde se presenta el uso de subclases, dentro de la clase principal y fuera del ámbito de la clase principal.

La clase principal se identifica por que es la unica que se declara con la palabra reservada public.



/**
* @author lchinchilla
* @date 19/01/2011
*
* Uso de subclases dentro de un mismo archivo *.java
*
* Palabras claves: public, class, package, this, método main
*
*/
public class Subclases {

/**
* definición de mi primer subclase dentro de la clase principal
* Observese que la clase es estatica ya que al declararse en el metodo main se requiere
*/
static class MiPrimerSubclase {

//Construtor MiPrimerSubclase
public MiPrimerSubclase() {
System.out.println("MiPrimerSubclase: Estoy dentro de la clase principal");
}
/**
* nota: MiPrimerSubclase solo existe en el ambito de la clase principal, es decir, NO
* podriamos hacer una instancia de esta clase dentro de la subclase MiSegundaSubclase
*/
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//Instancias de mis subclases.
//sublase que esta dentro del ambito de la clase principal
MiPrimerSubclase subclase1 = new MiPrimerSubclase();

//subclase que esta fuera del ambito de la clase principal
MiSegundaSubclase subclase2 = new MiSegundaSubclase();


}
}


/**
* definición de mi primer subclase fuera de la clase principal
* Notese: que ya existe una subclase MiPrimerSubclase, pero la anterios solo existe en el ambito de la clase principal.
* otra diferencia es que esta no es requerido que se declare estatica
*/
class MiPrimerSubclase {

//Construtor MiPrimerSubclase
public MiPrimerSubclase() {
System.out.println("MiPrimerSubclase: Estoy fuera de la clase principal");
}
}

/**
* definición de mi segunda subclase fuera de la clase principal
*/
class MiSegundaSubclase {

//Construtor MiSegundaSubclase
public MiSegundaSubclase() {
System.out.println("MiSegundaSubclase: Estoy fuera de la clase principal");

//Llamando una subclase dentro de otra
MiPrimerSubclase subclase3 = new MiPrimerSubclase();
}
}

Entradas Blog

Se indica una lista de entradas que deben crear en su blog personal de la clase de Progravan1, deben investigar sobre cada tema que se muestra abajo y presentarlas antes de la fecha de tope.



  • Fecha Entrega Tope: Martes, 25 de enero 2011. 1. Investigar sobre el estándar de JAVADOC y realizar un ejemplo. (Cerrado)

  • Fecha Entrega Tope: Jueves, 27 de enero 2011. 1. Usando clases y subclases crear un programa para realizar las operaciones matemáticas basicas. Clase principal "OperacionesMatematicas". Subclases "Suma", "Resta", "Multiplicacion" y "Division". en el metodo main se deben hacer instancias de las subclases para realizar dicha operación. (Cerrado)

  • Fecha Entrega Tope: Jueves, 03 de febrero 2011. 1. Investigar sobre las palabras reservadas en Java y que significa cada una de ellas. (Cerrado)

  • Fecha Entrega Tope: Jueves, 03 de febrero 2011. 1. Realizar un programa que ordene un arreglo desordenado de 20 valores enteros, además contar con un par de métodos para saber cual es el valor mínimo y máximo. (Cerrado)

  • Fecha Entrega Tope: Lunes, 07 de febrero 2011. 1. Primer Avance del proyecto: se deben crear las clases Usuario, Estudiante, Catedrático, PersonalAdministrativo y para cada uno de ellos agregar la información requerida (ver definición del proyecto). Una vez realizado lo anterior, se pide que se haga un programa que agregue la información de 10 Estudiante, Catedráticos, PersonalAdministrativo y que se tenga una función que imprima la info, así como una función que valida la información de usuario. (Cerrado)

  • Fecha de Entrega Tope: Jueves, 31 de marzo 2011 Investigar sobre los controles swing: JTable y JTree. Desarrollar un ejemplo utilizando los controles.

  • Fecha de Entrega Tope: Lunes, 04 de abril 2011 Crear los siguientes controles personalizados: 1. Crear 5 botones: Aceptar, Cancelar, agregar, Editar, Eliminar. cada botón debe tener un icono que corresponda a su etiqueta 2. Crear un nuevo control que herede de JTextArea y que tenga un menú contextual de copiar, cortar, pegar y seleccionar todo. 3. Crear un nuevo control que herede de JTextField y que tenga un menú contextual de copiar, cortar, pegar y seleccionar todo.

  • Fecha de Entrega Tope: Lunes, 11 de Abril 2011 Se debe realizar el siguiente ejercicio, descargar...

martes, 27 de julio de 2010

Crer Usuario en SQLServer 2008

Video tutorial para poder crear un usuario de login en Sql Server 2008



youtube: http://www.youtube.com/watch?v=upWr2Z-u2E0

Autenticarse en SQLServer 2008

Video tutorial para poder Autenticarse en SQLSERVER 2008



Youtube: http://www.youtube.com/watch?v=MELolUVEipg

jueves, 8 de julio de 2010

Ejemplo de Como Usar JTable

Ejemplo que muestra el sencillo uso de usar el control JTable, en el cual se indican las columnas y las filas.

descargar....






Ejemplo de como agregar y borrar registros (o filas) a un Jtable.

descargar....





Otra manera de utilizar el control JTable, es usar Binding, el cual resulta mas conveniente al momento de utilizar Base de Datos. además se muestra como ordenar las columnas y tres maneras de seleccionar filas.

descargar....



martes, 6 de julio de 2010

Agregar y Borrar de una JList

Ejemplo que muestra como agregar información de una persona y verla reflejada en un JList, además de poder agregar a la lista, se puede eliminar elementos de la lista con seleccionar el elemento.

Además, al dar click sobre un elemento en la lista se muestra la información en un Panel de Detalle. Se debe notar que el Panel de Detalle, es un control personalizado.

descargar....


Crear Conexión a BDD Usando JDBC (SQL Server)

Ejemplo en donde se muestra como crear un conexión a una Base de Datos en Sql Server (2008), y de como manipular datos dentro de ella.
Ej: crear una tabla desde java, realizar insert's a la tabla, update's, eliminar registros o la obtener información haciendo uso de la sentencia SQL. todo esto medieante el uso de las clases {java.sql.Connection, java.sql.Statement, java.sql.ResultSet, etc}




lunes, 5 de julio de 2010

Conexión a BDD (JDBC)

Programa que muestra como realizar conexiones a las base de datos: SQLSERVER, MYSQL, MICROSOFT ACCESS o ORACLE.

Nota: se debe tener en cuenta que los datos de conexión (nombre usuario, contraseña, puerto, etc), difieren al momento que se prueben, recordar cambiarl la configuración de conexión a una que se ajuste a sus pruebas.