Monday, December 18, 2006

CISCO: Algoritmo Dijkstra
El algoritmo de Dijkstra es utilizado en los protocolos de enrutamiento interior (IGP), y mas especificamente en el OSPF ya que utiliza Shorted Path First (primero la ruta mas corta). Este algoritmo fue desarrollado por Edsger Dijkstra en 1959, su manera de funcionamiento es la siguiente: dado un vertice origen al resto de vertices en un grafo dirigido y con peso en cada arista, explora cada camino que parten del vertice origen y que llevan a todos los demás vertices, cuando se obtiene el camino mas corto de acuerdo al peso en cada arista el algoritmo se detiene obteniendo la ruta mas corta.
Para poder ver su funcionamiento de manera grafica ingresa a esta pagina:
http://www.alumnos.unican.es/uc900/AlgoritmoD1.htm
y espera a que se cargue el simulador.
JAVA : Estructura de Datos abstracta llamada Pilas LIFO(Last in First out)
La idea de las pilas es muy sencilla, simplemente el nuevo objeto que ingresa es referido por final y enlaza al anterior que ocupada ese espacio.
Nuestro objeto Dato tendra la variable sig de tipo Dato y la variable x de tipo int, aunque realmente no importa el valor de x ya que no lo ordenara.
Ahora bien aqui estan los metodos, recuerda que es necesario tener la clase Dato con sus respectivas variables y metodos get/set, y tambien la clase Test Pilas donde vamos a estar en interacción con el usuario.

public class Pilas {
private Dato finale;
private Dato aux;
public void insertar(Dato dat){//metodo insertar
if(finale==null){
finale=dat;

}else{
dat.sig=finale;
finale=dat;
}
}
public Dato eliminar(){//metodo eliminar
if(finale==null){
aux=null;
}else{
aux=finale;
finale=aux.sig;
}
return aux;
}
public String imprimir(){//metodo imprimir
String cad="";
Dato aux=null;
for(Dato p=finale;p!=null;aux=p,p=p.sig){
cad=cad+"\n"+p.getNum();
}
return cad;
}
}

JAVA : Estructura de Datos abstracta llamada Arbol. (Metodo Insertar y recorrido)
Los arboles son relativamente sencillos desde el punto de vista logico sin embargo todo comienza a ponerse interesante cuando pasas de los 15 valores. Nuestro objeto Dato debera contener un int x donde almacene el valor x (uh!), dos variables de tipo Dato( izq y der).
El funcionamiento del arbol es el siguiente: Este ingresa un objeto que tiene un valor x, ese valor x se posiciona en la variable raiz (que es tipo Dato ya que raiz hasta el momento era null) del arbol, posteriormente los demas objetos con valores x diferentes (mayores o menores) se iran acomodando de lado izq o der de nuestro objeto. (cada objeto tiene variable izq y der)
Los valores menores se iran a las variables izq y los valores mayores a la variable der.
Cada objeto a su vez tendra que realizar esta validación.Para insertar es necesario que nuestro metodo conozca si es mayor o menor, si es el primer objeto o si es uno de los ultimos de la rama.

Dato raiz;
public void insertar(Dato dat){
if(raiz==null){
raiz=dat;
}else{
for(Dato p=raiz;p!=null;){
if(dat.getNum()
if(p.izq==null){
p.izq=dat;
break;
}else
p=p.izq;
}else{
if(p.der==null){
p.der=dat;
break;
}else
p=p.der;
}
}
}
}

Cabe mencionar que estamos suponiendo que este metodo esta siendo insertado dentro de la clase(por eso que la variable raiz de tipo Dato la creamos fuera).
El metodo a su vez para eliminar tiene sus dificultades ya que si una rama contiene valores en sus variables izq o derecha esos valores no se pueden perder, sino que tienen que pasar a la rama anterior (el valor mayor) y el menor acomodarse en la rama izq libre del objeto anterior, asi mismo cuando deseamos eliminar el numero que esta en el objeto raiz.
Proximamente publicare el metodo eliminar, por lo mientras aqui esta el metodo recorrido, o impresion de los valores del arbol, este metodo utiliza la recursividad.

public void recorrido(Dato p){
if(p!=null){
recorrido(p.izq);
System.out.println(p.getNum());
recorrido(p.der);
}
}

Monday, December 11, 2006

CCNA Intro
Señores despues de un camino arduo de repasos jejeje y de estudio puedo decir satisfecho que he logrado la certificación Intro del CCNA, me encuentro muy contento ya que esta certificación es de una de las especialidades que me encantan: las redes CISCO.
Tambien quiero felicitar a mis amigos Humberto y Monic que lograron la certificación CCNA con promedios altisimos.
Espero en 6 meses presentar la proxima certificación, y posterior a eso... ya veremos =).

Friday, November 24, 2006

JAVA: Estructura de Datos Abstracta llamada Cola
FIFO (First In, First Out)

La logica de este algoritmo es sencilla, comenzamos explicando la idea de lo que es una cola: cuando un objeto llega se le asigna la posiciòn inicio, los objetos siguentes en llegar (crearse), se asignaran al final de la cola y el primer objeto (inicio) referenciara a su vez al ultimo, o a el mismo, si solo existe el en la cola, de esta manera conforme llegan se van agregando a la cola.

Nuestra clase Dato cuenta con los siguientes atributos:
Dato sig e int x, sig de tipo Dato ya que guardara las referencias de los objetos de ese tipo e int de tipo entero por que almacenara el valor que insertemos a x. Basicamente con esto se construye la clase (metodos set y get de x) aunque se le pueden aumentar muchas mas cosas y ser utilizado de diversas maneras.
Para poder manejar el insertado de objetos de tipo Dato como sigue:

class ManejoDato{
Dato inicio;
public void insertar (Dato dat){
if(inicio==null){
inicio= dat;
dat.sig= dat;
}else{
dat.sig = inicio.sig;
inicio.sig = dat;
}
}
public boolean eliminar(){
if(inicio !=null){
Dato p = inicio.sig;
if(p==inicio){
inicio=null;
}else{
for(p=inicio; p.sig!=inicio;p=p.sig);
p.sig=inicio.sig;
inicio=p;
}
return true;
}else{
return false;
}
}
}

Wednesday, November 01, 2006

Algunos URL´s curiosos de Google

- Google tiene registrados los dominios www.gogle.com, www.googel.com, www.ggoogle.com y www.gogole.com, por si el usuario se equivoca al teclear el acceso a su buscador.

- El día 1 de abril de 2002 (April Fool's day), Google dio a conocer el PigeonRank (TM), el sistema que realmente clasifica las webs: miles de palomas trabajan ordenando todas los sitios web de Internet.

- En el Zeitgeist ((http://www.google.com/intl/en/press/intl-zeitgeist.html)) de Google se encuentran las estadísticas: las palabras más buscadas de la semana en diferentes idiomas, los navegadores más utilizados, ... Además, tiene un archivo histórico.

- El servidor espejo de Google: http://elgoog.rb-hosting.de/index.cgi

El buscador especifico:

BSD

Gobierno de USA

Linux

MAC

Microsoft

Universidades

Salut!

Wednesday, October 18, 2006

Pensando como la computadora

Puede que hables mas de 5 idiomas pero el que domina al mundo es solo 1 (00111101101101101101110110101101101011)

Monday, October 09, 2006

JAVA: Metodo de Inserción en 2 capas

La primer clase contiene nuestro modelo de negocios:

class Insercion{
private static int a[] ={5,3,2,4,1};
private int x=0,k=0, aux;
public void insercion1(){
for(int i=1;i aux = a[i];
k=i-1;
while (k>=0 && aux a[k+1]=a[k];
k--;
}
a[k+1]=aux;
}
}
public
String getver(){
return (a[0]+" "+a[1]+" "+a[2]+" "+a[3]+" "+a[4]+" ");
}
}

Interfaz:

class TestInsercion{
public static void main (String args[]){
Insercion obj=new Insercion();
System.out.println(obj.getver());
obj.insercion1();
System.out.println(obj.getver());
System.out.println("Finalizando programa... ");
}
}

Estas clases cambia la posición de los valores de nuestro arreglo y los ordena, try it!!! Utilizando el logaritmo de inserción.

Saturday, October 07, 2006

Creación de B.D. y tablas en MYSQL

Esta es la sintaxis para crear una base de datos en MYSQL =)
Vamos a crear una base d datos llamada ALMACEN y dentro la tabla Productos que contiene las columnas de NombreProd, Descripción, Costo, peso y material.

create database ALMACEN;
create table Productos(
Clave int,
NombreProd varchar(30),
Descrip varchar (50),
Costo int,
peso int default 0,
Material varchar (25),
Primary key (Clave));

Para poder ingresar datos a nuestra tabla se deben de poner la instruccion insert into el_nombrede_nuestra_tabla (las diversas columnas en orden)
values ( los valores de cada columna, si es String dentro ' ' si es int no se coloca nada especial, recuerda poner las comas entre cada uno de los valores.

insert into Productos(Clave, NombreProd, Descrip, Costo,peso,Material)
values (101,'Clavo de concreto','Usado para fijar en cemento', 10, 10,'Acero');

Thursday, October 05, 2006

Saludos a todos los informaticos y visitantes a este mi pequeño espacio en la red, referente a mi carrera Tecnologias de la Informacion y Comunicacion, estare publicando algunos datos curiosos, codigo de utilidad para diversos lenguajes o aplicaciones, asi como tambien ligas de interes sobre el tema.
Debo agradecer en primera instancia al buen Gera ya que su blog me inspiro para crear este espacio.
Espero poder tener temas de interes y si desean algun codigo o cualquier cosa lo pueden pedir directamente en el chat o desde los comentarios de los articulos y en breve espero poder resolverlo ;P .