Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Operaciones y funciones
Programación I
Ing. Luis Reyes
Objetivos
• Reglas de codificación:
– División de una instrucción en varias líneas. ( _ )
– Combinar varias instrucciones en una línea. ( : )
– Agregar comentarios al código. ( „ )
• Sistemas de numeración:
– Decimal.
– Hexadecimal. ( &H )
– Octal. ( &O )
Convenios de nomenclatura para variables.
• Constantes:
– Const
• Error en la declaración de variables:
– Dim var1, var2, ... ,varN As Integer
Funciones de conversión de tipos de datos:
Cbool Boolean
Cbyte Byte
Ccur Currency
Cdate Date
CDbl Double
Cint Integer
CLng Long
CSng Single
CStr String
Cvar Variant
CVErr Error
!! Cuidado al tratar de convertir contenidos de cajas de texto a
números y éstas están vacías ¡¡
Operadores aritméticos:
+ Suma
- Resta
* Multiplicación
/ División decimal
\ Cociente de una división entera
Mod Resto de una división entera
^ Potencia
Operadores Lógicos
And Función AND A=True y B=True Cualquier otro caso
Or Función OR A=True o B=True A=False y B=False
Xor Función XOR A=True y B=False A=True y B=True
A=False y B=True A=False y B=False
Eqv F. Equivalente A=True y B=True A=True y B=False
A=False y B=False A=False y B=True
Imp Implicación A=True y B=True A=True y B=False
A=False y B=True
A=False y B=False
Not Negación A=False A=True
Like Igualdad A=True A=False
Funciones matemáticas.
Cint Devuelve la parte entera de un número con decimales
Abs Devuelve el valor absoluto de un número
Sgn Devuelve el signo de un número
Sqr Devuelve la raíz cuadrada de un número
Exp Devuelve el número elevado al exponente indicado
Log Devuelve el logaritmo natural de ese número
Timer Devuelve el tiempo (sg) que ha pasado desde las 12 de la noche
Sin Devuelve el valor del seno de un ángulo
Cos Devuelve el coseno de un ángulo
Tan Devuelve la tangente de un ángulo
Atn Devuelve un arco cuya tangente sea el número
!! No existe una constante que represente el número pi, pero se calcula fácilmente
como 4 * Atn(1) ¡¡
Funciones trigonométricas hiperbólicas
Seno hiperbólico HSin(X) = (Exp(X) – Exp(–X)) / 2
Coseno hiperbólico HCos(X) = (Exp(X) + Exp(–X)) / 2
Tangente hiperbólica HTan(X) = (Exp(X) – Exp(–X)) / (Exp(X) + Exp(–X))
Secante hiperbólica HSec(X) = 2 / (Exp(X) + Exp(–X))
Cosecante hiperbólica HCosec(X) = 2 / (Exp(X) – Exp(–X))
Cotangente hiperbólica HCotan(X) = (Exp(X) + Exp(–X)) / (Exp(X) – Exp(–X))
Seno hiperbólico -1 HArcsin(X) = Log(X + Sqr(X * X + 1))
Coseno hiperbólico -1 HArccos(X) = Log(X + Sqr(X * X – 1))
Tangente hiperbólica -1 HArctan(X) = Log((1 + X) / (1 – X)) / 2
Secante hiperbólica -1 HArcsec(X) = Log((Sqr(–X * X + 1) + 1) / X)
Cosecante hiperbólica -1 HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X)
Cotangente hiperbólica -1 HArccotan(X) = Log((X + 1) / (X – 1)) / 2
S: Cadena de texto
C: modo comparación texto
L: longitud
Sentencias de control
Condicionales:
If <condición> Then If <condición> Then Select Case var
.... .... Case 1
End If Elseif <condición> Then ...
Case Is ( operador) xx
.... ....
If <condición> Then Elseif <condición> Then Case 2
.... .... ...
Else Else Case xx To xx
.... .... ....
Case N
End If End If ....
Case Else
....
End Select
Ejemplo de utilización de las sentencias if else
If x >= xmin And x <= xmax And y >= ymin And y <= ymax Then
msgbox “El punto pertenece a la región”
Else
msgbox “El punto no pertenece a la región”
End If
Ejemplo de utilización de If Else anidados
• Se trata de mostrar un mensaje indicando a banda
del espectro electromagnético pertenece una
determinada longitud de onda l expresado en mm
Dim l as Single
If l < 0.3 Then
msgbox “Pertenece al Ultravioleta”
ElseIf l < 0.4 Then
msgbox “Pertenece al Azul”
ElseIf l < 0.5 Then
msgbox “Pertenece al Verde”
ElseIf l < 0.6 Then
msgbox “Pertenece al Rojo”
Else
msgbox “Pertenece al InfraRojo”
End If
Ejemplo de utilización de Select Case
Repeticiones:
Exit Do
For Each elemento In grupo For <cond inicial > To <cond final > Step ...
..... .....
Next elemento Next ...
Exit For
Ejemplos con las sentencias repetitivas
Dim i As Integer
Valores de i
1
For i = 1 To 15 Step 2
3
Msgbox i
5
Next i
7
9
11
13
15
Ejemplos de sentencias repetitivas.
• Calcular la suma de los • Calcular el producto de los
números 3 al 15 números 2 al 15
Option Base 1
Dim Mat(3,3) As Double
Dim i As Integer, j As Integer
For i = 1 To 3
For j = 1 To 3
Mat(i,j) = CDbl(inputbox “Dato(“ & i & “,” & j & “)
Next j
Next i
Ejemplo Bucle For (Area de un polígono conocidas las
coordenadas de los vértices)
• Si se dispone de las coordenadas ordenadas de los
vértices de un polígono se puede calcular la
superficie del mismo con la fórmula de Simpson
• Sean Xi e Yi las coordenadas cartesianas del
vértice i-ésimo
Ejemplo:
• Títulos cortos.
• Asignar tecla de método abreviado.
• Si se trata de interruptor mostrar marca de
verificación.
• Mostrar (....) si hace falta intervención.
• Utilizar prefijo mnu e Item.
Funciones y Procedimientos
• Objetivo: Modularidad.
• Función: Puede retornar resultados.
• Procedimiento: No retorna se usa con Call
• Función:
[Static][Private] Function nombre ([parámetros])[As tipo]
[sentencias]
[nombre = expresión]
[Exit Function] ..
End Function
• Procedimiento:
[Static][Private] Sub nombre ([parámetros])
[sentencias]
[Exit Sub] ..
End Sub
• Parámetros por valor ByVal , por referencia (defecto)
Controles ComboBox y ListBox
• Permite:
– Realizar una conexión con una base de datos.
– Recorrer una tabla seleccionada por medio de RecordSet.
Propiedades:
Caption.
Connect. Tipo de BD.
DatabaseName. Nombre de la BD.
ReadOnly. Determina los permisos sobre los datos.
RecordsetType. Selecciona entre Tabla, dynaset..
RecordSource: Establece la tabla de la BD.
RecordSet
• Consultar datos.
– BOF (principio), EOF (fin), RecordCount y NoMatch.
• Modificar registros.
– AddNew, Edit, Update, Delete.
• Moverse por la base de datos.
– MoveFirst, MoveNext, MovePrevious, MoveLast.
• Encontrar datos.
– FindFirst, FindLast, FindNext, FindPrevious.
Estructura de trabajo en Bases de datos:
DBEngine
WorSpaces() (prop .count, met .Append, .Delete, .Refresh)
WorkSpace.
Connections()
Groups()
Users()
DataBases().(propiedad .Count, método .Refresh)
Database
RecordSets(). -> Recordset. -> Fields
Tabledefs(). .Count-> TableDef. ->Fields, Indexes
Relations(). -> Relation. -> Fields
Querydefs(). ->QueryDef. -> Parameters, Fields
Containers(). -> Container. -> Document
WorkSpace
• Métodos:
– Close
– CreateDatabase
– CreateGroup
– CreateUser
– CreateConnection
– OpenDatabase
– Rollback
DataBase
• Métodos:
– Close
– CreateTableDef
– Execute
– NewPassword
– OpenRecordSet
RecordSet
• Propiedades: • Métodos:
– EOF – AddNew
– Filter – Clone
– Index – Close
– Name – Delete
– NoMatch – Edit
– RecordCount – FindFirst
– RecordStatus – Move
– Sort – GetRows
– Type – MoveFirst
– NextRecordSet
– OpenRecordSet
– Seel
– Update
Creación de una nueva base de datos.