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


 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Ejercicio] Aca tienen un ejercicio para practicar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Ejercicio] Aca tienen un ejercicio para practicar  (Leído 12,078 veces)
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
[Ejercicio] Aca tienen un ejercicio para practicar
« en: 2 Septiembre 2010, 14:46 »

Bueno un ejercicio bien facilito para que practiquen a ver quien lo hace mejor, luego pasaremos a recorrer la matriz de manera espiralada, en zig zag, por anillos etc

A ver quien se anima, es bien facilongo ;D

Hacer un programa que, dada una matriz de 5x5 (5 filas x 5 columnas), la llene con numeros aleatorios al azar SIN repetición entre un rango de 1 a 30(deberán generarse al azar), ordene esos números de menor a mayor, y luego deberá mostrar la X traspuesta que se encuentra impresa en la matriz osea, por ej:

Ejemplo:



Tanto el proceso de CargarMatriz, como el de OrdenarMatriz y el de MostrarMatriz deberán ser realizados con 1 estructura de repetición

PD: Para que vean que no es para hacerme la tearea les dejaré el code al finalizar el ejercicio, a ver quien hace el code más corto y prolijo

Pueden imprimir la matriz con Print o en labels, eso queda a elección

A codear mis buenos programadores! :laugh:


« Última modificación: 2 Septiembre 2010, 16:22 por Dreamaker » En línea

Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #1 en: 2 Septiembre 2010, 15:51 »

entonces cargamos numeros al azar en la matrix (jeje me re cope) y despues borramos los que no esten en la X?
no entedi :S

Seria que cargo todo.
y despues borro las etiquetas(X)

O X X X O
X O X O X
X X O X X
X O X O X
O X X X O


En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #2 en: 2 Septiembre 2010, 15:56 »

Bueno vi que varios se pasaron y al final nadie se animó, salvo vos Elemental Code :-X

entonces cargamos numeros al azar en la matrix (jeje me re cope) y despues borramos los que no esten en la X?
no entedi :S

Seria que cargo todo.
y despues borro las etiquetas(X)

O X X X O
X O X O X
X X O X X
X O X O X
O X X X O

No, no tenés que borrar ningún elemento de los que no esté en la X, sino simplemente cargar toda la matriz con números aleatorios sin repetición y luego sólo mostrar la X traspuesta de la matriz como muestra la imagen (osea la matriz estará cargada por completo, pero solo mostrarás la X traspuesta de números que está en ella)

Se evaluará eficiencia aparte de eficacia ya que tanto les gusta medir los tiempos de ejecución como vi por ahí :D

Nota: Aparte de todo esto, un detalle no menor, y es que el código deberá ser bien legible y entendible
« Última modificación: 2 Septiembre 2010, 15:59 por Dreamaker » En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #3 en: 2 Septiembre 2010, 16:04 »

.
No entiendo mucho la logica de este reto, pero bueno... :silbar:
Porque tenermos que generar una matriz entera si solo vamos a mostrarlas diagonales?¿ :huh:

DoEvents¡! :P
En línea

Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #4 en: 2 Septiembre 2010, 16:12 »

.
No entiendo mucho la logica de este reto, pero bueno... :silbar:
Porque tenermos que generar una matriz entera si solo vamos a mostrarlas diagonales?¿ :huh:

DoEvents¡! :P

La lógica es saber usar matrices y medir la eficacia de un programa de la mejor manera posible (como los retos por tiempo que hacen ahora)

Debes llenar la matriz completa porque así lo dice el ejercicio, luego con esa misma matriz la podrás recorrer de la manera que quieras (en este caso, por la X traspuesta)

Saludos!

PD: Lo importante es ser un programador el cual tenga mucha lógica y sabe programar, no un memorizador de funciones de x lenguaje, así sufren muchos después para migrar a otra plataforma completamente distinta, cuando lo único que cambia prácticamente es la sintaxis si sabes programar de verdad :D. Esto no es más que un ejercicio para practicar y poner a prueba sus conocimientos así mismos

Fijate *PsYkE1* ahora el agregado y verás por qué hay que llenar toda la matriz, aparte deberán ordenar esos números generados sin repetición de menor a mayor, que era la idea previa pero me había olvidado de agregarlo

A codear! :D
« Última modificación: 2 Septiembre 2010, 16:27 por Dreamaker » En línea

Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #5 en: 3 Septiembre 2010, 00:25 »

87 visitas y ni uno se anima a hacerlo?

Me hacen creer que sólo usan las funciones del lenguaje pero no saben los fundamentos de la programación que bien es lo más importante, el lenguaje es una herramienta nada más, la programación está adentro de uno

No me hagan pensar mal y que alguno se anime a hacerlo por lo menos..

Vamos que acordarse la sintaxis y las funciones de un lenguaje es muy fácil :laugh:
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #6 en: 3 Septiembre 2010, 15:33 »

He tenido un ratito libre y he hecho mi code :D
No se si es exactamente lo que se pedia, pero algo es algo :laugh:
Código
  1. Option Explicit
  2. Option Base 0
  3.  
  4. Dim bMatrix(4, 4)   As Byte
  5.  
  6. Public Sub FillAndSortMatrix()
  7.    Dim bvTmp(24)   As Byte
  8.    Dim i           As Long
  9.  
  10.    Call bURGN(bvTmp)
  11.    Call GnomeSort(bvTmp)
  12.    For i = 0 To 24
  13.        bMatrix((i \ 5), (i Mod 5)) = bvTmp(i)
  14.    Next i
  15. End Sub
  16.  
  17. Public Sub bURGN(ByRef bvArray() As Byte)
  18.    Dim x           As Integer
  19.    Dim n           As Integer
  20.    Dim colNumbers  As New Collection
  21.    Dim Max         As Long
  22.  
  23.    Max = 255
  24.  
  25.    With colNumbers
  26.        For x = 0 To 255
  27.            .Add x
  28.        Next x
  29.        For x = 0 To UBound(bvArray)
  30.            Call Randomize(Timer)
  31.            n = Int(Max * Rnd)
  32.            bvArray(x) = colNumbers(n + 1)
  33.            colNumbers.Remove (n + 1)
  34.            Max = Max - 1
  35.        Next x
  36.    End With
  37.    Set colNumbers = Nothing
  38. End Sub
  39.  
  40. Public Sub GnomeSort(ByRef bvArray() As Byte)
  41.    On Error Resume Next
  42.    Dim lPos        As Long
  43.    Dim lUbound     As Long
  44.  
  45.    lUbound = UBound(bvArray) + 1
  46.    While lPos < lUbound
  47.        If (lPos = 0) Or (bvArray(lPos) >= bvArray(lPos - 1)) Then
  48.            lPos = lPos + 1
  49.        Else
  50.            bvArray(lPos) = bvArray(lPos) Xor bvArray(lPos - 1)
  51.            bvArray(lPos - 1) = bvArray(lPos - 1) Xor bvArray(lPos)
  52.            bvArray(lPos) = bvArray(lPos) Xor bvArray(lPos - 1)
  53.            lPos = lPos - 1
  54.        End If
  55.    Wend
  56. End Sub
  57.  
  58. Sub Main()
  59.    Dim i           As Long
  60.    Dim w           As Long
  61.  
  62.    Call FillAndSortMatrix
  63.    For i = 0 To 4
  64.        For w = 0 To 4
  65.            If (w = i) Or (4 - i = w) Then
  66.                Debug.Print bMatrix(i, w),
  67.            Else
  68.                Debug.Print vbNullString,
  69.            End If
  70.        Next w
  71.        Debug.Print ""
  72.    Next i
  73. End Sub
  74.  
En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #7 en: 3 Septiembre 2010, 15:45 »

HOLA!!!

Creo que hice lo que pedis:

El form tiene un array de labels de 25 items (0-24) llamados LBL().

CODIGO DEL FORM :
Código
  1. Dim MATRIX() As Integer
  2. Public N As Integer ' DIMENSION DE LA MATRIZ
  3. Public PASA As Boolean ' VERIFICA LA REPETICION DE NUMEROS
  4. Public ORDENADO As Boolean ' VERIFICA QUE ESTE ORDENADO
  5.  
  6. Private Sub Form_Load()
  7.    Randomize
  8.    Me.Caption = "Ejercicio de Matrices"
  9.    'CREA LA MATRIZ
  10.    N = 5
  11.    ReDim MATRIX(N, N)
  12.    'MATRIZ CREADA
  13.    Call LLENAR_MATRIZ
  14.    Call ORDENAR_MATRIZ
  15.    Call MOSTRAR_MATRIZ
  16. End Sub
  17.  
  18. Private Sub LLENAR_MATRIZ()
  19.    For Y = 1 To N
  20.        For X = 1 To N
  21.            MATRIX(Y, X) = Int(Rnd() * 30)
  22.            'VERIFICA SI ESTA REPETIDO Y LO CAMBIA
  23.            PASA = False
  24.            While PASA = False
  25.                PASA = True
  26.                For Y2 = 1 To N
  27.                    For X2 = 1 To N
  28.                        If MATRIX(Y, X) = MATRIX(Y2, X2) And Not (X2 = X And Y2 = Y) Then
  29.                            PASA = False
  30.                        End If
  31.                    Next X2
  32.                Next Y2
  33.                If PASA = False Then
  34.                    MATRIX(Y, X) = Int(Rnd() * 30)
  35.                End If
  36.            Wend
  37.            'VERIFICA SI ESTA REPETIDO Y LO CAMBIA
  38.        Next X
  39.    Next Y
  40. End Sub
  41.  
  42. Private Sub ORDENAR_MATRIZ()
  43.    Dim AUX As Integer
  44.    While ORDENADO = False
  45.        ORDENADO = True
  46.        For Y = 1 To N
  47.            For X = 1 To N
  48.                If Not (X = N And Y = N) Then
  49.                    If X = N Then
  50.                        If MATRIX(Y, X) > MATRIX(Y + 1, 1) Then
  51.                            AUX = MATRIX(Y + 1, 1)
  52.                            MATRIX(Y + 1, 1) = MATRIX(Y, X)
  53.                            MATRIX(Y, X) = AUX
  54.                            ORDENADO = False
  55.                        End If
  56.                    Else
  57.                        If MATRIX(Y, X) > MATRIX(Y, X + 1) Then
  58.                            AUX = MATRIX(Y, X + 1)
  59.                            MATRIX(Y, X + 1) = MATRIX(Y, X)
  60.                            MATRIX(Y, X) = AUX
  61.                            ORDENADO = False
  62.                        End If
  63.                    End If
  64.                End If
  65.            Next X
  66.        Next Y
  67.    Wend
  68. End Sub
  69.  
  70. Private Sub MOSTRAR_MATRIZ()
  71.    For Y = 1 To N
  72.        For X = 1 To N
  73.            If X = Y Then
  74.                LBL(CT).Caption = MATRIX(Y, X)
  75.            End If
  76.            If X + Y = N + 1 Then
  77.                LBL(CT).Caption = MATRIX(Y, X)
  78.            End If
  79.            CT = CT + 1
  80.        Next X
  81.    Next Y
  82. End Sub
  83.  


GRACIAS POR LEER!!!
« Última modificación: 4 Septiembre 2010, 03:55 por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #8 en: 3 Septiembre 2010, 16:52 »

@79137913: La matriz ha de estar ordenada y sus valores no pueden estar repetidos.
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: [Ejercicio] Aca tienen un ejercicio para practicar
« Respuesta #9 en: 3 Septiembre 2010, 17:26 »

Karcrack te has pasado...! Te quedo muy bueno el code...! Saludos...
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Preparación para un ejercicio
Ingeniería Inversa
Puntoinfinito 1 1,132 Último mensaje 27 Agosto 2012, 04:07
por apuromafo CLS
Ayuda con un ejercicio (imports.IO)
.NET (C#, VB.NET, ASP)
crashoverride1305 2 1,483 Último mensaje 8 Enero 2013, 04:32
por Eleкtro
ayuda, Ejercicio para examen!
Programación C/C++
edu__87 1 965 Último mensaje 15 Febrero 2013, 19:43
por durasno
Ayuda con ejercicio a entregar en c++
Programación C/C++
gabyricardo92 7 1,490 Último mensaje 9 Julio 2013, 16:48
por gabyricardo92
ejercicio de pozos ayuda
Programación C/C++
avilacity 3 1,407 Último mensaje 14 Septiembre 2013, 15:53
por eferion
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines