Usuario:
Contraseña:

Nueva encuesta
Nuevo enlace

Cremas y Aceites
 
  Programación  >  Windows  
 
Visual Basic.net 
 
 Programación en el lenguaje Visual Basic

FUNCIONES ESPECIFICAS
Tema organizado por: killbill07


 

  Pilas Y Colas en Visual Basic .Net

 


Por:  Juan257
  (Leído 31710 veces)  (Contiene 4 respuestas)
 

  Ofrece 1 puntos de bronce por una respuesta que a su entender sea correcta.


  Pilas Y Colas en Visual Basic .Net - 2010-02-16 / 18:09:08
 
Usuario Invitado

 Juan257




 
Mensaje de
Juan257
 
Necesito ayuda con un trabajo para la facu!! tengo que hacer unos trabajos con pilas y colas. Quiero hacerlas con VB .Net y la verdad no se como comenzar. Necesito algún programa sencillo de pilas o colas con el que pueda guiarme(aunque no este en Visual). Desde ya muchas garcias =)



 


  Re: Pilas Y Colas en Visual Basic .Net - 2010-02-16 / 22:00:35
 
  killbill07  


Mensajes: 2669  
Noticias: 20
Artículos: 22
Enlaces: 5
Comentarios: 124

Ilustradora Nivel 1




EXPERTA Nivel 7

Medallas de Honor ( Nivel 6 )







Orientación: Angel celestial


Lema de killbill07
Las palabras no palabran, sino que blablan.

 
Mensaje de
killbill07
Honor: 231
 
Popularidad
 
 
Hola Juan! Voy a tratar de ayudarte con lo de las pilas y las colas. Lo primero para que te des una idea general del asunto, es que para usar pilas en Vb.Net debés importar la clases Stack, que está en System...Bueno mejor vamos a ver primero el asunto de las pilas, no quiero marearte. Las pilas son de la clase Stack (justamente, pila) y sirven para entrar valores que después serán devueltos en LIFO (Last In First Out: Primero en entrar, último en salir). O sea que el primer valor que metamos va a ser el último en salir, y el último en entrar va a ser el primero en salir. Ahora cuando lo veamos abajo, se va a enteder mejor. Abrí Visual Basic.Net y creá una nueva aplicación de consola, y pegá el código de abajo. Después ejecutalo para que puedas ver el resultado. Ojo, antes leelo sino no tiene gracia XD
[codigo]
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

Public Class MuestraPila

Public Shared Sub Main()

' Crea e inicializa una nueva pila
Dim miPila As New Stack()
miPila.Push("Hola")
miPila.Push("mundo")
miPila.Push("!")

' Muestra las propiedades y valores de la pila
Console.WriteLine("miPila")
Console.WriteLine(ControlChars.Tab & "Cuenta: {0}", miPila.Count)
Console.Write(ControlChars.Tab & "Valores:")
ImprimeValores(miPila)
Console.ReadLine()
End Sub

Public Shared Sub ImprimeValores(myCollection As IEnumerable)
Dim obj As [Object]
For Each obj In myCollection
Console.Write(" {0}", obj)
Next obj
Console.WriteLine()
End Sub 'ImprimeValores
End Class

' Este codigo produce la siguiente salida
'
' miPila
' Cuenta: 3
' Valores: ! mundo Hola
[nocodigo]
Como podrás ver, este código no fue escrito por mí, sino que lo extraje de MSDN y le cambié los nombres a cada cosa para "castellanizarlo" y que sea más entendible.
Siempre es bueno consultar MSDN cuando tengas estas dudas. Te dejo dos links:
Clase Stack
Clase Queue
Hay sólo una cosa que corregí, que los muchachos de Microsoft deberían tener bien en claro: Agregué Console.ReadLine() ya que sino la ventana se cierra tan rápido que no podemos ni verla. Sigamos con la explicación.
Como ves, para "meter" valores en una pila usamos push. Los valores se imprimen de atrás para adelante, sería como hacer una cuenta regresiva. Si quisieras, podrías armar una cuenta regresiva con números. Pero tendrías que hacer como 10 líneas con lo mismo, cambiando sólo los números. O podés hacer...mmm mejor te lo voy a dejar como ejercicio para que lo pienses vos, después subís el resultado y si no te sale me decís y te lo muestro.
Ahora es cuando más vamos a ver la diferencia entre pila y consulta, mirá este ejemplo:
[codigo]
Imports System
Imports System.Collections

Public Class MuestraQueue

Public Shared Sub Main()

' Crea e inicializa una nueva consulta o Queue
Dim miQ As New Queue()
miQ.Enqueue("Hola")
miQ.Enqueue("mundo")
miQ.Enqueue("!")

' Muestra las propiedades y valores del queue
Console.WriteLine("miQ")
Console.WriteLine(" Cuenta: {0}", miQ.Count)
Console.Write(" Valores:")
ImprimeValores(miQ)
Console.ReadLine()

End Sub 'Main

Public Shared Sub ImprimeValores(myCollection As IEnumerable)
Dim obj As [Object]
For Each obj In myCollection
Console.Write(" {0}", obj)
Next obj
Console.WriteLine()
End Sub 'ImprimeValores

End Class 'MuestraQueue


' Este código tiene la siguiente salida:
'
' miQ
' Cuenta: 3
' Valores: Hola mundo !
[nocodigo]
En definitiva: Queue cuenta en el orden común, y las pilas del último a primero. Si ponemos "Hola mundo!" como hicimos, queue devuelve Hola mundo! y las pilas devuelven ! mundo Hola. Espero que quede claro y te ayude. Saludos.




 


  Re: Pilas Y Colas en Visual Basic .Net - 2010-03-03 / 05:18:46
 
  Jesús Rubén  
( J35U5R )


Mensajes: 2157  
Noticias: 5
Artículos: 8
Comentarios: 37





EXPERTO Nivel 8

Medallas de Honor ( Nivel 6 )







Orientación: Angel celestial


Lema de J35U5R
Esclavo de la ecuación universal

 
Mensaje de
Jesús Rubén (J35U5R)
Honor: 288
 
Popularidad
 
 
Como hay varias personas que preguntan sobre lo mismo, ampliaré un poco lo que dice Mariela.

Para acordarnos es muy sencillo, si pensamos en una cola, como si fuese una cola para ir al cine, el siguiente que entra en la cola, se pone el último de la fila y van saliendo de la cola (entrando al cine) en orden en el que llegaron.

Para acordarnos de las pilas, imaginamos una pila de platos, vamos poniendolos unos encima de otros conforme los sacamos del lavavajillas, por supuesto cuando quieremos sacar uno de la pila, siempre sacaremos el de arriba, usease, el último plato que ha entrado.

Con estos dos truquitos, seguro que ya no tienes problemas en diferenciarlos.

Ahora aclararemos que estas dos clases son colecciones, las colecciones en .net Framework son listas de objetos, como todo hereda de la clase objeto ya que es la base de herencia de todas las clases de .net Framework, podemos meter cualquier cosa.

Para aumentar el rendimiento y quitarle un poco de trabajo al typecast, se recomienda indicar el tipo de clases que vamos a meter en la colección.

Ejemplo:

[codigo]

Dim MiPila As Stack(Of String)

[nocodigo]

He definido que la pila MiPila va a contener sólo clases de tipo String. Por lo que sólo podré meter cadenas de texto en esa colección, esto optimizará muchísimo el código, ya que podemos asignar la referencia del objeto directamente sin tener que hacer un cast (conversión de tipos).

Cuando hablamos de colecciones no podemos dejarnos de lado la maestra de las colecciones, mi colección favorita y la más usada pro todos. El Dictionary. El dictionary tiene la peculiaridad de que le podemos meter una clave, por la cual podremos consultar un elemento con el parámetro ContainsKey, y el SortedDictionary es más avanzado, pero consume más al añadir un elemento, ya que tiene que ordenar el hashtable.

Os pongo un ejemplito de un dictionary:

[codigo]

Dim MiDiccionario As Dictionary(Of Integer, String) = New Dictionary(Of Integer, String)
MiDiccionario.Add(1, "Hola")
MiDiccionario.Add(2, "Mundo")

Dim MiString$ = MiDiccionario(1) 'Meto Hola dentro de MiString

If MiDiccionario.ContainsKey(2) Then 'Reviso que contenga la clave 2
Dim MiString2$ = MiDiccionario(2) 'Meto Mundo dentro de MiString
End If

[nocodigo]

Si es un SortedDictionary lo podemos recorrer de forma ordenada.

Aviso importante sobre mutithread:
No se os ocurra eliminar o añadir elementos de un diccionario o cualquier colección mientras estaís haciendo un foreach. Si necesitaís modificar una colección mediante otro thread, hay que siempre usar un Mutex o un Interlocked de operación atómica, dependiendo de la necesidad.




 


  Re: Pilas Y Colas en Visual Basic .Net - 2011-05-02 / 08:42:11
 
Usuario Invitado

 temossg01



Método de contacto:
r@r.r
 

Mensaje actualizado el 2011-05-02 18:55:58 por caro446.
 
Mensaje de
temossg01
 
esos programitas no hacen nada
los compile en vb 2010 y no pasa nada al correrlos en consola




 


  Re: Pilas Y Colas en Visual Basic .Net - 2011-08-19 / 08:29:19
 
  Joel Herrera  
( silencer9 )


Mensajes: 1  

Novato







 
Mensaje de
Joel Herrera (silencer9)
Honor: 0
 
Popularidad
 
 
necesito ayuda con pila y cola yo ya tengo todo los codigos

el problema q quiero resolver es que si escribo una letra q no se encuentra me envie un msgbox q diga q no se encuentra y las letras q tngo se queden en el listbox sin q se borren

el q me quiera ayudar me puede escribir a mi correo : trueblackmetal9@gmail.com

spero su ayuda

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

ListBox1.Items.Add("7")
ListBox1.Items.Add("9")
ListBox1.Items.Add("10")
ListBox1.Items.Add("12")
ListBox1.Items.Add("15")

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ListBox2.Items.Add("A")
ListBox2.Items.Add("a")
ListBox2.Items.Add("B")
ListBox2.Items.Add("c")
ListBox2.Items.Add("D")

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim a As Integer
For a = 0 To ListBox2.Items.Count - 1
If TextBox1.Text = ListBox2.Items.Item(0) Then
ListBox2.Items.RemoveAt(0)
Exit For
Else
ListBox2.Items.RemoveAt(0)
End If
Next
If ListBox2.Items.Count = "0" Then
MsgBox("no element")
End If
End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim b As Integer
For b = 0 To ListBox1.Items.Count - 1
If ListBox1.Text = ListBox1.Items.Item(ListBox1.Items.Count - 1) Then
ListBox1.Items.RemoveAt(ListBox1.Items.Count - 1)
Exit For
Else
ListBox1.Items.RemoveAt(ListBox1.Items.Count - 1)
End If
Next b
If ListBox1.Items.Count = "0" Then
MsgBox("no element")
End If
End Sub
End Class




 
 
   Páginas sobre este tema:
 

  
Redee  >  Comunidades Redee  >  Windows  > 
Visual Basic.net 


 
  Programación en el lenguaje Visual Basic


 





  Últimos mensajes en Comunidades Redee / Visual Basic.net:
  Duda con este programa (Soy principante)(video de demostracion)  [ Visual Basic.net |  Re: 0 ] Por: Perdomo Sinecio
2013-06-08 / 02:19:15
  Duda con este programa (Soy principante)  [ Visual Basic.net |  Re: 0 ] Por: Perdomo Sinecio
2013-06-08 / 02:12:29
  ZOOM Personalizado  [ Visual Basic.net |  Re: 0 ] Por: jose alejandro
2013-03-08 / 21:10:07
  Programa en Visual Basic 6.0  [ Visual Basic.net |  Re: 0 ] Por: DiiaNNaa
2012-03-11 / 22:10:42

  Últimas Respuestas Globales:
  Mi mouse se tilda, No encuentro solución.  [ | Re:] Por: Invitado
Ayer 22:57:44
  PROBLEMA AL GUARDAR PARTIDA GTA SAN ANDREAS PC ! AYUDA !  [ | Re:] Por: Invitado
Ayer 18:09:59
  Servidor dedicado mas rapido? y como pongo el modo gungame y dm  [ | Re:] Por: Invitado
  Age Of Empires 2 multiplayer ip para compartir  [ Age of Empires | Re:47] Por: MEBAR2
  No puedo abrir la consola del HL  [ Half-Life 2 | Re:7] Por: Invitado

  Relacionados con este tema en Comunidades Redee / Visual Basic.net:
  Pilas Y Colas en Visual Basic .Net  [ Visual Basic.net |  Re: 4 ] Por: Juan257
2010-02-16 / 18:09:08
  Pilas y colas en vb 2008  [ Visual Basic.net |  Re: 2 ] Por: Gabriela Jiménez
2010-03-03 / 04:31:26
  Como hacer calculadora polaca en Visual Basic usando pilas???  [ Visual Basic.net |  Re: 0 ] Por: alwaro
2008-09-15 / 23:17:39
  Ayuundeme necesito Ejemplos de pilas Pero ahoriita tengo que entregarlo en 2 horas  [ Visual Basic.net |  Re: 1 ] Por: AmarielyRomerooo
2011-10-25 / 17:38:58
  visual basic para SP1  [ Visual Basic.net |  Re: 2 ] Por: juaniyo
2007-01-22 / 03:06:36

  Relacionados con este tema en Comunidades Redee / Visual Basic.net:
  Ayuda VB 2008 Navegador Web!! Urgentee!!  [ Visual Basic.net |  Re: 3 ] Por: Juanfra Lopez
2010-01-17 / 17:10:30
  Crear un bloqueador con visual basic  [ Visual Basic.net |  Re: 3 ] Por: pikachu15
2010-01-11 / 23:53:37
  Duda sobre visual basic  [ Visual Basic.net |  Re: 2 ] Por: wikunista
2010-01-11 / 16:22:07
  visual basic 2008 instalador  [ Visual Basic.net |  Re: 3 ] Por: coti-diano
2010-01-01 / 11:53:09
  Problemas con el Visual Basic 2008 (navegador)  [ Visual Basic.net |  Re: 8 ] Por: hiph0p4l1f3
2009-12-27 / 14:48:30


Hazte miembro
¿Quieres ser el miembro 266870 ?

Registrate ahora...
Comunidad versión: 1.2 Beta   Comunidades Redee - Ver condiciones de uso