Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejemplo Con Colecciones, Funciones, Procedimientos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejemplo Con Colecciones, Funciones, Procedimientos 
 
Hola a todos/as!.

Después de la entrega del juego memory en Python, me puse con este ejemplo en el que se usan procedimientos, funciones y colecciones.

Este ejemplo no se si lo he dejado en el foro adecuado. Ya que la función de este código no es hacer algo para que lo podáis reutilizar,
si no la de ver como esta  hecho ( enseñar) y comentar. No creo que General fuera su sitio.  

En este ejemplo se crea una red de usuarios, que pueden estar conectados o no conectados.
Al comenzar el código estaba todo en el mismo bloque y luego lo fui dividiendo en procedimientos y funciones.
La salida va por consola, no se usa formulario. Aunque al comenzar el ejemplo, escogiese formulario..ejem.  

Naturalmente al repartir el código en varios procedimientos y funciones, desaparecen muchas variables que
estaban en el único bloque, convirtiéndose en variables locales de los procedimientos y funciones.

Pego el ejemplo aquí:

Private usuarios As New Collection

Public Sub _new()
  
End

Public Sub Form_Open()
  
  Dim usuarios_conectados As New String[]
  Dim usuarios_desconectados As New String[]  
  Dim conectados As Boolean = True
  Dim desconectados As Boolean = False
  
  Crear_Usuarios()
    
  usuarios_conectados = agrupar_usuarios(usuarios, conectados)
  usuarios_desconectados = agrupar_usuarios(usuarios, desconectados)
  
  Mostrar_Resumen(usuarios, usuarios_conectados, usuarios_desconectados)
  
End

Public Sub Mostrar_Resumen(col_usuarios As Collection, uconectados As String[], udesconectados As String[])
  
  Print "Resumen de la red"
  Print "Nuestra red esta formada por " & col_usuarios.Count & " usuarios"
  Print "Tenemos " & uconectados.Count & " usuarios conectados"
  Print
  Print "Están conectados: " & mostrar_usuarios(uconectados)
  Print "Están desconectados: " & mostrar_usuarios(udesconectados)
  
End

Public Sub Crear_Usuarios()
  
  'Añadimos los usuarios conocidos de la red.Estado y nombre
  
  usuarios.Add(True, "Juan")
  usuarios.Add(True, "Daniel")
  usuarios.Add(False, "Javier")
  usuarios.Add(False, "Antonio")
  usuarios.Add(True, "Maria")
  usuarios.Add(False, "Lourdes")
  usuarios.Add(True, "Loli")
  usuarios.Add(True, "Manuel")
  
End

Public Function mostrar_usuarios(grupo As String[]) As String

  Dim usuario As String
  Dim concatena As String
  
  For Each usuario In grupo
    concatena &= usuario & ","
  Next
  ' Para eliminar la ultima coma de la derecha
  concatena = Left$(concatena, RInStr(concatena, ",") - 1)
  Return concatena
  
End

Public Function agrupar_usuarios(col_usuarios As Collection, estado As Boolean) As String[]
  Dim estado_usuario As Boolean
  Dim grupo_usuario As New String[]
  
  For Each estado_usuario In col_usuarios
    'Comprobamos el estado y añadimos el usuario al grupo_usuario.Obteniendo su nombre con la clave de la colección      
    If estado_usuario = estado Then grupo_usuario.Add(col_usuarios.Key)  
    
  Next
  Return grupo_usuario
  
End
 


Espero que a los nuevos les cree dudas, que les motive y que hagan preguntas. No se corten, háganlas.
Ok, aquí va la primera. Como veis, desde el bloque principal se va llamando a los otros trozos mas pequeños de código, procedimiento, funciones,
no han tenido un orden. ¿ Creéis que según se va llamando desde el bloque principal, deberían estar ordenados abajo del principal ?.

La segunda. ¿ Usarías un orden concreto ?.¿ Agruparías de alguna manera los procedimientos y funciones ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo Con Colecciones, Funciones, Procedimientos 
 
Ups...la función de agrupar usuarios no parece haberme quedado clara..ya que estado de usuario es True y estado, varia según están conectado o no.
Con lo que ..ejem...me toca volver a mirarlo. Existe salida en ambos.

A pesar de todo la salida ha sido esta:

--------
Resumen de la red
Nuestra red esta formada por 8 usuarios
Tenemos 5 usuarios conectados

Están conectados: Juan,Daniel,Maria,Loli,Manuel
Están desconectados: Javier,Antonio,Lourdes
--------

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo Con Colecciones, Funciones, Procedimientos 
 
Pues, si, esta correcta.

Perdonar mi confusión.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Manual Basico Y Ejemplo De: Uso De Clases,... jsbsan General 2 Domingo, 25 Diciembre 2011, 14:06 Ver último mensaje
Oleguer
No hay nuevos mensajes Procedimientos A La Hora De Crear Nuestra ... Shell General 6 Miercoles, 24 Octobre 2012, 17:28 Ver último mensaje
fabianfv
No hay nuevos mensajes Ejemplo Para Ver Los Procedimientos De Un ... Shell Aplicaciones/Fragmentos de Código 2 Miercoles, 10 Diciembre 2014, 14:08 Ver último mensaje
Shell
No hay nuevos mensajes VideoConferencia En Hangouts: Ejemplo De U... jsbsan General 11 Lunes, 04 Abril 2016, 19:48 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron