You are on page 1of 15

ESCUELA NACIONAL DE

CIENCIAS COMERCIALES
AMRICA
CATEDRATICO: FREDY
ORTIZ
GRADO: 6TO. P.C.
SECCIN: A
CLAVE: 16
FECHA: 04/04/2016
Nombre: Ana Luca de la
Cruz Gonzalez
Programacin III

REMEDIAL DE
PROGRAMACIN
Ciclo For, Randomize, Vectores y Matrices.

ndice
Introduccin....2
Ciclo For......3
Randomize..6
Vectores..7
Matrices.10
Comentarios..13
Conclusin14
E-grafa..15

Introduccin
La estructura For - Next permite controlar la cantidad de veces que las instrucciones se ejecutan dentro del bucle.
Esta estructura est formada por un valor de inicio, un valor final y un valor de incremento. Se indica una variable
de ciclo que tomar desde el valor inicial hasta el valor final con un incremento predeterminado de 1. Para variar el
valor de incremento se utiliza Step seguido del valor de incremento.
Si el valor inicial del bucle es mayor que el valor final, el ciclo no se ejecutar, salvo que est especificado en
Stepun valor negativo.
Un ciclo finito repite un grupo de sentencias un nmero limitado de veces. Para ello se indica una variable del ciclo
que tomar desde el valor incial hasta el valor final con un incremento predeterminado de 1.
Para repetir secuencias de nmeros aleatorios, llame a la funcin Rnd con un argumento negativo justo antes de
utilizar Randomize con un argumento numrico. Si utiliza Randomize con el mismo valor que Number, no se
repetir la secuencia anterior.
Debido a que la instruccin Random y la funcin Rnd comienzan con un valor de inicializacin y generan nmeros
que quedan dentro de un intervalo finito, otra persona que conozca el algoritmo utilizado para generar los
resultados puede predecirlos. Por tanto, la instruccin Random y la funcin Rnd no se deben utilizar para generar
nmeros aleatorios utilizados en criptografa.

Ciclo For en Visual Basic 6.0


Repite un grupo de instrucciones un nmero de veces especificado.

Elementos
Counter: Se requiere en la instruccin For. Variable numrica. Variable de control para el bucle.
Datatype: Opcional. Tipo de datos de counter.
Start: Requerido. Expresin numrica. Valor inicial de counter.
End: Requerido. Expresin numrica. Valor final de counter.
Step: Opcional. Expresin numrica. Cantidad en la que se incrementa counter cada vez que se recorre el bucle.
Statements: Opcional. Una o ms instrucciones entre For y Next que se ejecutan un nmero especificado de
veces.
Continue For: Opcional. Transfiere el control a la siguiente iteracin del bucle.
Exit For: Opcional. Transfiere el control fuera del bucle For.
Next: Requerido. Termina la definicin del bucle For.

Ejemplos simples
Utiliza una estructura de ForNext cuando desea repetir un conjunto de instrucciones un nmero fijo de veces.
En el ejemplo siguiente, la variable de index comienza con un valor de 1 y se incrementa con cada iteracin del
bucle, finalizando despus de que el valor de index alcanza 5.

For index As Integer = 1 To 5


Debug.Write(index.ToString & " ")
Next
Debug.WriteLine("")
' Output: 1 2 3 4 5

En el ejemplo siguiente, la variable de number comienza en 2 y se decrementa en 0,25 en cada iteracin del bucle,
finalizando despus de que el valor de number alcance 0. El argumento de Step de -.25 reduce el valor en 0,25 en
cada iteracin del bucle.
For number As Double = 2 To 0 Step -0.25

Debug.Write(number.ToString & " ")


Next
Debug.WriteLine("")
' Output: 2 1.75 1.5 1.25 1 0.75 0.5 0.25 0

