BASIC
Tipus de Variables
A. Simples:Tipo Tamaño Valores
Boolean 1 Byte True/False (cert/fals)
Byte 1 Byte 0 a 255
Integer 2 Bytes -32768 a 32767
Long 4 Bytes -2.147.483.648 a 2.147.483.647
Single 8 Bytes Valores decimals con simple precisió
Double 16 Bytes Valores decimals con doble precisió
Currency 8 Bytes Tipus moneda (representació sencera de valors amb 2 decimals)
String Variable Cadena de caràcters entre cometes (“).
Variant
Date Fechas
Declaració
Dim A as Integer Enter.
Dim B as String*15 Cadena de fins a 15 posicions.
Dim C as Double, D as Double, E as Double Declaració múltiple de variables reals
B. Agregades:
- Vectors y Matrius: Tots els elements són del mateix tipus i estan consecutius a memòria. Declaració:
Dim A(8,7) as integer Matriu de 8 files i 7 columnes de enters. Accés (por indexes):
A(5,6) Accés a l’element de la 5ª fila i 6ª columna. - Estructurats: Els elements poden ser de tipus diferent.
Declaració:
Type Grupo Definició del tipus abstracte (no reserva memòria).
Colegio as string Capacidad as integer Alumnos(30) as string
End Type
Dim Octavo as Grupo Declaració d’una variable de tipus Grupo
Accés (per membres):
Octavo.Colegio Octavo.Capacidad
Operacions i funcions més comuns
Expressions amb nombres
char(numero) retorna el caràcter amb codi ASCII igual a número
asc(carácter) retorna el codi ASCII (0-255) del caràcter
número+número suma dos números
número-número resta dos números
número*número multiplica dos números
número/número divideix dos números
número\número divideix de forma entera dos números, donant el quocient sense decimals.
número mod número divideix de forma entera dos números, donant el residu o mòdul.
número1^número2 potència, fa número1elevat a número2.
abs(número) valor absolut
sin(número) sinus del número
cos(número) cosinus del número
tan(número) tangent del número
log(número) logaritme neperià del número
exp(número) exponencial del número
int( número) part sencera del número
str( número) string que representa el número
rnd() número aleatori uniforme entre 0 y 1
Expressions amb cadenes
string+string concatena dos strings
string& string concatena dos strings
len(string) longitud de la cadena (número de caràcters)
mid(string, número1 ,número2) subcadena que comença a la posició número1 y conté número2 caràcters
mid(string, número1) subcadena que comença en la posició número1 y termina al final
left(string, número1) subcadena que conté los número1 caràcters inicials
right(string, número1) subcadena que conté los número1 caràcters finals
val(string) valor numèric de la cadena
instr(string1, string2) retorna la primera posició on es troba string2 dins de string1 (0 vol dir que no hi és)
trim(string) retorna el string sense espais a la dreta i a la esquerra. lcase(string) retorna el string a minúscules.
ucase(string) retorna el string a majúscules. Booleanes (expressions relacionals i lògiques)
expressió1< expressió2 més petit que expressió1<= expressió2 més petit o igual que expressió1> expressió2 més gran que expressió1>= expressió2 més gran o igual que
expressió1= expressió2 igual que
expressió1<> expressió2 diferent de expressió1 and expressió2 ’i’ lògic
expressió1 or expressió2 ’o’ lògic
Control de Flux del Programa
Bifurcació (instruccions alternatives):
Binària: if (expressió_lógica) then : else : end if Múltiple:
select case expressió
case valor1 : case valor2 : case else : end select
Iteració (instruccions repetitives):
De recorregut (bucle per comptador): for variable = valor1 to valor2 step valor3
:
if (expressió_lógica) then exit for possible sortida sobtada del bucle :
next
De cerca (bucle per condició):
do{while (expressió_lógica)/ until (expressió_lógica)} :
if (expressió_lógica) then exit do possible sortida sobtada del bucle :
loop do
:
if (expressió_lógica) then exit do possible sortida sobtada del bucle :
Subprogrames:
Procediments o Subrutines: : callnom_procediment(variable_1,...,variable_n) o simplement, nom_procediment variable_1,...,variable_n:
Subnom_procediment
(
parametre_1as
tipus1,...,
parametre_nas
tipus)
:if (expressió_lógica) then exit sub possible sortida sobtada :
end sub
(no retorna cap valor de forma explícita)
Funcions:
Dim variable as tipus_f
:
variable = nom_procediment(variable_1,...,variable_n)
:
Functionnom_procediment
(
parametre_1astipus1,..,
parametre_nastipusn)
as tipus_f :if (expressió_lógica) then exit function possible sortida sobtada
: end function
( retorna un valor del tipus declarat)
Entrades i Sortides
Entrades de valors al programa:
a) Interactiva amb diàleg per pantalla (només sistema operatiu Windows) Dim variable as tipus
:
variable =InputBox(missatge) :
(el programa sol·licita el valor per pantalla)
b) Per fulla de càlcul (només Visual Basic per Excel) Dim variable as tipus
:
variable =cells(num_fila, num_columna) :
c) Per fitxer
open string_nom_fitxer for input as #num_canal
:
Dim variable as tipus
:
input #num_canal, variable
:
(considera separadors) o bé
Dim variable as string
:
variable =input$(#num_canal, num_bytes) :
close #num_canal
(el programa llegeix un string de longitud indicada)
Sortides de valors del programa:
d) Interactiva amb diàleg per pantalla (només sistema operatiu Windows) Dim variable as tipus
Dim missatge as string
:
missatge = str(variable) MsgBox missatge :
(el programa escriu el valor per pantalla)
e) Per fulla de càlcul (només Visual Basic per Excel) Dim variable as tipus
:
cells(num_fila, num_columna) = variable :
(el programa posa el valor de la variable a la casella corresponent)
f) Per fitxer:
open string_nom_fitxer for output as #num_canal (o bé for append si es vol afegir)
:
Dim variable as tipus
:
write #num_canal, variable
:
(li posa separadors) o bé
Dim variable as string
:
print #num_canal ,variable;
:
close #num_canal