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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación Visual Basic / Re: No Puedo poner los for que me da la gana en: 17 Junio 2010, 18:07 pm

Private Sub Command1_Click()
Dim numescaños As Double
numescaños = Val(Text3.Text - 1)
 Dim temp, n As Double
Dim hasta As Double
Dim m As Double
 n = Val(4 * (numescaños + 1))

Dim i, j As Double

ReDim matriz(numescaños, 3)
ReDim vector(n)
Dim votos(3) As Long
m = 0


matriz(0, 0) = Text1(0).Text
matriz(0, 1) = Text1(1).Text
matriz(0, 2) = Text1(2).Text
matriz(0, 3) = Text1(3).Text

vector(0) = Text1(0).Text

vector(1) = Text1(1).Text
vector(2) = Text1(2).Text
vector(3) = Text1(3).Text

minimo = -3


For i = 1 To numescaños
minimo = minimo + 3

For j = 0 To 3
dimension = Val(i + j + minimo + 3)
matriz(i, j) = Val(matriz(0, j) / (i + 1))
vector(dimension) = Val(matriz(0, j) / (i + 1))

'MsgBox (matriz(i, j))

Next
Next

For z = 0 To n - 1

For x = 0 To n

If vector(x) > vector(x + 1) Then
temp = vector(x)

vector(x + 1) = vector(x)
vector(x) = temp
End If



Next x

Next z

For a = 0 To n - 1



MsgBox (vector(a))

Next


hasta = vector(numescaños)
MsgBox (hasta)





MsgBox (hasta)
For t = 0 To 3
votos(t) = 0
Next


For x = 0 To numescaños


For j = 0 To 3
If matriz(x, j) > hasta Then
votos(j) = Val(votos(j) + 1)

k = k + 1
Else

End If

Next
Next
MsgBox (k)
For z = 0 To 3
MsgBox (votos(z))
Next
2  Programación / Programación Visual Basic / Re: No Puedo poner los for que me da la gana en: 17 Junio 2010, 15:24 pm
Alguien me ayuda a arreglar esto
3  Programación / Programación Visual Basic / Re: No Puedo poner los for que me da la gana en: 12 Junio 2010, 10:47 am
Este programa es para calcular los votos de cuatro partidos polítocos por la lei de  d´hont  http://www.elmundo.es/elecciones2000/cifras/dhont.html, para realizar esta tarea tengo que hacer division de los votos por cada escaña es decir:
El indice de partidos y escaños empieza por 0 para que sea mas facil de orientarse en una matriz
Partido A: 60 VOTOS
PARTIDO B: 100 VOTOS
PARTIDO C: 400 VOTOS
PARTIDO D: 200 VOTOS
En cada escaño se van haciendo sucesivas divisiones.
Partidos/Escaños     0  (Escaño1)    1  (Escaño2)   2 (Escaño 3)     3 (Escaño 4)
0  (A)                       60                      30                   20                15
1   (B)                      100                     50                   16,3             25
2   (C)                      400                    200                  133,33       100       
3   (D)                      200                     100                  66,6         50


Se cogen los valores mas altos de todo el array, hasta el numero de escaños que quieras. En el ejemplo de arriba 400,200,200,133,3

Como lo quiero hacer yo, creo una matriz de dos dimensiones, los valores del primer escaño ya los pongo directamente sin bucle, despues con un bucle for anidadado hago las sucesivas divisiones para los demas escaños

For i = 1 To numescaños
minimo = minimo + 3

For j = 0 To 3
dimension = Val(i + j + minimo + 3)
matriz(i, j) = Val(matriz(0, j) / (i + 1))
vector(dimension) = Val(matriz(0, j) / (i + 1))

'MsgBox (matriz(i, j))

Next
Next

ademas creo otra matriz pero esta vez unidireccional para despues ordenarlos, es decir una matriz de 16 dimensiones para el ejemplo anterior. Los cuatro primeros valores de esa matriz tambien son introducidos manualmente.
Pero despues para introducir las dimensiones al mismo tiempo que la matriz de dos dimensiones hago esto

minimo = -3


For i = 1 To numescaños
minimo = minimo + 3

For j = 0 To 3
dimension = Val(i + j + minimo + 3)
matriz(i, j) = Val(matriz(0, j) / (i + 1))
vector(dimension) = Val(matriz(0, j) / (i + 1))
para enterdo seria asi
que hace el bucle con la matriz de dos dimensiones

10= 1 + 3 +0    20= 2 +3 +3      30=3 + 3 + 6
11= 2 + 3 + 0    21=3 + 3 +3      31= 4 + 3 +6
12= 3  + 3+ 0   22=4 + 3 + 2       32 = 5 + 3 + 6
13= 4 + 3 +0    23= 5  + 3 + 3      33= 6 + 3 +6
 

despues con un algorimo de ordenamiento, por ejemplo el de burbuja pretendo ordenar esa matriz unidirecional para  15 elementos, posteriormente cogeria el valor que coincide con la variable numdeescaños   

hasta = vector(numescaños)

Con unos bucles for anidados pretendo hacer comparar todo el array de dos dimensiones con el valor hasta anteriormnete calculado, los valores iguales o mayores que los introduzca a otro array con un contador.
La variable es para saber si conto el numero de escaños que debia, hay bastantes msgbox por todo el programa, son para saber si hace lo que tiene que hacer
Un saludo
Gracias
Espero que entienedan el funcionamiento del programa
Todo el problema viene cuando empieza a ordenar en el algoritmode burbuja, coge valores atípicos en el segundo valore

For x = 0 To numescaños


For j = 0 To 3
If matriz(x, j) >= hasta Then
votos(j) = Val(votos(j) + 1)

k = k + 1
Else

End If

Next
Next




Private Sub Command1_Click()
Dim numescaños As Double
numescaños = Val(Text3.Text - 1)
 Dim temp, n As Double
Dim hasta As Double
Dim m As Double
 n = Val(4 * (numescaños + 1))

Dim i, j As Double

ReDim matriz(numescaños, 3)
ReDim vector(n)
Dim votos(3) As Long
m = 0


matriz(0, 0) = Text1(0).Text
matriz(0, 1) = Text1(1).Text
matriz(0, 2) = Text1(2).Text
matriz(0, 3) = Text1(3).Text

vector(0) = Text1(0).Text

vector(1) = Text1(1).Text
vector(2) = Text1(2).Text
vector(3) = Text1(3).Text

minimo = -3


For i = 1 To numescaños
minimo = minimo + 3

For j = 0 To 3
dimension = Val(i + j + minimo + 3)
matriz(i, j) = Val(matriz(0, j) / (i + 1))
vector(dimension) = Val(matriz(0, j) / (i + 1))

'MsgBox (matriz(i, j))

Next
Next

For z = 0 To n - 1

For x = 0 To n

If vector(x) > vector(x + 1) Then
temp = vector(x)

vector(x + 1) = vector(x)
vector(x) = temp
End If



Next x

Next z

For a = 0 To n - 1



MsgBox (vector(a))

Next


hasta = vector(numescaños)
MsgBox (hasta)





MsgBox (hasta)
For t = 0 To 3
votos(t) = 0
Next


For x = 0 To numescaños


For j = 0 To 3
If matriz(x, j) > hasta Then
votos(j) = Val(votos(j) + 1)

k = k + 1
Else

End If

Next
Next
MsgBox (k)
For z = 0 To 3
MsgBox (votos(z))
Next


End Sub
4  Programación / Programación Visual Basic / No Puedo poner los for que me da la gana en: 12 Junio 2010, 00:51 am
Cuando llega el codigo al algoritmo de la burbuja, no me ordena los vaores de la matriz, no puedo poner muchos for, esa es la pregunta.

Un salduo
Gracias


Private Sub Command1_Click()
Dim numescaños As Double
numescaños = Val(Text3.Text - 1)
 Dim temp, n As Double
Dim hasta As Double
Dim m As Double
 n = Val(4 * (numescaños + 1))

Dim i, j As Double

ReDim matriz(numescaños, 3)
ReDim vector(n)
Dim votos(3) As Long
m = 0


matriz(0, 0) = Text1(0).Text
matriz(0, 1) = Text1(1).Text
matriz(0, 2) = Text1(2).Text
matriz(0, 3) = Text1(3).Text

vector(0) = Text1(0).Text

vector(1) = Text1(1).Text
vector(2) = Text1(2).Text
vector(3) = Text1(3).Text

minimo = -3


For i = 1 To numescaños
minimo = minimo + 3

For j = 0 To 3
dimension = Val(i + j + minimo + 3)
matriz(i, j) = Val(matriz(0, j) / (i + 1))
vector(dimension) = Val(matriz(0, j) / (i + 1))

'MsgBox (matriz(i, j))

Next
Next

For z = 0 To n - 1

For x = 0 To n

If vector(x) > vector(x + 1) Then
temp = vector(x)

vector(x + 1) = vector(x)
vector(x) = temp
End If



Next x

Next z

For a = 0 To n - 1



MsgBox (vector(a))

Next


hasta = vector(numescaños)
MsgBox (hasta)





MsgBox (hasta)
For t = 0 To 3
votos(t) = 0
Next


For x = 0 To numescaños


For j = 0 To 3
If matriz(x, j) > hasta Then
votos(j) = Val(votos(j) + 1)

k = k + 1
Else

End If

Next
Next
MsgBox (k)
For z = 0 To 3
MsgBox (votos(z))
Next


End Sub
5  Programación / .NET (C#, VB.NET, ASP) / Matrices bidimensionales en: 1 Mayo 2010, 12:41 pm
Como se trabaja con ellas, por ejemplo en el siguiente ejericio, pedir al usuario el número de filas y de columnsas de una matriz bidimensional y asignar a cada posición el valor resultante de sumar la fila y columna en la que se encuentran.

por ejemplo
una matriz 3 de alto y 2 de ancho, 3x2
       0               1

0 - 0+0 =0  - 0+1=1
1 - 1+0 =1  - 1+1 =2
2 - 2+0 =2  - 2+1=3
     

como se trabaja con esta clase de matrices. Quizas asi:
dim ancho as string= inputbox("ancho")
dim alto as string= inputbox("alto")
dim matriz(,) as long
redim matriz(largo-1, ancho-1) ' trabajo con basic 8 y las matrices comienzan por 0
dim i as inter
for i= 0 to ((alto-1) * (ancho-1))


next

¿Que se trabajaria de esta manera usando despues, bucles del tipo variable= variable + 1?


Un saludo Gracias 

6  Programación / Programación Visual Basic / Soy novato quisiera ayuda en: 26 Abril 2010, 23:10 pm
Hola. buenas tardes, llevo un año en esto de la programación y quisiera que me resolvieran algunas dudas.
En primer lugar como puedo operar en visual basic 08.net, con horas min y sg, imagínense este ejemplo.
Recorro 3 km en 15 min y quisiera saber la media min/km, por lo tanto tendría que dividir, 15:3 dandome esa operación 5:00 min/km, sin embargo, en basic al realizarla me da error de depuración, pese a transformar la variable tipo date a string de las horas.

Otra duda, que me surge curiosidad resolver, es la siguiente, como puedo hacer para resolver ecuaciones de primer grado, pero no con espacio delimitado, como una ecuación de segundo grado eso es muy facil.
Sería asi, yo tengo un textbox
y digo 3x + 6x + 9x + 20= 40x + 90 + 15x +  3x, y que me lo resuelva, que escriba los valores que quiera, como si es hasta el infinito, y que interpreta el ordendar, las x y el térmmino independiente, y el = sabiendo que hay que pasar las x para un lado y el término independiente para el otro.

Muchas Gracias
A todo esto, cuanto tiempo lleva aprender a programar decentemente en basic, para realizar programas complejos.

Un saludo y gracias de nuevi.   
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines