Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 202/04/15
Clase IV Carga aleatoria de arreglos
- Proceso de generar un valor aleatorio
- Funciones predefinidas para generar un valor ale
- Carga aleatoria de arreglos
- Ejemplos
- Ejercicios
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 302/04/15
Proceso de generar un valor aleatorio
En muchas ocasiones se necesita realizar
simulaciones, es decir, usar modelos que imiten a las
condiciones reales, que implican elementos
dependientes del azar. Por ejemplo simulaciones de
juegos de azar como dados, loterías, naipes, etc. En
dichas ocasiones es útil utilizar la computadora en unión
a un método generador de números aleatorios
Aleatorio es el proceso por el cual un número es
elegido o seleccionado al azar y el generador de
números aleatorios es el algoritmo que genera dichos
valores.
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 402/04/15
Proceso de generar un valor aleatorio
El generador de números aleatorios debe cumplir con las
siguientes características:
- Los números se generan por algún proceso aleatorio.
- Los números generados están dentro de un cierto rango
de valores.
- La probabilidad que se genere un número es la misma que
para cualquier otro valor del rango
Visual Basic incorpora una función predefinida que genera un
número real x en el rango de 0 a 1, satisfaciendo la segunda y
tercera característica, sin embargo no se genera un proceso
aleatorio sino que se genera de fórmulas matemáticas, por esa
razón los valores generados por dicha función se denominan
pseudoaleatorios, aunque al combinarlas con otras funciones
predefinidas son considerados aleatorios
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 502/04/15
Funciones y sentencias predefinidas para
crear valores aleatorios
Función Rnd
Sentencia Randomize
Función Int
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 602/04/15
Función Rnd
Ejemplo 1
Private Sub Form_Load()
Dim i As Integer, x As Single
Show
For i = 1 To 3
x = Rnd
Print x
Next i
End Sub
Genera un número aleatorio de doble precisión entre 0 y 1
(1 no incluido).
Clip para ver
otra
ejecución del
programa
Observe que se repite la
misma salida ya que las
formula siempre comienzan
en el mismo valor
Clip para ver
la ejecución
del programa
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 702/04/15
Sentencia Randomize
Ejemplo 2
Private Sub Form_Load()
Dim i As Integer, x As Single
Show
Randomize 100
For i = 1 To 3
x = Rnd
Print x
Next i
End Sub
Inicializa el generador de números aleatorios.
Randomize[expresión]
Clip para ver
la ejecución
del programa
Clip para ver
otra
ejecución del
programa
Observe que se repite la
misma salida ya que el
Randomize comienzan en el
mismo valor
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 802/04/15
Sentencia Randomize
Ejemplo 3
Private Sub Form_Load()
Dim i As Integer, x As Single
Show
Randomize
For i = 1 To 3
x = Rnd
Print x
Next i
End Sub
Clip para ver
la ejecución
del programa
Clip para ver
otra
ejecución del
programa
Observe que las salidas son
diferentes debido a que el
Randomize toma el valor
devuelto por el reloj del
sistema en cada corrida
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 902/04/15
Función Int
Convierte una expresión numérica a un entero.
Int(expresión)
Se debe combinar con la expresión que se muestra a continuación
porque sino al usarla solo con la función Rnd dará 0 (cero). Esta
expresión permite conseguir rango de valores aleatorios
Int((Límite_superior - Límite_inferior + 1) * Rnd + Límite_inferior)
Donde:
Límite_superior: Es el valor mas alto a generar
Límite_inferior: Es el valor mas pequeño a generar
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1002/04/15
Función Int
Ejemplo 4: Genera tres valores aleatorios entre 10 y 50
Private Sub Form_Load()
Dim i As Integer, x As Integer
Show
Randomize
For i = 1 To 3
x = Int(41 * Rnd) + 10
Print x
Next i
End Sub
50-10 + 1 Clip para ver salida
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1102/04/15
Carga aleatoria de arreglos
 Dimensionar el arreglo
 Activar la sentencia Randomize
 Realizar los respectivos ciclos de carga y usar el
método de carga por asignación, en donde se le
asignará al arreglo en cada una de sus posiciones la
formula realizada con la función Rnd, acompañada si
es necesario de la función Int y demás parámetros.
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1202/04/15
Ejemplo: hacer un programa para carga un
vector con 5 valores aleatorios entre 1 y 50
Private Sub Form_Load()
Dim I As Integer, vector(1 To 5) As Integer
Randomize
For I = 1 To 5
vector(I) = Int(Rnd * 50) + 1
Next I
Show
Print "Vector con valores aleatorios..."
For I = 1 To 5
Print vector(I);
Next I
End Sub
Clip para ver
la salida
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1302/04/15
Elabore una aplicación en VB que permita activar los siguientes
botones de comando
Rnd302826Rnd1
24Rnd22Rnd120
1816Rnd11412
10Rnd18Rnd6
Rnd1420Rnd
Rnd son números aleatorios entre 10 y 20
Rnd1 números aleatororios entre 15 y 50
Ejemplo
Generar Matriz: genera la matriz de orden NxN
Mostrar Matriz: usando
control Picture
Generar Vector: Donde
cada elemento del vector es
la suma de cada fila de matriz
Mostrar Vector en una lista
Salir
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1402/04/15
Código
Option Explicit
'Definiciones de arreglos y variables globales
Dim matriz() As Integer, n As Integer
Dim vector() As Integer
Private Sub Form_Load()
'Desactiva los botones antes de carga el arreglo
'Hace invisible los objetos que permite mostrar los arreglos
ImprimirM.Enabled = False : GenerarV.Enabled = False
ImprimirV.Enabled = False : Picture1.Visible = False
List1.Visible = False
End Sub
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1502/04/15
Código continuación
Private Sub GenerarM_Click()
' Genera la matriz
Dim i As Integer, j As Integer, c As Integer
Do ' Valida el orden de la matriz
n = InputBox("Cantidad de filas y columnas")
Loop Until n > 0
' Redimensiona la matriz
ReDim matriz(1 To n, 1 To n)
'Desactiva los botones antes de carga el arreglo
'Hace invisible los objetos que permite mostrar los arreglos
ImprimirM.Enabled = False : GenerarV.Enabled = False
ImprimirV.Enabled = False : Picture1.Visible = False
List1.Visible = False
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1602/04/15
Código continuación de generar matriz
c = 0
For i = 1 To n
For j = 1 To n
If i = j Then ' Diagonal Principal
matriz(i, j) = Int((11 * Rnd)) + 10
End If
If i + j = n + 1 Then ' Diagonal Secundaria
matriz(i, j) = Int((36 * Rnd)) + 15
End If
If i <> j And i + j <> n + 1 Then
matriz(i, j) = c : c = c + 2
End If
Next j, i
MsgBox "Arreglo generado"
ImprimirM.Enabled = True : GenerarV.Enabled = True
End Sub
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1702/04/15
Código continuación
Private Sub ImprimirM_Click()
' Imprime la matriz generada
Dim i As Integer, j As Integer
Picture1.Visible = True: Picture1.Cls
For i = 1 To n
For j = 1 To n
Picture1.Print matriz(i, j);
Next j
Picture1.Print
Next i
End Sub
Private Sub GenerarV_Click()
Dim i As Integer, j As Integer
Dim suma As Integer
ReDim vector(1 To n)
For i = 1 To n
suma = 0
For j = 1 To n
suma = suma + matriz(i, j)
Next j
vector(i) = suma 'Genera el vector
Next i
MsgBox "Arreglo generado"
ImprimirV.Enabled = True
End Sub
Clip para
continuar
en esta
diapositiva
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1802/04/15
Código continuación
Private Sub ImprimirV_Click()
' Imprime el vector generado
Dim i As Integer
List1.Visible = True: List1.Clear
For i = 1 To n
List1.AddItem vector(i)
Next i
End Sub
Private Sub Salir_Click()
'finaliza el programa
End
End Sub
Clip para
continuar en
esta
diapositiva
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 1902/04/15
Elabore una aplicación en VB que permita activar los
siguientes botones de comando
RndRndRndRndRnd
-14-1-2-3
-2-13-1-2
-3-2-12-1
RndRndRndRndRnd
Rnd son números aleatorios entre 1 y 50
Ejercicio Nro 1
Cargar la siguiente matriz de orden NxN con los siguientes valores
Generar Vector:
Posición 1: Mayor elemento
del contorno de la matriz
Posición 2: Porcentaje de
impares de la matriz
Las demás posiciones la
suma de cada fila
Imprimir arreglos: Muestra los
dos arreglos
Salir: sale de la aplicación
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 2002/04/15
Elabore una aplicación en VB que permita activar los
siguientes botones de comando
Rnd454035Rnd
256Rnd30Rnd25
12864Rnd2015
32Rnd16Rnd10
Rnd842Rnd
Rnd son números aleatorios entre 1 y 50
Ejercicio Nro 2
Cargar la siguiente matriz de orden NxN con los siguientes valores
Generar Vector:
Posición 1: Mayor elemento
del contorno de la matriz
Posición 2: Porcentaje de
impares de la matriz
Las demás posiciones la
suma de cada fila
Salir: sale de la aplicación
Imprimir arreglos: Muestra los dos arreglos
Ing.Gladys Marlene López
Ing.Diosa S. Pérez
Ing. Mery Luz Pérez 2102/04/15
Elabore una aplicación en VB que permita activar los
siguientes botones de comando
01Rnd34
-10Rnd23
RndRndRndRndRnd
-3-2Rnd01
-4-3Rnd-10
Rnd son números aleatorios entre 1 y 50
Ejercicio Nro 3
Cargar la siguiente matriz de orden NxN con los siguientes valores
Generar Vector: la posición 1 es
la suma de los elementos de la
DS. La segunda posición es la
cantidad de elementos negativos
que se encuentra de la mitad
hacia debajo de las filas de la
matriz. La tercera posición es el
elemento central de la matriz
Imprimir arreglos: Muestra los dos
arreglos
Salir: sale de la aplicación

Arreglos aleatorios visual Basic 6.0

  • 1.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 202/04/15 Clase IV Carga aleatoria de arreglos - Proceso de generar un valor aleatorio - Funciones predefinidas para generar un valor ale - Carga aleatoria de arreglos - Ejemplos - Ejercicios
  • 2.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 302/04/15 Proceso de generar un valor aleatorio En muchas ocasiones se necesita realizar simulaciones, es decir, usar modelos que imiten a las condiciones reales, que implican elementos dependientes del azar. Por ejemplo simulaciones de juegos de azar como dados, loterías, naipes, etc. En dichas ocasiones es útil utilizar la computadora en unión a un método generador de números aleatorios Aleatorio es el proceso por el cual un número es elegido o seleccionado al azar y el generador de números aleatorios es el algoritmo que genera dichos valores.
  • 3.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 402/04/15 Proceso de generar un valor aleatorio El generador de números aleatorios debe cumplir con las siguientes características: - Los números se generan por algún proceso aleatorio. - Los números generados están dentro de un cierto rango de valores. - La probabilidad que se genere un número es la misma que para cualquier otro valor del rango Visual Basic incorpora una función predefinida que genera un número real x en el rango de 0 a 1, satisfaciendo la segunda y tercera característica, sin embargo no se genera un proceso aleatorio sino que se genera de fórmulas matemáticas, por esa razón los valores generados por dicha función se denominan pseudoaleatorios, aunque al combinarlas con otras funciones predefinidas son considerados aleatorios
  • 4.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 502/04/15 Funciones y sentencias predefinidas para crear valores aleatorios Función Rnd Sentencia Randomize Función Int
  • 5.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 602/04/15 Función Rnd Ejemplo 1 Private Sub Form_Load() Dim i As Integer, x As Single Show For i = 1 To 3 x = Rnd Print x Next i End Sub Genera un número aleatorio de doble precisión entre 0 y 1 (1 no incluido). Clip para ver otra ejecución del programa Observe que se repite la misma salida ya que las formula siempre comienzan en el mismo valor Clip para ver la ejecución del programa
  • 6.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 702/04/15 Sentencia Randomize Ejemplo 2 Private Sub Form_Load() Dim i As Integer, x As Single Show Randomize 100 For i = 1 To 3 x = Rnd Print x Next i End Sub Inicializa el generador de números aleatorios. Randomize[expresión] Clip para ver la ejecución del programa Clip para ver otra ejecución del programa Observe que se repite la misma salida ya que el Randomize comienzan en el mismo valor
  • 7.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 802/04/15 Sentencia Randomize Ejemplo 3 Private Sub Form_Load() Dim i As Integer, x As Single Show Randomize For i = 1 To 3 x = Rnd Print x Next i End Sub Clip para ver la ejecución del programa Clip para ver otra ejecución del programa Observe que las salidas son diferentes debido a que el Randomize toma el valor devuelto por el reloj del sistema en cada corrida
  • 8.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 902/04/15 Función Int Convierte una expresión numérica a un entero. Int(expresión) Se debe combinar con la expresión que se muestra a continuación porque sino al usarla solo con la función Rnd dará 0 (cero). Esta expresión permite conseguir rango de valores aleatorios Int((Límite_superior - Límite_inferior + 1) * Rnd + Límite_inferior) Donde: Límite_superior: Es el valor mas alto a generar Límite_inferior: Es el valor mas pequeño a generar
  • 9.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1002/04/15 Función Int Ejemplo 4: Genera tres valores aleatorios entre 10 y 50 Private Sub Form_Load() Dim i As Integer, x As Integer Show Randomize For i = 1 To 3 x = Int(41 * Rnd) + 10 Print x Next i End Sub 50-10 + 1 Clip para ver salida
  • 10.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1102/04/15 Carga aleatoria de arreglos  Dimensionar el arreglo  Activar la sentencia Randomize  Realizar los respectivos ciclos de carga y usar el método de carga por asignación, en donde se le asignará al arreglo en cada una de sus posiciones la formula realizada con la función Rnd, acompañada si es necesario de la función Int y demás parámetros.
  • 11.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1202/04/15 Ejemplo: hacer un programa para carga un vector con 5 valores aleatorios entre 1 y 50 Private Sub Form_Load() Dim I As Integer, vector(1 To 5) As Integer Randomize For I = 1 To 5 vector(I) = Int(Rnd * 50) + 1 Next I Show Print "Vector con valores aleatorios..." For I = 1 To 5 Print vector(I); Next I End Sub Clip para ver la salida
  • 12.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1302/04/15 Elabore una aplicación en VB que permita activar los siguientes botones de comando Rnd302826Rnd1 24Rnd22Rnd120 1816Rnd11412 10Rnd18Rnd6 Rnd1420Rnd Rnd son números aleatorios entre 10 y 20 Rnd1 números aleatororios entre 15 y 50 Ejemplo Generar Matriz: genera la matriz de orden NxN Mostrar Matriz: usando control Picture Generar Vector: Donde cada elemento del vector es la suma de cada fila de matriz Mostrar Vector en una lista Salir
  • 13.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1402/04/15 Código Option Explicit 'Definiciones de arreglos y variables globales Dim matriz() As Integer, n As Integer Dim vector() As Integer Private Sub Form_Load() 'Desactiva los botones antes de carga el arreglo 'Hace invisible los objetos que permite mostrar los arreglos ImprimirM.Enabled = False : GenerarV.Enabled = False ImprimirV.Enabled = False : Picture1.Visible = False List1.Visible = False End Sub
  • 14.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1502/04/15 Código continuación Private Sub GenerarM_Click() ' Genera la matriz Dim i As Integer, j As Integer, c As Integer Do ' Valida el orden de la matriz n = InputBox("Cantidad de filas y columnas") Loop Until n > 0 ' Redimensiona la matriz ReDim matriz(1 To n, 1 To n) 'Desactiva los botones antes de carga el arreglo 'Hace invisible los objetos que permite mostrar los arreglos ImprimirM.Enabled = False : GenerarV.Enabled = False ImprimirV.Enabled = False : Picture1.Visible = False List1.Visible = False
  • 15.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1602/04/15 Código continuación de generar matriz c = 0 For i = 1 To n For j = 1 To n If i = j Then ' Diagonal Principal matriz(i, j) = Int((11 * Rnd)) + 10 End If If i + j = n + 1 Then ' Diagonal Secundaria matriz(i, j) = Int((36 * Rnd)) + 15 End If If i <> j And i + j <> n + 1 Then matriz(i, j) = c : c = c + 2 End If Next j, i MsgBox "Arreglo generado" ImprimirM.Enabled = True : GenerarV.Enabled = True End Sub
  • 16.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1702/04/15 Código continuación Private Sub ImprimirM_Click() ' Imprime la matriz generada Dim i As Integer, j As Integer Picture1.Visible = True: Picture1.Cls For i = 1 To n For j = 1 To n Picture1.Print matriz(i, j); Next j Picture1.Print Next i End Sub Private Sub GenerarV_Click() Dim i As Integer, j As Integer Dim suma As Integer ReDim vector(1 To n) For i = 1 To n suma = 0 For j = 1 To n suma = suma + matriz(i, j) Next j vector(i) = suma 'Genera el vector Next i MsgBox "Arreglo generado" ImprimirV.Enabled = True End Sub Clip para continuar en esta diapositiva
  • 17.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1802/04/15 Código continuación Private Sub ImprimirV_Click() ' Imprime el vector generado Dim i As Integer List1.Visible = True: List1.Clear For i = 1 To n List1.AddItem vector(i) Next i End Sub Private Sub Salir_Click() 'finaliza el programa End End Sub Clip para continuar en esta diapositiva
  • 18.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 1902/04/15 Elabore una aplicación en VB que permita activar los siguientes botones de comando RndRndRndRndRnd -14-1-2-3 -2-13-1-2 -3-2-12-1 RndRndRndRndRnd Rnd son números aleatorios entre 1 y 50 Ejercicio Nro 1 Cargar la siguiente matriz de orden NxN con los siguientes valores Generar Vector: Posición 1: Mayor elemento del contorno de la matriz Posición 2: Porcentaje de impares de la matriz Las demás posiciones la suma de cada fila Imprimir arreglos: Muestra los dos arreglos Salir: sale de la aplicación
  • 19.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 2002/04/15 Elabore una aplicación en VB que permita activar los siguientes botones de comando Rnd454035Rnd 256Rnd30Rnd25 12864Rnd2015 32Rnd16Rnd10 Rnd842Rnd Rnd son números aleatorios entre 1 y 50 Ejercicio Nro 2 Cargar la siguiente matriz de orden NxN con los siguientes valores Generar Vector: Posición 1: Mayor elemento del contorno de la matriz Posición 2: Porcentaje de impares de la matriz Las demás posiciones la suma de cada fila Salir: sale de la aplicación Imprimir arreglos: Muestra los dos arreglos
  • 20.
    Ing.Gladys Marlene López Ing.DiosaS. Pérez Ing. Mery Luz Pérez 2102/04/15 Elabore una aplicación en VB que permita activar los siguientes botones de comando 01Rnd34 -10Rnd23 RndRndRndRndRnd -3-2Rnd01 -4-3Rnd-10 Rnd son números aleatorios entre 1 y 50 Ejercicio Nro 3 Cargar la siguiente matriz de orden NxN con los siguientes valores Generar Vector: la posición 1 es la suma de los elementos de la DS. La segunda posición es la cantidad de elementos negativos que se encuentra de la mitad hacia debajo de las filas de la matriz. La tercera posición es el elemento central de la matriz Imprimir arreglos: Muestra los dos arreglos Salir: sale de la aplicación