elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación Visual Basic / Re: craea en: 17 Julio 2007, 15:06 pm
reconozco que me zarpe pero el chabon tb tiene lo suyo, esta desprestigiando lo que hice eso me molesta, si me kisiera ayudar lo habria hecho a lo sumo no hubiera posteado nada, pero para criticar mi codigo no le pedi opinion
12  Programación / Programación Visual Basic / Re: craea en: 17 Julio 2007, 13:55 pm
Si sabes tanto loko porque no lo haces al grafo, tan power sos? en vez de hablar al pedo fijate si podes programar algo primero
13  Programación / Programación Visual Basic / Re: craea en: 17 Julio 2007, 03:37 am
Un grafo no es un graffiti es una representacion grafica de una situacion determinada como puede ser un proyecto de analisis de sistemas . Bue ojala alguien me de una mano con el codigo, no tengo que dibujar un grafo sino mostrar como funciona
14  Programación / Programación Visual Basic / Re: craea en: 15 Julio 2007, 22:34 pm
Este es el codigo del formulario

Código
  1. Option Explicit
  2. Const Nulo = 0    '' Posicion NO Valida de la Lista
  3. Dim L       As New Listas
  4. Dim P       As New Pilas
  5. Dim C       As New Colas
  6. Dim G       As New Grafos
  7.  
  8. Private Sub cmd_apilar_Click()
  9.  
  10.    Dim X       As Variant
  11.  
  12.    Randomize
  13.  
  14.    While Not P.EstaLlena
  15.        X = Int(Rnd(100) * 100)
  16.        P.Apilar X
  17.    Wend
  18.  
  19. End Sub
  20.  
  21. Private Sub cmd_eliminar_Click()
  22.  
  23.    Dim Q       As Long
  24.    Dim X       As Variant
  25.  
  26.    X = CLng(InputBox("Ingresar Dato a Eliminar", "Ingresar Datos", ""))
  27.  
  28.    Q = L.Buscar(X)
  29.  
  30.    If Q <> Nulo Then
  31.        L.Eliminar (Q)
  32.    Else
  33.        MsgBox "Elemento No Encontrado"
  34.    End If
  35.  
  36. End Sub
  37.  
  38. Private Sub cmd_encolar_Click()
  39.  
  40.    Dim X       As Variant
  41.  
  42.    Randomize
  43.  
  44.    While Not C.EstaLlena
  45.        X = Int(Rnd(100) * 100)
  46.        C.Encolar X
  47.    Wend
  48.  
  49. End Sub
  50.  
  51. Private Sub cmd_listar_Click()
  52.  
  53.    Dim Q       As Long
  54.    Dim X       As Variant
  55.  
  56.    List1.Clear
  57.    Q = L.Inicio
  58.  
  59.    While Q <> Nulo
  60.        X = L.Recuperar(Q)
  61.        List1.AddItem X
  62.        Q = L.Siguiente(Q)
  63.    Wend
  64.  
  65. End Sub
  66.  
  67. Private Sub cmd_mostrar_cola_Click()
  68.  
  69.    Dim X       As Variant
  70.    Dim li      As Integer
  71.  
  72.    li = 0
  73.    List1.Clear
  74.    While Not C.EstaVacia
  75.        X = C.Recuperar
  76.        li = li + 1
  77.        List1.AddItem "Pos(" & li & ") = " & X
  78.        C.DesEncolar
  79.    Wend
  80.  
  81. End Sub
  82.  
  83. Private Sub cmd_mostrar_pila_Click()
  84.  
  85.    Dim X       As Variant
  86.  
  87.    List1.Clear
  88.    While Not P.EstaVacia
  89.        X = P.Recuperar
  90.        List1.AddItem X
  91.        P.DesApilar
  92.    Wend
  93.  
  94. End Sub
  95.  
  96. Private Sub cmd_test_Click()
  97.  
  98.    Dim X       As Variant
  99.  
  100.    Randomize
  101.    X = Int(Rnd(100) * 100)
  102.    If L.Agregar(X) = False Then
  103.        MsgBox "Error al Agregar en la Lista"
  104.    End If
  105.  
  106. End Sub
  107.  
  108. Private Sub cmdcreargrafo_Click()
  109.    Dim V As Variant
  110.    Dim V2 As Variant
  111.    Dim Varco As Variant
  112.  
  113.    V = "A"
  114.    G.AgregarVertice (V)
  115.    V = "B"
  116.    G.AgregarVertice (V)
  117.    V = "C"
  118.    G.AgregarVertice (V)
  119.    V = "D"
  120.    G.AgregarVertice (V)
  121.  
  122.    Varco = 1
  123.    V = "A"
  124.    V2 = "B"
  125.    If G.AgregarArco(V, V2, Varco) = False Then
  126.    End If
  127.  
  128.    V = "B"
  129.    V2 = "D"
  130.    If G.AgregarArco(V, V2, Varco) = False Then
  131.    End If
  132.  
  133.    V = "D"
  134.    V2 = "C"
  135.    If G.AgregarArco(V, V2, Varco) = False Then
  136.    End If
  137.  
  138.    List1.Clear
  139.    List1.AddItem G.RetornarVertices
  140.    List1.AddItem G.RetornarArcos
  141.  
  142. End Sub
  143.  
  144. Private Sub cmdrecorridoanchura_Click()
  145.  
  146.    List1.AddItem G.RecorridoAnchura("A")
  147.  
  148. End Sub
  149.  
  150. Private Sub cmdrecorridoprof_Click()
  151.  
  152.    List1.AddItem G.RecorridoProfundidad("A")
  153.  
  154. End Sub
  155.  
  156. Private Sub Form_Load()
  157.  
  158.    L.CrearVacia
  159.    P.CrearVacia
  160.    C.CrearVacia
  161.    G.CrearVacio
  162.  
  163. End Sub


Y este es el del modulo de clase

Código
  1. Option Explicit   '' Obliga a definir todos las variables
  2. Option Base 1     '' Para obligar a que los array funcionen de 1-N
  3.  
  4. Const MIN = 1     '' Elemento Minimo del Array
  5. Const MAX = 100   '' Elemento Maximo del Array
  6. Const Nulo = 0    '' Posicion NO Valida de la Lista
  7.  
  8. Dim Vertices(MAX) As Variant  '' Array donde se guardan los elementos
  9. Dim Arcos(MAX, MAX) As Integer
  10.  
  11. Public NroVertices  As Integer  '' Maneja la Cantidad de Vertices que hay al momento en el grafo. maximo MAX = 100
  12.  
  13. Public Sub CrearVacio()
  14.    Dim i, j As Integer
  15.  
  16.  
  17.    NroVertices = 0  '' Indica que NO hay vertices
  18.  
  19.    '' Instancio cada casillero de la Matriz en Vacio
  20.    For i = 1 To MAX
  21.        For j = 1 To MAX
  22.            Arcos(i, j) = vbEmpty
  23.        Next
  24.    Next
  25. End Sub
  26.  
  27. Public Function EsVacio() As Boolean
  28.    EsVacio = IIf(NroVertices = 0, True, False)
  29. End Function
  30.  
  31. Public Function EsLleno() As Boolean
  32.    EsLleno = IIf(NroVertices = MAX, True, False)
  33. End Function
  34.  
  35. Public Function BuscarVertice(V As Variant) As Integer
  36.    Dim i As Integer
  37.  
  38.    BuscarVertice = Nulo
  39.    For i = 1 To NroVertices
  40.        If Vertices(i) = V Then
  41.            BuscarVertice = i
  42.            Exit For
  43.        End If
  44.    Next
  45. End Function
  46.  
  47. Public Function AgregarVertice(V As Variant) As Boolean
  48.  
  49.    If BuscarVertice(V) <> Nulo Then
  50.        AgregarVertice = False
  51.    Else
  52.        NroVertices = NroVertices + 1
  53.        Vertices(NroVertices) = V
  54.        AgregarVertice = True
  55.    End If
  56.  
  57. End Function
  58.  
  59. Public Function AgregarArco(V1, V2 As Variant, Varco As Variant, Optional ArcoBidireccional As Boolean = True) As Boolean
  60.    Dim i, j As Integer
  61.  
  62.    AgregarArco = False
  63.    If V1 <> V2 Then
  64.        i = BuscarVertice(V1)
  65.        j = BuscarVertice(V2)
  66.        If (i <> Nulo) And (j <> Nulo) Then
  67.            Arcos(i, j) = Varco
  68.            If ArcoBidireccional = True Then
  69.                Arcos(j, i) = Varco
  70.            End If
  71.            AgregarArco = True
  72.        End If
  73.    End If
  74. End Function
  75.  
  76. Public Function EliminarArco(V1, V2 As Variant, Optional ArcoBidireccional As Boolean = True) As Boolean
  77.    Dim i, j As Integer
  78.  
  79.    EliminarArco = False
  80.    If V1 <> V2 Then
  81.        i = BuscarVertice(V1)
  82.        j = BuscarVertice(V2)
  83.        If (i <> Nulo) And (j <> Nulo) Then
  84.            Arcos(i, j) = vbEmpty
  85.            If ArcoBidireccional = True Then
  86.                Arcos(j, i) = vbEmpty
  87.            End If
  88.            EliminarArco = True
  89.        End If
  90.    End If
  91. End Function
  92.  
  93. Public Function EliminarVertice(V As Variant) As Boolean
  94.    Dim i, j, k As Integer
  95.  
  96.    EliminarVertice = False
  97.    i = BuscarVertice(V)
  98.    If V <> Nulo Then
  99.        '' Primero Saco la Columna de la Matriz
  100.        For j = 1 To NroVertices
  101.            For k = i To NroVertices - 1
  102.                Arcos(j, k) = Arcos(j, k + 1)
  103.            Next
  104.        Next
  105.        '' Segundo saco la Fila de la matriz
  106.        For j = i To NroVertices - 1
  107.            For k = 1 To NroVertices - 1
  108.                Arcos(j, k) = Arcos(j + 1, k)
  109.            Next
  110.        Next
  111.        '' Saco el Vertice del vector de vertices
  112.        For j = i To NroVertices - 1
  113.            Vertices(j) = Vertices(j + 1)
  114.        Next
  115.        '' Por ultimo descuento 1 en la variable nrovertices
  116.        NroVertices = NroVertices - 1
  117.  
  118.        EliminarVertice = True
  119.    End If
  120. End Function
  121.  
  122. Public Function RetornarVertices() As String
  123.    Dim ll_i As Integer
  124.    Dim S As String
  125.  
  126.    RetornarVertices = ""
  127.    For ll_i = 1 To NroVertices
  128.        S = S & Vertices(ll_i) & ", "
  129.    Next
  130.    RetornarVertices = S
  131. End Function
  132.  
  133. Public Function RetornarArcos() As String
  134.    Dim ll_i As Integer
  135.    Dim ll_j As Integer
  136.    Dim S As String
  137.  
  138.    RetornarArcos = ""
  139.    For ll_i = 1 To NroVertices
  140.        For ll_j = 1 To NroVertices
  141.            S = S & Arcos(ll_i, ll_j) & ", "
  142.        Next
  143.        S = S & " | "
  144.    Next
  145.    RetornarArcos = S
  146. End Function
  147.  
  148. Public Function RecorridoProfundidad(V As Variant) As String
  149.  
  150.    Dim ll_i As Integer
  151.    Dim ll_j As Integer
  152.    Dim P As New Pilas
  153.    Dim L As New Listas
  154.    Dim S As String
  155.  
  156.    ll_i = BuscarVertice(V)
  157.    If ll_i = Nulo Then
  158.        RecorridoProfundidad = ""
  159.        Exit Function
  160.    End If
  161.  
  162.    '' Si esta el Vertice se comienza el recorrido en profundidad
  163.    P.CrearVacia
  164.    P.Apilar (ll_i)
  165.    L.CrearVacia
  166.    While Not P.EstaVacia
  167.        ll_i = P.Recuperar
  168.        L.Agregar (ll_i)
  169.        S = S & Vertices(ll_i)
  170.        P.DesApilar
  171.        For ll_j = 1 To NroVertices
  172.            If Arcos(ll_i, ll_j) <> vbEmpty Then
  173.                If L.Buscar(ll_j) = Nulo Then
  174.                    P.Apilar (ll_j)
  175.                End If
  176.            End If
  177.        Next
  178.    Wend
  179.  
  180.    RecorridoProfundidad = S
  181. End Function
  182.  
  183. Public Function RecorridoAnchura(V As Variant) As String
  184.  
  185.    Dim ll_i As Integer
  186.    Dim ll_j As Integer
  187.    Dim C As New Colas
  188.    Dim L As New Listas
  189.    Dim S As String
  190.  
  191.    ll_i = BuscarVertice(V)
  192.    If ll_i = Nulo Then
  193.        RecorridoAnchura = ""
  194.        Exit Function
  195.    End If
  196.  
  197.    '' Si esta el Vertice se comienza el recorrido en profundidad
  198.    C.CrearVacia
  199.    C.Encolar (ll_i)
  200.    L.CrearVacia
  201.    While Not C.EstaVacia
  202.        ll_i = C.Recuperar
  203.        L.Agregar (ll_i)
  204.        S = S & Vertices(ll_i)
  205.        C.DesEncolar
  206.        For ll_j = 1 To NroVertices
  207.            If Arcos(ll_i, ll_j) <> vbEmpty Then
  208.                If L.Buscar(ll_j) = Nulo Then
  209.                    C.Encolar (ll_j)
  210.                End If
  211.            End If
  212.        Next
  213.    Wend
  214.  
  215.    RecorridoAnchura = S
  216. End Function
  217.  

Editado por el moderador:

Utiliza las etiquetas code.
15  Programación / Programación Visual Basic / crear grafos en visual en: 15 Julio 2007, 17:35 pm
necesito crear un grafo en visual y no tengo ni idea tengo algo de codigo hecho
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines