Tema 08.2 Ejercicios VBA

Anuncio
Programación Básica Access Basic
Pág 1 de 4
Programas en VBA .
Realiza el ordinograma de cada programa.
Sub programa01()
'Muestra mensaje en cuadro diálogo
MsgBox ("Hola Bienvenido")
End Sub
Explica la sentencia MsgBox
Sub programa02()
'Pide un dato por teclado y lo muestra
dato = InputBox("Dame un dato")
MsgBox ("Ha tecleado " & dato)
End Sub
Función InputBox.
Sub programa03()
'Muestra el mayor de dos números dados por teclado
x = Val(InputBox("Primer numero:"))
y = Val(InputBox("Segundo numero:"))
If x > y Then
MsgBox ("el mayor es:" & x)
Else
MsgBox ("el mayor es:" & y)
End If
End Sub
Función Val.
Sub programa04()
'Cuenta desde 1 hasta el número dado por teclado
x = Val(InputBox("Numero:"))
For i = 1 To x
Debug.Print i
Next i
End Sub
Forma genérica bucle Para.
Sub programa05()
'Muestra todos los divisores de un numero entero
x = Val(InputBox("Numero:"))
For i = 1 To x \ 2
If x Mod i = 0 Then Debug.Print i
Next i
End Sub
Operadores aritméticos.
Sub programa06()
'Numeros impares de 1 a 100
For x = 1 To 100 Step 2
Debug.Print x
Next x
End Sub
Step en bucles Para
Diferencia entre sentencia y función
Símbolo &
Forma genérica de estructura alternativa
doble.
Sentencia Debug.Print
Condicional Simple
Programación Básica Access Basic
Pág 2 de 4
Cadena nula.
Sub programa07()
'Pide una clave hasta teclear manjon
x = ""
Do While x <> "manjon"
x = InputBox("Palabra clave:")
Loop
MsgBox ("Clave correcta")
End Sub
Operadores relacionales.
Forma genérica bucle Mientras.
Sub programa08()
'Muetra si un numero es primo o no
x = Val(InputBox("Teclee numero entero:"))
primo = True
For i = 2 To x \ 2
If x Mod i = 0 Then primo = False
Next i
If primo Then
MsgBox ("Es Primo")
Else
MsgBox ("No es primo")
End If
End Sub
Uso de flags o indicadores
Sub programa09()
'Area y perimetro de un triángulo rectángulo
Dim base, altura As Double
base = Val(InputBox("Valor de la base:"))
altura = Val(InputBox("Valor de la altura:"))
hipotenusa = Sqr(base ^ 2 + altura ^ 2)
area = base * altura / 2
perimetro = base + altura + hipotenusa
Debug.Print ("Area=" & area)
Debug.Print ("Perímetro=" & perimetro)
Debug.Print (hipotenusa)
Debug.Print (altura)
Debug.Print (base)
End Sub
Declaración variables Dim.
Sub programa10()
'Muestra quiere continuar s/n hasta pulsar n
Dim sino As String * 1
Do
sino = InputBox("¿Quiere continuar s/n?")
Loop Until sino = "n" Or sino = "N"
End Sub
Estructura Repetir Hasta.
Sub Programa11()
'Pide la base de una factura, calcula el iva 16% y el total
Dim base, iva, total As Double
base = Val(InputBox("Valor de la base"))
iva = base * 0.16
total = base + iva
Debug.Print ("base Imponible=" & base & "€")
Debug.Print ("i.v.a.=" & iva & "€")
Debug.Print ("Total=" & total & "€")
End Sub
Tipos de datos.
Estructura típica Secuencial.
Entrada, Proceso, Salida
Programación Básica Access Basic
Sub Programa12()
'Suma los 100 primeros numeros naturales
Dim suma
suma = 0
For i = 1 To 100
suma = suma + i
Next i
Debug.Print ("La suma es:" & suma)
End Sub
Pág 3 de 4
Acumuladores. suma
Sub Programa13()
'Factorial de un numero
Dim factorial As Double
n = Val(InputBox("Numero natural:"))
If n > 1 Then
factorial = 1
For i = 1 To n
factorial = factorial * i
Next i
Else
factorial = 1
End If
MsgBox ("Su factorial es:" & factorial)
End Sub
Sub programa14()
'Muestra el dia de semanade una fecha
Dim x As Date
x = InputBox("dame fecha(dd/mm/aaaa):")
Select Case Weekday(x)
Case 1
Debug.Print ("Domingo")
Case 2
Debug.Print ("Lunes")
Case 3
Debug.Print ("Martes")
Case 4
Debug.Print ("Miercoles")
Case 5
Debug.Print ("Jueves")
Case 6
Debug.Print ("Viernes Por fin")
Case 7
Debug.Print ("Sabado")
End Select
End Sub
Sub programa15()
'Trabajo con cadenas de caracteres
Dim frase As String
frase = InputBox("Introduzca una frase")
frase = UCase(frase)
longitud = Len(frase)
izq = Left(frase, 1)
der = Right(frase, 1)
mitad = Mid(frase, longitud \ 2 + 1, 1)
reves = ""
vocales = 0
For i = 1 To longitud
reves = Mid(frase, i, 1) & reves
Select Case Mid(frase, i, 1)
Case "A"
vocales = vocales + 1
Selectiva múltiple.
Cadena de caracteres.
Funciones con cadenas de caracteres
Programación Básica Access Basic
Pág 4 de 4
Case "E"
vocales = vocales + 1
Case "I"
vocales = vocales + 1
Case "O"
vocales = vocales + 1
Case "U"
vocales = vocales + 1
End Select
Next i
Debug.Print ("Frase inicial mausculas:" & frase)
Debug.Print ("Primer caracter:" & izq)
Debug.Print ("Ultimo caracter:" & der)
Debug.Print ("Caracter central:" & mitad)
Debug.Print ("Frase al reves:" & reves)
Debug.Print ("total de vocales:" & vocales)
End Sub
Sub programa16()
'Genera 6 numeros aleatorios entre 1 y 49
Randomize Timer
For i = 1 To 6
Debug.Print Int(Rnd * 49) + 1
Next i
End Sub
Sub programa17()
'Adivine un numero entre 1 y 100
Dim x, n As Integer
Randomize Timer
x = Int(Rnd * 100) + 1
intentos = 0
Do
n = Val(InputBox("Adivine el numero:"))
intentos = intentos + 1
If n > x Then MsgBox ("Es menor, total intentos=" & intentos)
If n < x Then MsgBox ("Es mayor, total intentos=" & intentos)
Loop Until x = n
MsgBox ("ACERTÓ, INTENTOS =" & intentos)
Select Case intentos
Case Is < 10
MsgBox ("MUY BIEN")
Case Is < 15
MsgBox ("BIEN")
Case Is < 20
MsgBox ("REGULAR")
Case Else
MsgBox ("MAL")
End Select
End Sub
Función aleatoria
Descargar