Ing. Ramiro Ramiro PILALUISA PILALUISA Q. M.Sc. _______________________________________ __________________________________________________________ ______________________________________ ___________________________ ________
PROGRAMACION 2 VISUAL BASIC VER. 6.0
FUNDAMENTOS DE PROGRAMACION VARIABLES CON UN SUBINDICE ANILLOS GENERICOS DE REPETICION Algoritmo ! Calc"lo
PROYECTO DE APLICACIÓN TEMA# CALCULO
DE SUMATORIA Y PROMEDIO
PERFIL DEL PROYECTO DRIVE# D# CARPETA# Mi$
Doc"m!nto$
SUBCARPETA# Pro%!ctoProII&' NOMBRE PRO(ECTO# E$tai$tica NOMBRE )ORMULARIO# S"matoria ARC*IVOS# S"maData.t+t
S"maR!,.t+t DATOS# )ORMULAS#
E-!m,lo ,ractico# Si "!r!mo$ m!ir la $",!r/ci! ! "n t!rr!no0 lo ,o!mo$ 1ac!r m!iant! !l calc"lo ! tri2ng"lo$
Ing. Ramiro PILALUISA Q. M.Sc. _____________________________________________________________________________________
VARIABLE CON UN SUBINDICE
Varia3l!$ con "n $"34nic! Varia3l!$ con o$ $"34nic!$ Varia3l!$ con n $"34nic!$
A596 A56 A56
V!ctor!$ 5ARRAYS6 Matric!$ n im!n$ional!$
A5&6 A5'6 A586 A596 A56 A56
ALMA
BU))E =ino>$ ? VB @.& CONTR
5A6i 7 5 a'0a80a90 :0 an 6 Dim ;ar AS
5 ti,o 6
Dim ;ar 5Linf to L$",6 A$ 5Ti,o6
O,cional En a"$!ncia !l Lin<0 la ma"ina a$"m! Lin< 7 & Dim ;ar' 5Lin< to L$",6 A$ 5Ti,o60 ;ar80 : 5Arr!glo monoim!ncional6
L"#i$! Inf!ri%r &ini'ia( L"#i$! S)*!ri%r &+na(
Variab!
5Nom3ra a "na c!la ! la m!moria0 con !l nom3r! ! A6
Ing. Ramiro PILALUISA Q. M.Sc. _____________________________________________________________________________________ 5Limit! S",!rior ig"al a 0 Limit! In
R!f!r!n'ia. Dir!cta# C"ano lo$ $"34nic!$ $on con$tant!$ Inir!cta# C"ano lo$ $"34nic!$ $on ;aria3l!$
A596
B5&6
C5&6
A56 08 A56 '08
B5'6
C5'6
B586
C586
B596
C596
i ' 8 F 9
B 56 C 5'&&6
ALMA
BU))E
CODIGO
IMAGEN
Dim i a$ int!g!r i7& to i 7 i ' :::: ::::. ::::. I< i t1!n go to '&
CONTR
En S"3
ANILLOS GENERICOS DE REPETICION
MEMORIA RAM
Ing. Ramiro PILALUISA Q. M.Sc. _____________________________________________________________________________________
A56 08
i &0'08090: ALMACENAMIEN
&'7' ''78 8'79
BU))E
=? VB @.& CODIGO
IMAGEN
CONTR
Dim i a$ int!g!r i7& to i 7 i ' :::: ::::. ::::. I< i t1!n go to '& En S"3
ESTRUCTURA
Dim i A$ Int!g!r i7& '& i 7 i ' :::: ::::. ::::. I< i t1!n GoTo '& En S"3
Varia3l!
Valor Inicial Inicialiac
Ing. Ramiro PILALUISA Q. M.Sc. _____________________________________________________________________________________ Valor Incr!m!ntaci
Proc!$
Valor
Tran$
)
VARIABLES CON ÍNDICE O LOCALIZADOR. ARRAYS.
V
Ing. Ramiro PILALUISA Q. M.Sc. _____________________________________________________________________________________ Veremos ahora cómo declarar arrays estáticos de una dimensión. La gestión de arrays multidimensionales y dinámicos la veremos más adelante.
ARRAYS UNIDIMENSIONALES La sintaxis a emplear será: Dim [Nombre del array][dimensión]! "s [#ipo de variable]
$i no se declara el tipo de variable el array será tipo &asic 'ue estemos empleando! por de(ecto.
Variant ó tipo Object seg%n la versión de Visual
)onviene tener cuidado con esto y seguir las mismas pautas 'ue hemos indicado para las variables. *+emplos de declaración de arrays ser,an: -
Dim Ve/0! "s 1nteger
-
Dim "migo/000! "s $tring
-
Dim Value23! "s $ingle
-
Dim N%merode)oches24! "s 1nteger
-
Dim 5ugador6! "s Long
-
Dim #)78! "s &oolean
)uando creamos un array del tipo "n! podr,amos pensar 'ue estamos creando n variables 'ue son "/!9 "2!9 "8!9 ...9 "n!. 7ero en realidad estamos creando n/ variables por'ue Visual &asic crea tambi;n "0!. *sto conviene tenerlo en cuenta por'ue puede dar lugar a alguna con(usión. Disponer de un valor con ,ndice cero puede ser de utilidad en situaciones como considerar cada variable asociada a una hora del d,a9 empeando a contar desde la hora cero hasta la 28 total de 24 horas!9 cosa 'ue es habitual en algunos pa,ses. *n lugar de /9 29 89 ...9 24 estar,amos usando 09 /9 29 ...9 28. *n la mayor,a de lengua+es de programación se usa el ,ndice cero como primer ,ndice de un array. No obstante9 en las versiones menos recientes de Visual &asic se permit,a establecer como primer ,ndice de un array el / mediante la instrucción Option Base. " trav;s de ella se puede establecer como primer ,ndice
Ing. Ramiro PILALUISA Q. M.Sc. _____________________________________________________________________________________ del array el uno en ve del cero en a'uellas versiones 'ue lo admiten. 7ara ello se escribe en la cabecera del programa:
Dim [Nombre de variable][Valor inicial] #o [Valor (inal]! "s [#ipo de variable]
$upongamos 'ue 'ueremos de(inir una serie de variables asociadas a las horas comprendidas entre las /0 y las /6 horas. *n las versiones 'ue lo permiten podr,amos crear un array del tipo: Dim =agnitud/0 #o /6! "s 1nteger *n este caso si la versión admite esta sintaxis los valores válidos como ,ndices del array ser,an /09 //9 /29 /89 /49 /39 />9 /? y /6. )ual'uier n%mero 'ue no sea de esta serie usado como localiador del array dar,a lugar a un error por sub,ndice (uera del intervalo. *n las versiones más recientes de Visual &asic no es posible de(inir ,ndices en un rango9 de modo 'ue hemos de declarar el array como un array normal cuyo primer ,ndice es cero9 pudiendo de+ar vac,os o sin usar a'uellos ,ndices 'ue no nos resulten %tiles. *l contenido de una matri estática puede ser borrado utiliando la instrucción La sintaxis será la siguiente:
Erase.
*rase [Nombre de array/]9 [Nombre de array2]9 ...9 [Nombre de array n]
*+emplos de uso de *rase pueden ser: -
*rase N%merodecoches
Ing. Ramiro PILALUISA Q. M.Sc. _____________________________________________________________________________________ -
*rase N%merodecoches9 @suarios9 )alles
"l invocar a *rase sobre una variable de tipo array el resultado depende de la versión de Visual &asic 'ue estemos utiliando: a! *n las versiones menos recientes el contenido de las variables 'ue constituyen el array estático se trans(orma en cero si son de tipo num;rico o cadena vac,a si son de tipo texto $tring!9 pero el array sigue existiendo y teniendo un contenido válido. b! *n las versiones más recientes el contenido de las variables 'ue constituyen el array estático 'ueda eliminado y no es posible invocar un elemento del array. La variable del array pasa a tener valor Nothing y para volver a usarla tendr,amos 'ue establecer una rede(inición del array con la instrucción AeDim9 'ue estudiaremos más adelante. ------------------------------------------------*n el e+emplo siguiente se declara una variable de matri para 'ue contenga el n%mero de estudiantes de cada curso en una escuela primaria. Dim students(6) As Integer
La matri students del e+emplo anterior contiene siete elementos. Los ,ndices de los elementos van de 0 a >. #ener esta matri es más (ácil 'ue declarar siete variables. *n la siguiente ilustración se muestra la matri students. 7ara cada elemento de la matri: •
*l ,ndice del elemento representa el curso el ,ndice 0 representa el +ard,n de in(ancia!.
•
*l valor contenido en el elemento representa el n%mero de estudiantes en ese curso.
*lementos de la matri BstudentsB