lunes, 24 de octubre de 2011

ESTRUCTURA DE DATOS (PRIMERA PARTE)

BUENO, EN ESTRUCTURA DE DATOS EMPEZAMOS VER COMO GUARDAR, ORDENAR, APILAR, DESAPILAR, MOSTRAR, USAR LOS  DATOS.

PARA GUARDAR LOS DATOS.

SE PUEDEN GUARDAR LOS DATOS EN VECTORES Y MATRICES.

PARA GUARDAR ESTOS UTILIZAMOS UNA VARIABLE Y LAS CORDENADAS POR EJM:

VECTOR(I)  

DONDE (VECTOR) ES LA VARIABLE PUBLICADA COMO INTEGER Y LA (I) ES LA CORDENADA DEL VECTOR

MATRIZ (X, Y)

DONDE LA (MATRIZ) ES LA VARIABLE PUBLICADA COMO INTEGER Y LAS (X, Y) SON LAS CORDENADAS QU SE USAN PARA UN PUNTO EXACTO DE LA MATRIZ.

PARA ORDENAR LOS DATOS

SE UTILIZA ALGUNOS METODOS EN MI CASO APRENDI A USAR EL METODO DE LA BURBUJA QUE ES EL SIGUIENTE:

PARA UN VECTOR SERIA.

CODIGO DE (METODO DE LA BURBUJA CON VECTORES)

en este caso es un vector que almacena 7 datos, con este codigo

 podremos ordenar de la foma que deseen, de mayor a menor o viceversa.

public vector(50) as integer

  Dim B As Integer

For I = 0 To FILA - 1

For J = 0 To FILA - 2

If VECTOR(J) > VECTOR(J + 1) Then

B = VECTOR(J + 1)

VECTOR(J + 1) = VECTOR(J)

VECTOR(J) = B

End If

Next

Next

CODIGO DE (METODO DE LA BURBUJA CON MATRICES)

EN ESTE Caso es de 6 filas y 6 columnas

donde FI1 y CO1 son las cordenadas y FI2 y CO2 son cordenadas

alternas que se usan como acumulador para mover los datos segun

el orden que le quieras dar.

PUBLIC MATRIZ_1(6,6) AS INTEGER

 Dim C As Integer

        For CO1 = 0 To 6

            For FI1 = 0 To 6

                For CO2 = 0 To 6

                    For FI2 = 0 To 6

                        If MATRIZ_1(FI1, CO1) > MATRIZ_1(FI2, CO2) Then

                            C = MATRIZ_1(FI2, CO2)

                            MATRIZ_1(FI2, CO2) = MATRIZ_1(FI1, CO1)

                            MATRIZ_1(FI1, CO1) = C

                        End If

                    Next

                Next

            Next

        Next

BUENO OTROS CODIGOS QUE SERAN MUY UTIL EN ESTRUCTURA DE DATOS SON  ESTOS:

DONDE LA CLASE (CLASS.VB) ES LO QUE UDS DEBEN TRABAJAR EN EL PROGRAMA.

DEBEN TENER DIFERENTES (CLASS.VB)

BUENO EN ESTE CASO NO CAMBIARE DE NOMBRE PERO

 LES DEJO DE LA MANERA MÁS ENTENDIBLE POSIBLE.

NOTA: SI VAN A CAMBIARLE EL NOMBRE A LA CLASE

NO OLVIDEN DE DEJAR (.VB) AL FINAL, PARA

QUE NO TENGAN NINGUN PROBLEMA.

BUENO

¿QUE ES UN OBJETO?

ES LO PRICIPAL, O LO QUE DESEAMOS DESCRIBIR, EN ESTE CASO, EL PROGRAMA.

BUENO LES DEJO UN EJMP:

 OBJETO = ANIMAL

 CLASES: REPTILES ,PECES, AVES, ETC.

 SUBCLASE: NOMBRE,COLOR,TAMAÑO,ETC.

BUENO ESPERO SE INGENIEN PENSANDO UNA PARA SUS PROGRAMAS PUES

YO HICE "HERAMIENTAS" PUES NO FUE MUY BUENO PERO BUENO VALIO

POR UNA NOTA.

EN LA CLASE QUE CODIFIQUEN AL COMIENZO, SEGUN SU NECESIDAD

PUES DEBERA VERSE CASI IGUAL A LA MIA, PUES EN MI CASO UN JUEGO DE CARTAS

"BLAC JACK" O 21

Public Class CARTAS

    Public VALOR As String

    Public TIPO As String

    Public SIGUIENTE As CARTAS

    Public Sub New(ByVal X As String, ByVal Y As String)

        VALOR = X

        TIPO = Y

    End Sub

End Class

DESPUES PUBLICAR LA CLASE (JUEGO).

APILAR:

    Public primero As  JUEGO

    Public aux As CARTAS

    PUBLIC SIGUIENTE AS CARTAS

    Public Sub INGRESO(ByVal DATOS As CARTAS)

        If IsNothing(PRIMERO) Then

            PRIMERO = DATOS

        Else

            DATOS.SIGUIENTE = PRIMERO

            PRIMERO = DATOS

        End If

    End Sub

BUENO HACI PODREMOS APILAR UNA PILA SIN PROBLEMAS,

 AHORA DESAPILAR LA PILA UN DATO A LAS VEZ.

   Public Sub DESAPILAR()

        If IsNothing(PRIMERO) Then

            MSGBOX ("PILA VACIA")

        Else

            PRIMERO = PRIMERO.SIGUIENTE

        End If

    End Sub

BUENO PARA DESPILAR TODA LA PILA SIN NECESIDAD

 DE UNO POR UNO PUES EL CODOGO ES EL SIGUIENTE.

 Public Sub BORRAR()

        While Not IsNothing(PRIMERO)

            PRIMERO = PRIMERO.SIGUIENTE

        End While

    End Sub

BIEN AHORA VOY A ENSEÑARLES EL CODOGO PARA VER UNA PILA.

SE LA PUDE MOSTRAR DE DIFIRENTES MANERAS.

EN ESTE CASO SERA CON UN LISTBOX.

 Public Sub ver(ByVal LB As ListBox)

        Dim AUX As CARTAS

        AUX = PRIMERO

        LB.Items.Clear()

        While Not IsNothing(AUX)

            LB.Items.Add("*****************")

            LB.Items.Add(AUX.VALOR)

            LB.Items.Add(AUX.TIPO)

            LB.Items.Add("*****************")

            AUX = AUX.SIGUIENTE

        End While

    End Sub

AHORA TENIENDO ESO CREAREMOS LA PILA PUES EN EL (FORM1.VB)

PUES NO OLVIDEN DE PUBLICAR LAS SUBCLASES PARA NO TENER

 NINGUN ERROR, EN CASO DE QUE LE APARESCA UN ERROR VERIFICAR

BIEN LAS PUBLICACIONES, SI.

PUES EN MI CASO ES EL SIGUIENTE CODIGO.

 Public PI As PILA = New PILA

    Public CAR As CARTAS

    Public TIPOIMAGEN As String

    Public NUM As String

AQUI RECIEN CREAS LA PILA O MAS EXPLICITO DONDE GUARDAS

LOS DATOS.

PUES EN EL BUTTON APILAR VA ESTO

 CAR = New CARTAS(NUM, TIPOIMAGEN)

            PI.INGRESO(CAR)

DONDE EL (NUM ) ES EL NUMERO DE CARTAS Y EL OTRO ES EL

TIPO DE IMAGEN.

BUENO UN CONSEJO,SI LES PIDEN VALORES ALEATORIOS HAGALON

DE LA SIGUIENTE MANERA.

Public Function CTIP() As Integer

        Randomize()

        Y = Rnd() * 3

        Return Y

    End Function

BUENO PARA MOSTRAR LOS DATOS LLAMAMOS A LA CLASE VER QUE

ES LA SIGUIENTE:

PI.ver(L_MOSTRAR)

DONDE L_MOSTRAR ES EL LISTBOX DONDE MUESTRO LAS CARTAS

PUES PARA DESAPILAR HAGO ESTO EN BUTTON DESAPILAR

PI.DESAPILAR()

PUES NO OLVIDEN QUE (PI.) ES LA IDENTIFICACION DE LA

SUBCLASE. SIRVE PARA LLAMAR.

AL MOMENTO QUE CODIFIQUEN SEPAN QUE PUEDEN MOSTRAR MAS

DATOS COMO: NOMBRE , CELULAR, APELLIDOS , DIRECCION , ETC.

Y TENDRAN QUE COLOCAR (AUX.    ) Y LO QUE VAN A MOSTRAR

NOTA: NO OLVIDEN DE PUBLICAR BIEN ESTOS DATOS, EJM:

PALABRAS = STRING

NUMEROS = INTEGER

FECHAS = DATE

NUMEROS DECIMALES = DOUBLE

VERDADERO O FALSO = BOOLEAN

POR ULTIMO, EN LA PARTE DE LO QUE ES PILA PUES SI

 TIENE QUE HACER ALGUN CALCULO, LA MEJOR MANERA ES LA SIGUIENTE.

Public Sub SUMAR(ByVal X AS INTEGER, ByVal Y AS INTEGER)AS INTEGER

        Dim Z As Integer

        Z = X + Y

        MsgBox("LA SUMA ES " + Z.ToString)

        RETURN (Z)

    End Sub

BUENO ESPERO HABER AYUDADO UN POCO CON LO QUE ES PILA

EN LA SIGUIENTE PARTE ESTA LO QUE ES COLA.

ES CASI LO MISMO PERO CON LA FUNCION DE LIFO.

ESPERO ME COMENTEN ALGUNA DUDA SI, PUES O ME DIGAN

LO QUE LES PARECIO MI EXPLICACION, AHHH PUES ME DESPIDO,

ESPERO ESTUDIEN DURO, PARA SALIR A DELANTE.

DIOS LES BENDIGA CHAO ATT FVD.

No hay comentarios: