Blogia

El Mundo de la Programacion.

Cuadro Mágico en Java

Cuadro Mágico en Java

Cuadro Mágico en Java (JCreator)

Un cuadro mágico es la disposición de una serie de números enteros en un cuadro o matriz de forma tal que la suma de los números por columnas, filas y diagonales principales sea la misma, la constante mágica. Usualmente los números empleados para rellenar las casillas son consecutivos, de 1 a n², siendo n el número de columnas y filas del cuadro mágico.

En la antigua China ya se conocían los cuadros mágicos desde el III milenio a. C., como atestigua el Lo Shu. Según la leyenda, un cierto día se produjo el desbordamiento de un río; la gente, temerosa, intentó hacer una ofrenda al dios del río Lo (uno de los desbordados) para calmar su ira. Sin embargo, cada vez que lo hacían, aparecía una tortuga que rondaba la ofrenda sin aceptarla, hasta que un chico se dio cuenta de las peculiares marcas del caparazón de la tortuga, de este modo pudieron incluir en su ofrenda la cantidad pedida (15), quedando el dios satisfecho y volviendo las aguas a su cauce.

La introducción de los cuadrados mágicos en occidente se atribuye a Emanuel Moschopoulos en torno al siglo XIV, autor de un manuscrito en el que por vez primera se explican algunos métodos para construirlos. Con posterioridad, el estudio de sus propiedades, ya con carácter científico, atrajo la atención de grandes matemáticos que dedicaron al asunto obras diversas a pesar de la manifiesta inutilidad práctica de los cuadrados mágicos. Entre ellos cabe citar a Stifel, Fermat, Pascal, Leibnitz, Frenicle, Bachet, La Hire, Saurin, Euler,... diríase que ningún matemático ilustre ha podido escapar a su hechizo.

El orden de un cuadrado mágico es el número de renglones o el número de columnas que tiene. Así un cuadrado de 3 x 3 se dice que es de orden 3.

Al sumar los números de cualquier renglón, cualquier columna o cualquiera de las dos diagonales el resultado es el mismo, a este número se le llama constante mágica.
Hay muchas maneras de encontrar la constante mágica:

a . Si se conoce el cuadrado mágico basta sumar
cualquier renglón o columna o diagonal.

b . Si el cuadrado no se conoce, una manera es sumar todos los números
que se colocarán en el cuadrado y dividir el resultado entre el orden de éste.
Por ejemplo: en un cuadrado mágico de orden 3
los números que se colocarán son: 1, 2, 3, 4, 5, 6, 7, 8, 9

c . Otra manera de calcular la constante mágica de un cuadrado mágico
es acomodar en la cuadrícula los números que se van a utilizar
en su orden natural (no en forma de cuadrado mágico) y sumar
los números de cualquiera de las diagonales; el resultado
será la constante mágica de ese cuadrado.


d . En general la fórmula para encontrar la constante mágica
de un cuadrado mágico de orden n es:

n ( n² + 1 )
___________
2
n³ + n
___________
2

Esto quiere decir que:

En un cuadrado mágico de 3 x 3 debemos acomodar
todos los números del 1 al 9 de manera
que la constante mágica sea 15.

En un cuadrado mágico de 4 x 4 debemos acomodar
todos los números del 1 al 16 de manera
que la constante mágica sea 34.

En un cuadrado mágico de 5 x 5 debemos acomodar
todos los números del 1 al 25 de manera
que la constante mágica sea 65.


Descaga el codigo o ejercicio en Java con IDE JCreator LE 4.5

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx




 

Programa que Cálcula el RFC de una Persona Fisica

Programa que Cálcula el RFC de una Persona Fisica

Cálcula el RFC con C#.Net


Es el Registro Federal de Contribuyentes, es una clave que te da hacienda para identificarte a la hora de hacer declaraciones o pagos de impuestos.

Por ejemplo para obtener el RFC de esta persona:

Francisco Ramirez Torres,  Fecha de nacimiento 20 de noviembre de 1970

RATF-701120+Homoclave de hacienda

Primeras Cuatro letras: Primer letra del apellido paterno, primera vocal del paterno, Primera letra del materno, primera letra del nombre + fecha de nacimiento y homoclave.

Por lo tanto me vi a la necesidad de crear este algoritmo con sus respectivo programa..

Descaga el codigo o ejercicio en C#.net 2005

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Pass: ALIZEE

 

 

Conversión de Números Arábigos a Romanos

Conversión de Números Arábigos a Romanos

Números Arábigos a Romanos en C#.Net con Visual Studio 2005

Sistema de numeración posicional que utiliza los signos  siguientes: I, V, X, L, C, D, M.

La equivalencia en decimal o arábigo es:


I
V
X
L
C
D
M
1
5
10
50
100
500
1000

Para escribir un número se ponen correlativamente los signos, teniendo en cuenta que una cifra puesta a la derecha de otra muestra el valor de aquella en una cantidad igual a la que representa, por ejemplo: XV equivale a 10 + 5 = 15 en numeración decimal.

No puede repetirse una misma cifra más de tres veces consecutivas. Para ello debe tenerse en cuenta que una cifra de un orden inmediatamente inferior al de otra colocado a su izquierda, resta una cantidad igual a su valor. Para escribir el número decimal 4 hemos de poner IV y no IIII.

Colocando un trazo horizontal sobre una cifra queda multiplicada por mil.



V  5,000

X 10,000

L 50,000

C 100,000

D  500,000

M  1,000,000


Inicio
Dadas las tablas Romanos[] y Valores[]
Pedir: A
Hacer Resultado = ""
Ciclo en i para cada elemento de Romanos
Mientras Valores < = A hacer
Resultado = Resultado + Romanos
A = A - Valores
Fin-Mientras
Fin-Ciclo
Mostrar Resultado

Fin

Descaga el codigo o ejercicio en vb.net 2005

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Pass: ALIZEE

Métodos de Ordenamiento y Búsquedas en VB.Net 2005

Métodos de Ordenamiento y Búsquedas en VB.Net 2005

Ordenamiento y busquedas en Visual Studio 2005

ORDENAMIENTO. Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un método de ordenación, hay que determinar cuántas comparaciones e intercambios se realizan para el caso más favorable, para el caso medio y para el caso más desfavorable. La colocación en orden de una lista de valores se llama Ordenación.

Existen varios métodos para ordenamiento, clasificados en tres formas: Intercambio Selección Inserción. En cada familia se distinguen dos versiones: un método simple y directo. En general, para arreglos con pocos elementos, los métodos directos son más eficientes (menor tiempo de ejecución) mientras que para grandes cantidades de datos se deben emplear los llamados métodos rápidos.

Método de Burbuja

Intercambio El método de intercambio se basa en comparar los elementos del arreglo e intercambiarlos si su posición actual o inicial es contraria inversa a la deseada. Pertenece a este método el de la burbuja clasificado como intercambio directo. Aunque no es muy eficiente para ordenar listas grandes, es fácil de entender y muy adecuado para ordenar una pequeña lista de unos 100 elementos o menos. Una pasada por la ordenación de burbujeo consiste en un recorrido completo a través del arreglo, en el que se comparan los contenidos de las casillas adyacentes, y se cambian si no están en orden. La ordenación por burbujeo completa consiste en una serie de pasadas (“burbujeo”) que termina con una en la que ya no se hacen cambios porque todo está en orden.

Método Quicksort

Si bien el método de la burbuja era considerado como el peor método de ordenación simple o menos eficiente, el método Quicksort basa su estrategia en la idea intuitiva de que es más fácil ordenar una gran estructura de datos subdividiéndolas en otras más pequeñas introduciendo un orden relativo entre ellas. En otras palabras, si dividimos el array a ordenar en dos subarrays de forma que los elementos del subarray inferior sean más pequeños que los del subarray superior, y aplicamos el método reiteradamente, al final tendremos el array inicial totalmente ordenado.

Método Selección

Los métodos de ordenación por selección se basan en dos principios básicos: Seleccionar el elemento más pequeño (o más grande) del arreglo. Colocarlo en la posición más baja (o más alta) del arreglo. A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde.

Método Inserción

El fundamento de este método consiste en insertar los elementos no ordenados del arreglo en subarreglos del mismo que ya estén ordenados. Dependiendo del método elegido para encontrar la posición de inserción tendremos distintas versiones del método de inserción.

BÚSQUEDA. La búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. A menudo un programador estará trabajando con grandes cantidades de datos almacenados en arreglos y pudiera resultar necesario determinar si un arreglo contiene un valor que coincide con algún valor clave o buscado. Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar elementos dentro de un array: búsqueda lineal y búsqueda binaria.

Búsqueda Secuencial

La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo. El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.

Búsqueda Binaria

La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.

 

www.Tu.tv
Descaga el codigo o ejecicio en vb.net 2005

http://rapidshare.com/files/125039177/Ordemamiento_Busqueda.rar.htm

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Métodos de Ordenamiento y busquedas

Métodos de Ordenamiento y busquedas

Ordenamiento y busquedas en Borland C++

ORDENAMIENTO. Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un método de ordenación, hay que determinar cuántas comparaciones e intercambios se realizan para el caso más favorable, para el caso medio y para el caso más desfavorable. La colocación en orden de una lista de valores se llama Ordenación.

Existen varios métodos para ordenamiento, clasificados en tres formas: Intercambio Selección Inserción. En cada familia se distinguen dos versiones: un método simple y directo. En general, para arreglos con pocos elementos, los métodos directos son más eficientes (menor tiempo de ejecución) mientras que para grandes cantidades de datos se deben emplear los llamados métodos rápidos.

Método de Burbuja

Intercambio El método de intercambio se basa en comparar los elementos del arreglo e intercambiarlos si su posición actual o inicial es contraria inversa a la deseada. Pertenece a este método el de la burbuja clasificado como intercambio directo. Aunque no es muy eficiente para ordenar listas grandes, es fácil de entender y muy adecuado para ordenar una pequeña lista de unos 100 elementos o menos. Una pasada por la ordenación de burbujeo consiste en un recorrido completo a través del arreglo, en el que se comparan los contenidos de las casillas adyacentes, y se cambian si no están en orden. La ordenación por burbujeo completa consiste en una serie de pasadas (“burbujeo”) que termina con una en la que ya no se hacen cambios porque todo está en orden.

Método Quicksort

Si bien el método de la burbuja era considerado como el peor método de ordenación simple o menos eficiente, el método Quicksort basa su estrategia en la idea intuitiva de que es más fácil ordenar una gran estructura de datos subdividiéndolas en otras más pequeñas introduciendo un orden relativo entre ellas. En otras palabras, si dividimos el array a ordenar en dos subarrays de forma que los elementos del subarray inferior sean más pequeños que los del subarray superior, y aplicamos el método reiteradamente, al final tendremos el array inicial totalmente ordenado.

Método Selección

Los métodos de ordenación por selección se basan en dos principios básicos: Seleccionar el elemento más pequeño (o más grande) del arreglo. Colocarlo en la posición más baja (o más alta) del arreglo. A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde.

Método Inserción

El fundamento de este método consiste en insertar los elementos no ordenados del arreglo en subarreglos del mismo que ya estén ordenados. Dependiendo del método elegido para encontrar la posición de inserción tendremos distintas versiones del método de inserción.

BÚSQUEDA. La búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. A menudo un programador estará trabajando con grandes cantidades de datos almacenados en arreglos y pudiera resultar necesario determinar si un arreglo contiene un valor que coincide con algún valor clave o buscado. Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar elementos dentro de un array: búsqueda lineal y búsqueda binaria.

Búsqueda Secuencial

La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo. El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.

Búsqueda Binaria

La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Descarga el Código Fuente para mayor compresion del mismo.

http://rapidshare.com/files/118618801/menu.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Listas Enlazadas en Borland C++

Listas Enlazadas en Borland C++

Punteros (Listas Enlazadas)

Se trata de combinar las estructuras con los punteros para acabar por fin con la limitación de los arrays, ya no hará falta indicar el tamaño del array al principio. Después comentaremos los pros y los contras de las listas enlazas respecto a los arrays.

Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior y/o posterior. El principal beneficio de las listas enlazadas respecto a los array convencionales es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento. Una lista enlazada es un tipo de dato auto referenciado porque contienen un puntero o link a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminación de nodos en cualquier punto de la lista en tiempo constante, pero no permiten un acceso aleatorio. Existen diferentes tipos de listas enlazadas: Lista Enlazadas Simples, Listas Doblemente Enlazadas y Listas Enlazadas Circulares.

Las listas enlazadas pueden ser implementadas en muchos lenguajes. Lenguajes tales como Lisp y Scheme tiene estructuras de datos ya construidas, junto con operaciones para acceder a las listas enlazadas. Lenguajes imperativos u orientados a objetos tales como C, C++ o Java disponen de referencias para crear listas enlazadas.

Las listas enlazadas pueden ser simples, dobles o circulares. De momento veremos las simples. Estas listas tendrán una estructura como la de la figura:

Para crear listas necesitaremos estructuras asignación dinámica de memoria. Vamos a ver como utilizar una lista en el ejemplo de la agenda:

struct _agenda {
char nombre[20];
char telefono[12];
struct _agenda *siguiente;
};

Memoria dinámica

Para optimizar la memoria, lo ideal sería reservar memoria en el momento que la necesitásemos y no como hasta la fecha, que lo hacíamos al principio del programa.

Malloc y free

Estas dos funciones nos servirán para asignar dinámicamente memoria. Estas 2 funciones se encuentran en la librería

malloc(); Reserva memoria y devuelve la posición de memoria del comienzo de ésta, por lo que deberemos guardar el resultado en un puntero (más información de punteros en el número 13 de la revista de hackxcrack) . Si no se ha podido reservar memoria, malloc devolverá el valor NULL, así que el puntero apuntará a NULL. Es importante asegurarnos de que se ha podido reservar la memoria, haremos algo así:

puntero = (Tipo_variable *) malloc (bytes_reservar);

if(puntero = (int *) malloc (sizeof(char)))

{puts (“Correcto”);}

free()

Cuando ya no necesitemos el espacio que habíamos reservado, liberaremos la memoria, haremos:

free(puntero);

Descarga el ejemplo para mayor compresion del tema:

Nota: El ejemplo se realizo en Borland C++.

http://rapidshare.com/files/118472102/menu.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

 

Serie de Fibonacci en Borland C++

Serie de Fibonacci en Borland C++

Fibonacci

La sucesión de Fibonacci es una sucesión infinita de números naturales:

donde el primer elemento es 0, el segundo es 1 y cada elemento restante es la suma de los dos anteriores. A cada elemento de esta sucesión se le llama número de Fibonacci. Esta sucesión fue descrita en Europa por Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computación, matemáticas y teoría de juegos.

La sucesión fue descrita por Fibonacci como la solución a un problema de la cría de conejos.

Se puede observar las siguientes reglas que cumplen siempre en esta serie:

1.- La proporción que hay entre cada numero (n) y el siguiente (n+1) es siempre del 61,80%.

2.- La proporción que hay entre cada numero (n) y uno más del siguiente (n+2) en la serie es siempre del 38.19%.

Descarga el Ejemplo

http://rapidshare.com/files/118374958/fibonacc.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

 

Operaciones con un Arreglo Bidimensional en Java

Operaciones con un Arreglo Bidimensional en Java

Arreglos en Java

  • Un arreglo es una secuencia de datos del mismo tipo.
  • Los datos se llaman elementos del arreglo y se numeran 0, 1, 2, ...
  • Estos números localizan al elemento dentro del arreglo y se denominan índices.
  • En Java, los índices del arreglo empiezancon 0 y terminan con el tamaño del arreglo -1.
  • Si el arreglo tiene n elementos, se denotancomo a[0], a[1], ... a[n-1].

Definir arreglo de número de elementos

Sintaxis para definir arreglo de un número determinado de elementos:


● tipo nombreArreglo[] = new tipo [numeroDeElementos]

Ejemplo:
float notas = new float [26];

Inicialización de arreglos

Se deben asignar valores a los arreglos antes de utilizarlos, por defecto se inicializan con 0

Ejemplo:

int numeros[]={10, 20, 30, 40, 50, 60};

char c[]={’L’,’u’,’i’,’s’};

Arreglos multidimensionales

Los arreglos unidimensionales, se conocen también como listas (vectores).


● Los arreglos multidimensionales tiene más de una dimensión.
● Los de dos dimensiones, se llaman tablas o matrices
● Sintaxis:
tipo datoelemento nombre =new tipo datoelemento nombre[][]
char pantalla[][];
pantalla = new int[10][5];

Descarga el Ejemplo para mayor compresion del tema.

http://rapidshare.com/files/118357035/Ejecicio_Matriz.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

 

Convertir un número a letra en VB.Net

Convertir un número a letra en VB.Net

Equivalencia de un Número a Letra

Realice un ejercicio para distraerme un rato, yo se que ya existen en la red ejemplos de ello, solo lo realize para que pasara el tiempo. Espero les sirva.

Descarga el ejemplo.

http://rapidshare.com/files/118209190/numeroaletra.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Contruyendo un DataSet en VB.Net 2005

Contruyendo un DataSet en VB.Net 2005

DataSet en Microsoft Visual Studio 2005 (VB.Net)

Un DataSet, que es una caché de memoria interna de datos recuperados de un origen de datos, representa un componente fundamental de la arquitectura de ADO.NET. DataSet está compuesto por una colección de objetos DataTable que se pueden relacionar entre ellos mediante objetos DataRelation. También se puede imponer la integridad de los datos de DataSet mediante los objetos UniqueConstrains y ForeignKeyConstraint.

Los objetos DataTable contienen los datos, mientras que DataRelationCollection permite desplazarse por la jerarquía de la tabla. Las tablas están incluidas en un DataTableCollection al que se obtiene acceso a través de la propiedades Tables. Al obtener acceso a los objetos DataTable, hay que tener en cuenta que éstos distinguen entre mayúsculas y minúsculas condicionalmente. Por ejemplo, si un objeto DataTable se denomina "mydatatable" y otro "Mydatatable", la cadena que se utilice para buscar una de las tablas se considerará que distingue entre mayúsculas y minúsculas. Sin embargo, si existe "mydatatable" pero no existe "Mydatatable", se considerará que la cadena de búsqueda no distingue entre mayúsculas y minúsculas.

Un DataSet puede leer y escribir datos y esquemas como documentos XML. Los esquemas se pueden guardar como esquemas XML mediante el método WriteXmlSchema, y tanto los esquemas como los datos se pueden guardar mediante el método WriteXml. Hay que utilizar el método ReadXml para leer un documento XML que incluya esquema y datos.

En una implementación normal de varios niveles, los pasos de creación y actualización de un DataSet y, a su vez, de actualización de los datos originales, son los siguientes:

  1. Construir y llenar cada DataTable de un DataSet con datos desde un origen de datos mediante DataAdapter.

  2. Cambiar los datos de los objetos DataTable individuales mediante la adición, actualización o eliminación de objetos DataRow.

  3. Llamar al método GetChanges para crear un segundo DataSet que sólo incorpore los cambios realizados en los datos.

  4. Llame al método Update de DataAdapter, pasando el segundo DataSet como argumento.

  5. Se invoca el método Merge para combinar los cambios del segundo DataSet con el primero.

  6. Invocar al método AcceptChanges de DataSet. O bien, invocar al método RejectChanges para cancelar los cambios.

Espacio de nombres: System.Data
Ensamblado: System.Data (en system.data.dll)

Descarga el Código Fuente para mayor compresión.

http://rapidshare.com/files/117923499/ConstruyendoDataSet.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Cambiar aspecto de Controles en JAVA

Cambiar aspecto de Controles en JAVA

Utilizacion de la Clase Swing

¿Cómo Seleccionar el Aspecto y Comportamiento?

Cuando un programa no selecciona el aspecto y comportamiento, el controlador del Swing debe imaginarse cual utilizar. Primero chequea si el usuario ha especificado un aspecto y comportamiento preferidos. Si es así, intentan utilizarlo. Si no es así, o el usuario a elegido uno no válido, entonces el UI elige el aspecto y comportamiento Java.

Cómo seleccionar el Aspecto y Comportamiento

Para especificar programáticamente el aspecto y comportamiento, se usa el método UIManager.setLookAndFeel. Por ejemplo, el código en negrita del siguiente fragmento hace que el programa use el aspecto y comportamiento Java.

public static void main(String[] args) {
try {
UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName());

} catch (Exception e) { }

new SwingApplication(); //Create and show the GUI.
}

El argumento para setLookAndFeel es el nombre totalmente cualificado de la subclase apropiado de LookAndFeel. Para especificar el aspecto y comportamiento Java, hemos usado el método getCrossPlatformLookAndFeelClassName. Si queremos especificar el aspecto y comportamiento nativo para cualquier platadorma en la que el usuario ejecute el programa, usaremos getSystemLookAndFeelClassName, en su lugar. PAra especificar un UI, podemos usar el nombre real de la clase.

Cómo elige el UI el Aspecto y Comportamiento

Aquí están los pasos que sigue el controlador del UI para determinar el aspecto y comportamiento cuando se inicializa a sí mismo.

  1. Si el programa selecciona el aspecto y comportamiento antes de crear ningún componente, el UI trata de crear un ejemplar de la clase especificada. Si tiene éxito, todos los componentes usarán ese aspecto y comportamiento.
  2. Si el programa no ha tenido éxito con el aspecto y comportamiento especificado, antes de crear el primer componente, el UI comprueba si el usuario ha especificado uno en un fichero llamado swing.properties. Busca el fichero en el directorio lib de la versión de Java. Por ejemplo, si estamos usando el intérprete Java en javaHomeDirectorybin, entonces el fichero swing.properties (si existe) está en javaHomeDirectorylib. Si el usuario ha especificado un aspecto y comportamiento, de nuevo el UI intenta ejemplarizar la clase especificada.
    swing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel
  3. Si ni el programa ni el usuario han especificado un aspecto y comportamiento adecuados, el programa usar el aspecto y comportamiento Java.

Ejemplo:

y con el cambio de aspecto queda de la siguiente manera:

Descarga un ejemplo sobre este tema:

http://rapidshare.com/files/117824669/Cambiar_Aspecto_Frame.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Gráficos en Java con Java2D

Gráficos en Java con Java2D

Gráficos con Java 2D

Java 2D es una API (Interfaz de Programación de Aplicaciones) para dibujar graficos en dos dimensiones usando el lenguaje de programación Java. Cada operación de dibujo Java 2D puede tratarse como rellenar una forma utilizando el pincel y componiendo el resultado en la pantalla.

Formas

Una forma en Java 2D es un limite infinitamente delgado el cual define un interior y un exterior. Los Pixeles internos de la forma están afectados por la operación de dibujo, los que están fuera no.

Intentar rellenar un segmento de línea recto extremadamente fino resultará en que no habrán pixeles afectados, por lo tanto una forma no contiene pixeles. En su lugar, un rectángulo fino se debe usar para que la forma contenga algunos pixeles.

Pinceles

Un pincel genera los colores que serán usados para cada pixel de la operación de relleno. El pincel más simple es java.awt.Color, el cual genera el mismo color para todos los pixeles. Pinceles más complicados pueden producir gradientes, imagenes, o cualquier combinación de colores. Rellenar una forma circular usando el color amarillo resulta en un círculo sólido amarillo, mientras rellenar la misma forma circular usando un pincel que genera una imagen produce un recorte circular de la imagen.

Compuestos

Durante cualquier operación de dibujo, hay una fuente (los pixeles que son producidos por el pincel) y un destino (los pixeles ya en la pantalla). Normalmente, los pixeles fuente simplemente sobrescriben los pixeles de destino, pero el compuesto permite modificar este comportamiento.

El compuesto, dados los pixeles fuente y destino, produce el resultado final que por último aparece en la pantalla. El compuesto más común es java.awt.AlphaComposite, el cual trata los pixeles que están siendo dibujados como parcialmente transparentes, para que los pixeles destino se muestren en algún grado.

Rellenado

Para rellenar una forma, el primer paso es identificar que pixels caen dentro de la forma. Estos pixeles serán afectados por la operación de relleno. Los Pixeles que están parcialmente dentro y parcialmente fuera de la forma pueden ser afectados en menor grado si está activado el Anti-aliasing.

El pincel es requerido para generar un color de cada uno de los pixels que se van a pintar. En el caso común del relleno de un color sólido, cada pixel será asignado al mismo color.

El compuesto toma los pixeles generados por el pincel y los combina con los pixeles que ya están en la pantalla para producir el resultado final.


Formas 2D

Las clases del paquete java.awt.geom definen gráficos primitivos comunes, como puntos, líneas, curvas, arcos, rectángulos y elipses.

Clases en el paquete java.awt.geom

Formas

 

Arc2D Ellipse2D QuadCurve2D
Area GeneralPath Rectangle2D
CubicCurve2D Line2D RectangularShape
Dimension2D Point2D RoundRectangle2D

Descarga el Código Fuente.

http://rapidshare.com/files/117405410/Formas_2D.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Eventos Personalizados en Java

Eventos Personalizados en Java

 

Clase AWT manejo de eventos

Un evento: Son las acciones del usuario sobre el programa. Son eventos típicos el clic sobre un botón, el hacer doble clic sobre el nombre de un fichero para abrirlo, el arrastrar un icono, el pulsar una tecla o combinación de teclas, el elegir una opción de un menú, el escribir en una caja de texto, o simplemente mover el ratón.

En Java, se definen las clases auxiliares (event listeners) que pueden recibir eventos de tipos específicos (ejem. El clic del botón del ratón). Estas clases se asocian luego a componentes específicos.

El manejo de eventos en Java funciona de la siguiente manera:

  • Los manejadores de eventos (event listeners) se registran en las distintas fuentes de eventos (event source).
  • Una fuente de eventos (el ratón, un botón, una ventana, etc) envía objetos de tipo EventObject a todos los manejadores registrados cuando se produce un nuevo evento.
  • Cada manejador de eventos utiliza la información recibida a través del objeto de tipo EventObject para realizar las acciones que estime adecuadas.

En Java, los eventos están organizados es una jerarquía de clases dentro del paquete java.awt.event.

  • La clase java.util.EventObject es la clase base de todos los eventos en java.
  • La subclase java.awt.AWTEvent es la clase de todos los eventos que se utilizan en la construcción de GUIs.

Descargar ejemplos:

1.- Evento simulando la lluvia.

http://rapidshare.com/files/117357024/Eventos_Personalizados.rar.html

2.- Evento del foco

http://rapidshare.com/files/117357198/Eventos_Foco.rar.html

3.- Evento del Ratón

http://rapidshare.com/files/117357284/eventos_Raton.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Conociendo el Bucle FOR en C#.Net

Conociendo el Bucle FOR en C#.Net

Bucle FOR

El bucle FOR o ciclo FOR es una estructura de Control en la que se puede indicar el número maximo de iteraciones. Este bucle esta disponible en todos los lengujes de programación.

Elementos del bucle:

  • Variable de control: Prácticamente un mandato impuesto por el uso habitual es utilizar la letra i como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso.
  • Inicialización de la variable de control: En pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código.
  • Condición de control: En pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).
  • Incremento: En pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO = ValorPaso cualquier número entero.
  • Cuerpo: Es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control.

For en pseudolenguaje

La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y REPETIR, es que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual muchas veces puede redundar en una optimización del código por parte de los compiladores. Los condicionales constituyen junto con los bucles los pilares de la programación estructurada, y su uso es una evolución de una sentencia de lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.

El bucle PARA se ha convertido en el bucle más ampliamente utilizado en la programación, ya que con la evolución de los lenguajes la mayoría de las condiciones de fin (casi siempre la longitud de un vector) puede determinarse con una función. Un ejemplo claro es el reemplazo del código de recorrido de una tabla:

PSEUDOLENGUAJE

MIENTRAS NoFinDeTabla(tabla) HACER
PróximoRegistro(tabla)
HacerAlgo(ElementoActual(tabla))
FIN MIENTRAS

Es lo mismo decir:

PARA i := 0 a CantidadRegistros(tabla) - 1, PASO = 1
PróximoRegistro(tabla)
HacerAlgo(ElementoActual(tabla))
FIN PARA

Para mayor compresión del Bucle FOR, puedes descargar el Ejemplo en C#.Net.


http://rapidshare.com/files/117320581/Ejercicios_Consola.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx


Palíndromos en C#.Net

Palíndromos en C#.Net

Ejercicio en C#.Net 2005

Un Palíndromo es una palabra, número o frase que se lee igual hacia adelante que hacia atrás.Si se trata de un número Capicúa.

Ejemplos de Palabras Palíndromos:

Ana, oso, Otto, salas.

Ejemplos de Números Capicúa:

11,55, 1001,2002,etc..

Descarga el Código Fuentes del ejemplo creado en C#.Net 2005 en ambiente Consola.

http://rapidshare.com/files/117315040/Palabra_Capicua.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Creación de un Calendario en Java

Creación de un Calendario en Java

La Clase GregorianCalendar de la biblioteca de Java.

La clase GregorianCalendar dispone de mas métodos que Date. En particular, contiene varios constructores interesantes. La expresión:

new GregorianCalendar();

Construye un nuevo objeto que contiene la fecha y hora del momento en el que fue creado.

Para construir un objeto calendario o medianoche con un dia, mes y año especifico:

new GregorianCalendar(1999,11,31);

Una instancia de la clase Date en Java tiene un estado que podría definirse como un lapso particular en el tiempo. En la Actualidad la clase Date dispone de métodos como getDay (para obtener el dia actual), getMonth (obtenemos el mes actual) y getYear (obtenemos el año actual).

Para mayor compresión de la Clase GregorianCalendar, puedes descargar el Código Fuente.

http://rapidshare.com/files/117284357/Boton_Calendario.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

 

Calculadora en Java

Calculadora en Java

Calculadora

Este ejemplo crea una calculadora que funciona perfectamente en ambiente de escritorio, realizando las operaciones básicas como la suma, resta, multiplicación y división.

Es un ejemplo sencillo donde interactuamos con la libreria Swing para el manejo de controles tales como JButton, JLabel, JTextField, etc..

Descarga el código fuente creado en Java con el IDE JCreator.

 

http://rapidshare.com/files/117283703/Calculadora.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx

Triángulo de Pascal en Java

Triángulo de Pascal en Java

Triángulo de Pascal

El triángulo de Pascal es un arreglo de números muy interesante. Existen entre ellos algunas relaciones muchas de las cuales no fueron conocidas por Blas Pascal.

Pascal lo llamo en 1653 Triángulo Aritmético y lleva su nombre por haber sido el primero en escribir un trato sobre el, sin embargo, hay pruebas de que era conocido con anterioridad (hay una ilustración en un libro chino del año 1303).

El Triángulo de Pascal es una representación geométrica de los números naturales son llamados números figurados. Entre ellos estan los números triangulares, los números cuadrados, los números pentagonales, etc.

La Estructura del Triángulo de Pascal es la siguiente:

Estructura del Arbol

Descarga el Código Fuente creado en Java con IDE JCreator, haz click :

http://rapidshare.com/files/117114180/Tringulo_Pascal.rar.html

Saludos... Su colega y amigo Zanabria

Zanabria_Talledos@hotmail.com

Zanabriata@yahoo.com.mx