Bucles anidados
Se pueden anidar bucles For colocando un bucle dentro de otro.En el ejemplo siguiente se muestran estructuras
For...Next anidadas con valores de incremento diferentes.El bucle externo crea una cadena para cada iteracin del
bucle.El bucle interior disminuye una variable de contador de bucle por cada iteracin del bucle.
For indexA = 1 To 3
' Create a new StringBuilder, which is used
' to efficiently build strings.
Dim sb As New System.Text.StringBuilder()
' Append to the StringBuilder every third number
' from 20 to 1 descending.
For indexB = 20 To 1 Step -3
sb.Append(indexB.ToString)
sb.Append(" ")
Next indexB
' Display the line.
Debug.WriteLine(sb.ToString)
Next indexA
' Output:
' 20 17 14 11 8 5 2
' 20 17 14 11 8 5 2
' 20 17 14 11 8 5 2

Cuando los bucles de anidamiento, cada bucle deben tener una variable nica de counter.
Tambin puede anidar distintos tipos de estructuras de control unos dentro de otros.

Exit For y Continue For


La instruccin de Exit For inmediatamente sale del bucle de ForNext y transfiere el control a la instruccin que
sigue a la instruccin de Next.
La instruccin Continue For transfiere el control inmediatamente a la siguiente iteracin del bucle.
En el siguiente ejemplo se muestra el uso de las instrucciones Continue For y Exit For:
For index As Integer = 1 To 100000
' If index is between 5 and 7, continue
' with the next iteration.
If index >= 5 And index <= 8 Then
Continue For
End If
' Display the index.
Debug.Write(index.ToString & " ")

' If index is 10, exit the loop.


If index = 10 Then
Exit For
End If
Next
Debug.WriteLine("")
' Output: 1 2 3 4 9 10

Puede incluir cualquier nmero de instrucciones Exit For en un bucle For...Next. Cuando se utiliza dentro de bucles
ForNext anidados, Exit For sale del bucle ms profundo y transfiere el control al siguiente nivel de anidamiento.
Exit For suele usarse despus de que se evale alguna condicin (por ejemplo, en una estructura de IfThen
Else).Puede que desee utilizar Exit For para las siguientes condiciones:
Continuar la iteracin es innecesario o imposible. Un valor de error o una solicitud de finalizacin podran crear esta
condicin.
Una instruccin de TryCatchFinally detecta una excepcin. Puede utilizar Exit For al final del bloque Finally.
Tiene un bucle infinito, que es un bucle que puede ejecutar un nmero grande o incluso infinito de veces. Si se
detecta este tipo de condicin, se puede utilizar Exit For para escapar del bucle.

Randomize (Rnd)
Devuelve un nmero aleatorio de tipo Single.
Public Shared Function Rnd[(Number)] As Single

Parmetros
Number
Opcional. Cualquier valor Single o expresin Single vlida.

Valor devuelto
Si Number es
Menor que cero
Mayor que cero

Rnd genera
Siempre el mismo nmero, utilizando Number como
valor de inicializacin.
El siguiente numero aleatorio en la secuencia.

Igual a cero.

El nmero generado por ltima vez.

Omitido

El siguiente numero aleatorio en la secuencia.

La funcin Rnd devuelve un valor menor que 1, pero mayor o igual a cero.
El valor de Number determina la forma en que Rnd genera un nmero aleatorio.
5

Para cualquier valor de inicializacin dado, se genera la misma secuencia de nmeros ya que cada llamada
sucesiva que se hace a la funcin Rnd utiliza el nmero anteriormente generado como inicializacin para el
siguiente nmero de la secuencia.
Antes de llamar a la funcin Rnd, utilice la instruccin Randomize sin argumento para inicializar el generador de
nmeros aleatorios con un valor de inicializacin basado en el temporizador del sistema.
Para producir enteros aleatorios en un intervalo dado, utilice la siguiente frmula.
randomValue = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd())) + lowerbound

Ejemplo
En el siguiente ejemplo se utiliza la funcin Rnd para generar un valor entero aleatorio en el intervalo entre 1 y 6.
' Initialize the random-number generator.
Randomize()
' Generate random value between 1 and 6.
Dim value As Integer = CInt(Int((6 * Rnd()) + 1))

Arreglos y Vectores
Los Arreglos se utilizan para almacenar un conjunto de variables, que sean del mismo tipo de dato, y todas estas
bajo un mismo nombre.

Por ejemplo imaginemos que tenemos 20 variables de tipo String que almacenan nombres (nombre1, nombre2,
etc...). Si yo ahora quisiera pasar todas estas cadenas a minsculas tendra que utilizar la funcin Lcase con cada
variable: nombre1 = Lcase (nombre1), nombre2 = Lcase(nombre2), etc...
En cambio s utilizara un arreglo solucionara mi problema solo a esto
Dim nombres(30) As String
For x = 0 To 30
nombres(x) = LCase(nombres(x))
Next

Siguiendo el ejemplo anterior: en vez de escribir la sentencia Lcase 30 veces para cada variable, hemos utilizado
un arreglo llamado nombres con un nmero de ndice 30, es decir que almacena 30 datos de tipo String.
6

Vectores dinmicos
Hasta ahora habamos visto solo vectores o arreglos de tamao fijo, pero qu pasa cuando no sabemos el
tamao o el largo de un vector y queremos que sea variable?
Visual basic posee una sentencia o funcin que nos permite cambiar el largo de un vector en tiempo de ejecucin,
dndonos as ms flexibilidad, y de esta manera no desperdiciar memoria y recursos de la pc creando vectores
ms largos de lo que realmente necesitamos.
Esta funcin se llama ReDim y ReDim Preserve, y un ejemplo de cmo aplicarla sera de la siguiente manera:
Ejemplo de vectores y arreglos dinmicos
En lo siguiente, primero declaramos un vector de la forma como lo hacemos siempre con la diferencia de que en
vez de colocar un tamao declaramos el vector solo con los parntesis:
Dim alumnos () as string

Ahora le establecemos un tamao, por ejemplo de 4 elementos y le agregamos valores:


ReDim alumnos(1 To 4) As String
alumnos(1)
alumnos(2)
alumnos(3)
alumnos(4)

=
=
=
=

"Luciano"
"Esteban"
"Mariano"
"Pedro"

Ahora para redimensionar el tamao del vector por ejemplo a 7 elementos, utilizamos la funcin ReDim Preserve,
para preservar los 4 valores anteriores y le agregamos 3 valores ms:
ReDim Preserve alumnos(1 To 7)
alumnos(5) = "Karina"
alumnos(6) = "Ral"
alumnos(7) = "Romina"

Nota: si utilizamos la sentencia ReDim, o mejor dicho si redimensionamos el vector sin utilizar la sentencia ReDim
preserve, los valores que contena el vector anteriormente se perdern

Eliminar o vaciar un vector


Para eliminar un array, arreglo o vector, podemos utilizar Erase, por ejemplo:
Erase Nombre_Del_Vector

Funciones de VB para trabajar con Arreglos - LBound y UBound


Estas funciones son ideales para trabajar con vectores y matrices que han sido declaradas dinmicamente
Lbound y Ubound nos devuelve un nmero de tipo Long que nos permite saber el lmite superior e inferior de un
vector o una matriz.
For x = LBound(vector) To UBound(vector)
MsgBox vector(x)
Next i

Funcin Join, Split y Filter:


Visual basic en su sexta versin incorpora estas 3 funciones para trabajar solo con vectores. Estas funciones estn
relacionadas con el tratamiento de las cadenas de caracteres.

Funcin Join:
Esta funcin se utiliza para unir en una sola variable el conjunto de subcadenas de un vector. Esta funcin tiene
solo 2 parmetros y es muy fcil de usar. Ejemplo:
Dim micadena as string
Dim vector(1 To 3) As String
vector(1) = "Carlos"
vector(2) = "Pedro"
vector(3) = "Juan"

Funcin Split:
Esta funcin hace el trabajo inverso de la funcin Join.
Split se utiliza para rellenar un vector dinmico que contiene un nmero de subcadenas a partir de una cadena que
le pasamos como parmetro a la funcin.
Para aclarar un poco un ejemplo:
Private Sub Form_Load()
'Una variable para almacenar una cadena
Dim Micadena As String 'Vector dinmico
Dim Vector() As String
'Le damos un valor a la variable
Micadena = "maria/natalia/romina"
'Ejecutamos la funcin Split
Vector = Split(Micadena, "/")
'Ahora el vector dinmico pasara a _
contener los siguientes valores:
Vector(0) = "mara"
Vector(1) = "natalia"
Vector(2) = "Romina"
End Sub

Funcin Filter:
La funcin Filter se utiliza para filtrar subcadenas de un vector dependiendo de un determinado criterio de
bsqueda. Los parmetros que lleva la funcin son los siguientes:
Filter (vector donde buscar, cadena a buscar, valor booleano que indica si incluir o excluir la cadena).
Ejemplo:
' Vector
Dim Alumnos(1 To 4) As String
' Vector dinmico para almacenar el resultado
Dim Resultado() As String
Alumnos(1) = "Luciano"
Alumnos(2) = "Lucas"
Alumnos(3) = "juan"
Alumnos(4) = "Natalia"
' Ejecutamos Filter
Resultado = Filter(Alumnos, "Lu", True)
' Ahora el vector dinmico "resultado" pasa a contener
MsgBox Resultado(0), vbInformation ' Luciano
MsgBox Resultado(1), vbInformation ' Lucas

Matrices
Como se dijo anteriormente, las matrices son arreglos de ms de 1 dimensin (2 o ms), a diferencia de los
vectores que poseen una sola dimensin.
Podemos imaginar una matriz bidimensional (2 dimensiones), como una cuadrcula con filas y columnas, donde las
filas representaran las coordenadas x y las columnas las coordenadas y.
A una matriz de 3 dimensiones o tridimensional se la puede imaginar con las coordenadas x, y, z, y esta es ideal
para representar figuras en el espacio por ejemplo.

Las matrices se
declaran en el cdigo de manera igual que los
vectores, con la diferencia que debemos indicar ms subndices de acuerdo a la cantidad de dimensiones que
posea la matriz.
Por lo general no se suele utilizar matrices de ms de 3 dimensiones.
Ejemplo de matriz de 2 dimensiones
Matriz bidimensional de 6 x 8 (de 2 dimensiones).
Dim personas (1 to 6, 1 to 8) as string
Si luego quisiera acceder a los datos de la misma basta con referirnos a los subndices
Por ejemplo:

personas
personas
personas
personas
personas
personas
personas
personas
personas

(1,
(2,
(1,
(1,
(2,
(4,
(6,
(6,
(6,

1)
1)
7)
8)
2)
1)
2)
5)
8)

=
=
=
=
=
=
=
=
=

"Natalia"
"pedro"
"valeria"
"jos"
"carolina"
"raquel"
"eustaquio"
"maria"
"mariana"

El total de ndices posibles para almacenar datos o valores en el ejemplo anterior es de 48 datos, ya que si
multiplicamos 6 x 8 nos da como total 48 valores posibles para utilizar en la matriz bidimensional.
En este ejemplo creamos una matriz de 3 dimensiones de 3 x 3 x 3
Dim cubo (1 to 3, 1 to 3, 1 to 3) as integer

Para acceder a los datos sera exactamente de la misma manera pero debemos utilizar un ndice ms.
Ejemplo:

cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo

(1,
(1,
(1,
(1,
(1,
(1,
(1,
(1,
(1,
(2,
(2,
(2,

1
1
1
2
2
2
3
3
3
1
1
1

,
,
,
,
,
,
,
,
,
,
,
,

1)
2)
3)
1)
2)
3)
1)
2)
3)
1)
2)
3)

=
=
=
=
=
=
=
=
=
=
=
=

50
50
50
50
50
50
50
50
50
50
50
50

10

cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo
cubo

(2,
(2,
(2,
(2,
(2,
(2,
(3,
(3,
(3,
(3,
(3,
(3,
(3,
(3,
(3,

2
2
2
3
3
3
1
1
1
2
2
2
3
3
3

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

1)
2)
3)
1)
2)
3)
1)
2)
3)
1)
2)
3)
1)
2)
3)

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

50
50
50
50
50
50
50
50
50
50
50
50
50
50
50

En el ejemplo anterior, que es un poco extenso, es para que veas todos los posibles valores que puedes almacenar
en una matriz de 3 x 3 x 3, y que da como resultado un arreglo de 27 valores posibles.

Comentarios
1. Los arrays, arreglos o mejor conocidos como vectores son conocidas por algunos comoo vectores
dimensionales forman parte tambin de las cosas que podemos usar en VB 6.0.
2. En visual Basic 2010 la declaracin de un array, arreglo o vector la hacemos de la misma forma que en
Visual Basic 6.
3. El ciclo for se utiliza principalmente para que la maquina haga un proceso o procesos un determinado
nmero de veces.

11

4. El ciclo for next es uno de los ms usados para repetir una secuencia de instrucciones, sobre todo cuando
se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin simple o compuesta.
5. Randomize es una instruccin que inicializa el generador de nmeros aleatorios. Una instruccin
Randomize te puede servir para varios Rnd.
6. Es importante recordar que en algunas versiones se usa Randomize y Rnd sin parntesis y en otras se usa
Randomize() y Rnd() con parntesis.
7. Para repetir secuencias de nmeros aleatorios, llame a la funcin Rnd con un argumento negativo justo
antes de utilizar Randomize con un argumento numrico. Si utiliza Randomize con el mismo valor que
Number, no se repetir la secuencia anterior.
8. Debido a que la instruccin Random y la funcin Rnd comienzan con un valor de inicializacin y generan
nmeros que quedan dentro de un intervalo finito, otra persona que conozca el algoritmo utilizado para
generar los resultados puede predecirlos. Por tanto, la instruccin Random y la funcin Rnd no se deben
utilizar para generar nmeros aleatorios utilizados en criptografa.

Conclusiones

Los Arreglos se utilizan para almacenar un conjunto de variables, que sean del mismo tipo de dato, y todas
estas bajo un mismo nombre.

En otras palabras un arreglo es una especie de variable que contiene muchos


valores pero cada
uno con una posicin diferente. Un arreglo puede ser unidimensional o vectorial, bidimensional o matricial, o
multidimensional.

12

En conclusin se puede decir que los arreglos pueden variar dependiendo sus dimensiones. Con respecto a
los archivos no se requieren de un tamao predeterminado; esto significa que se pueden hacer archivos de
datos ms grandes o pequeos, segn se necesiten. Las aplicaciones pueden ser infinitas, ya que son
utilizados en diferentes rutinas diarias, como por ejemplo, acceder a nuestro expediente en la universidad,
para consultar el estado de cuenta bancario, etc. La eleccin del mtodo de ordenamiento est
directamente relacionada con la estructura de los registros del archivo y del soporte utilizado. Un programa
puede acceder directamente cualquier registro sin tener que leer los registros previos.

E-grafa
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico6.htm
https://msdn.microsoft.com/es-es/library/5z06z1kb.aspx
http://visualbasic.ar.tripod.com/fornext.html
http://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=184:generarnumeros-aleatorios-en-visual-basic-decimales-o-enteros-randomize-y-rnd-intervaloscu00315a&catid=37:curso-qprogramacion-en-visual-basic-nivel-iq&Itemid=61

13

14