Arreglos aleatorios visual Basic 6.0
-
Upload
daniel-oronoz -
Category
Engineering
-
view
262 -
download
6
Transcript of Arreglos aleatorios visual Basic 6.0
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 aleatorio.- 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 rangoVisual 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 iEnd 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 iEnd 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 iEnd 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 20Rnd1 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ódigoOption 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 = TrueEnd 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-2Rnd 01
-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