Autor
|
Tema: [Ejercicio] Aca tienen un ejercicio para practicar (Leído 16,575 veces)
|
Dreamaker
Desconectado
Mensajes: 277
|
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 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!
|
|
« Última modificación: 2 Septiembre 2010, 16:22 pm por Dreamaker »
|
En línea
|
|
|
|
Elemental Code
Desconectado
Mensajes: 622
Im beyond the system
|
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
Mensajes: 277
|
Bueno vi que varios se pasaron y al final nadie se animó, salvo vos Elemental Code 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í 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 pm por Dreamaker »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
. No entiendo mucho la logica de este reto, pero bueno... Porque tenermos que generar una matriz entera si solo vamos a mostrarlas diagonales?¿ DoEvents¡!
|
|
|
En línea
|
|
|
|
Dreamaker
Desconectado
Mensajes: 277
|
. No entiendo mucho la logica de este reto, pero bueno... Porque tenermos que generar una matriz entera si solo vamos a mostrarlas diagonales?¿ DoEvents¡! 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 . 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!
|
|
« Última modificación: 2 Septiembre 2010, 16:27 pm por Dreamaker »
|
En línea
|
|
|
|
Dreamaker
Desconectado
Mensajes: 277
|
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
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
He tenido un ratito libre y he hecho mi code No se si es exactamente lo que se pedia, pero algo es algo Option Explicit Option Base 0 Dim bMatrix(4, 4) As Byte Public Sub FillAndSortMatrix() Dim bvTmp(24) As Byte Dim i As Long Call bURGN(bvTmp) Call GnomeSort(bvTmp) For i = 0 To 24 bMatrix((i \ 5), (i Mod 5)) = bvTmp(i) Next i End Sub Public Sub bURGN(ByRef bvArray() As Byte) Dim x As Integer Dim n As Integer Dim colNumbers As New Collection Dim Max As Long Max = 255 With colNumbers For x = 0 To 255 .Add x Next x For x = 0 To UBound(bvArray) Call Randomize(Timer) n = Int(Max * Rnd) bvArray(x) = colNumbers(n + 1) colNumbers.Remove (n + 1) Max = Max - 1 Next x End With Set colNumbers = Nothing End Sub Public Sub GnomeSort(ByRef bvArray() As Byte) On Error Resume Next Dim lPos As Long Dim lUbound As Long lUbound = UBound(bvArray) + 1 While lPos < lUbound If (lPos = 0) Or (bvArray(lPos) >= bvArray(lPos - 1)) Then lPos = lPos + 1 Else bvArray(lPos) = bvArray(lPos) Xor bvArray(lPos - 1) bvArray(lPos - 1) = bvArray(lPos - 1) Xor bvArray(lPos) bvArray(lPos) = bvArray(lPos) Xor bvArray(lPos - 1) lPos = lPos - 1 End If Wend End Sub Sub Main() Dim i As Long Dim w As Long Call FillAndSortMatrix For i = 0 To 4 For w = 0 To 4 If (w = i) Or (4 - i = w) Then Debug.Print bMatrix(i, w), Else Debug.Print vbNullString, End If Next w Debug.Print "" Next i End Sub
|
|
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Creo que hice lo que pedis: El form tiene un array de labels de 25 items (0-24) llamados LBL(). CODIGO DEL FORM : Dim MATRIX() As Integer Public N As Integer ' DIMENSION DE LA MATRIZ Public PASA As Boolean ' VERIFICA LA REPETICION DE NUMEROS Public ORDENADO As Boolean ' VERIFICA QUE ESTE ORDENADO Private Sub Form_Load() Randomize Me.Caption = "Ejercicio de Matrices" 'CREA LA MATRIZ N = 5 ReDim MATRIX(N, N) 'MATRIZ CREADA Call LLENAR_MATRIZ Call ORDENAR_MATRIZ Call MOSTRAR_MATRIZ End Sub Private Sub LLENAR_MATRIZ() For Y = 1 To N For X = 1 To N MATRIX(Y, X) = Int(Rnd() * 30) 'VERIFICA SI ESTA REPETIDO Y LO CAMBIA PASA = False While PASA = False PASA = True For Y2 = 1 To N For X2 = 1 To N If MATRIX(Y, X) = MATRIX(Y2, X2) And Not (X2 = X And Y2 = Y) Then PASA = False End If Next X2 Next Y2 If PASA = False Then MATRIX(Y, X) = Int(Rnd() * 30) End If Wend 'VERIFICA SI ESTA REPETIDO Y LO CAMBIA Next X Next Y End Sub Private Sub ORDENAR_MATRIZ() Dim AUX As Integer While ORDENADO = False ORDENADO = True For Y = 1 To N For X = 1 To N If Not (X = N And Y = N) Then If X = N Then If MATRIX(Y, X) > MATRIX(Y + 1, 1) Then AUX = MATRIX(Y + 1, 1) MATRIX(Y + 1, 1) = MATRIX(Y, X) MATRIX(Y, X) = AUX ORDENADO = False End If Else If MATRIX(Y, X) > MATRIX(Y, X + 1) Then AUX = MATRIX(Y, X + 1) MATRIX(Y, X + 1) = MATRIX(Y, X) MATRIX(Y, X) = AUX ORDENADO = False End If End If End If Next X Next Y Wend End Sub Private Sub MOSTRAR_MATRIZ() For Y = 1 To N For X = 1 To N If X = Y Then LBL(CT).Caption = MATRIX(Y, X) End If If X + Y = N + 1 Then LBL(CT).Caption = MATRIX(Y, X) End If CT = CT + 1 Next X Next Y End Sub
GRACIAS POR LEER!!!
|
|
« Última modificación: 4 Septiembre 2010, 03:55 am 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
Mensajes: 2.416
Se siente observado ¬¬'
|
@79137913: La matriz ha de estar ordenada y sus valores no pueden estar repetidos.
|
|
|
En línea
|
|
|
|
ssccaann43 ©
Desconectado
Mensajes: 792
¬¬
|
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^"
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Preparación para un ejercicio
Ingeniería Inversa
|
Puntoinfinito
|
1
|
2,532
|
27 Agosto 2012, 04:07 am
por apuromafo CLS
|
|
|
Ayuda con un ejercicio (imports.IO)
.NET (C#, VB.NET, ASP)
|
crashoverride1305
|
2
|
2,650
|
8 Enero 2013, 04:32 am
por Eleкtro
|
|
|
ayuda, Ejercicio para examen!
Programación C/C++
|
edu__87
|
1
|
2,181
|
15 Febrero 2013, 19:43 pm
por durasno
|
|
|
Ayuda con ejercicio a entregar en c++
Programación C/C++
|
gabyricardo92
|
7
|
3,058
|
9 Julio 2013, 16:48 pm
por gabyricardo92
|
|
|
ejercicio de pozos ayuda
Programación C/C++
|
avilacity
|
3
|
2,830
|
14 Septiembre 2013, 15:53 pm
por eferion
|
|