Académique Documents
Professionnel Documents
Culture Documents
(2 puntos) Indique cuatro (4) tipos de campos que puede contener una base de datos. Para cada uno de
ellos seale al menos un ejemplo.
Solucin:
Los tipos de campos pueden ser:
Campo de texto
Campo numrico
Campo de fecha o campo de hora
Campo lgico
Campo binario
Campo contador (campo de ndice o autonumrico)
Campo memo (campo de descripcin)
2.
Solucin:
a)
b)
c)
d)
3. (7 puntos) Se tiene en una hoja de clculo una cantidad de nmeros base. Se desea realizar los siguientes
procesos a cada uno de ellos:
1
Para hallar lo pedido se ha creado una hoja de Excel como la mostrada a continuacin.
Figura 1
Se le pide:
a) (2 puntos) Elaborar el anlisis del problema, identificando los datos de entrada, datos de salida y
planteando un diagrama de mdulos de por lo menos 4 (incluido el principal). No debe considerar
mdulos exclusivos para leer y mostrar datos.
b) (5 puntos) Codificar en VBA con Excel (usando diseo descendente) los mdulos definidos en el
diagrama de mdulos planteado que permitan leer los datos, realizar las acciones solicitadas y mostrar
los resultados de acuerdo a la hoja de clculo presentada anteriormente. NOTA: Debe manipular los
nmeros como tal; es decir, solo debe aplicar operadores matemticos y no para otros tipos de dato.
Solucin:
a) Anlisis.
Datos de entrada
Cantidad de nmeros (cantnum)
Para cada nmero:
Nmero base (numerobase)
Operacin
Datos de salida
Para cada nmero:
Cantidad de dgitos (cantdig)
Paridad de la cantidad de dgitos del nmero base (paridad)
Resultado de la operacin sobre los dgitos del nmero base (resultado)
Descomposicin en dgitos del nmero base
Diagrama de mdulos
Numeros
Validar
Datos
CuentaDigitos
Verificar
Paridad
Calcular
Resultado
Descomponer
NumeroBase
b) Implementacin
Const MENSAJE = "Error en los datos"
Sub Numeros()
Dim cantnum As Integer, fila As Integer, numerobase As Long, operacion As String, esValido As Boolean,
resultado As Long, cantdig As Integer, paridad As String
cantnum = Range("B1")
For fila = 1 To cantnum
numerobase = Cells(3 + fila, 1)
operacion = Cells(3 + fila, 2)
esValido = ValidarDatos(numerobase, operacion)
If esValido Then
Call CuentaDigitosVerificarParidad(numerobase, cantdig, paridad)
resultado = CalcularResultado(numerobase, operacion)
Call DescomponerNumeroBase(numerobase, cantdig, fila)
Cells(3 + fila, 3) = cantdig
Cells(3 + fila, 4) = paridad
Cells(3 + fila, 5) = resultado
Else
Cells(3 + fila, 3) = "-"
Cells(3 + fila, 4) = "-"
Cells(3 + fila, 5) = "-"
Cells(3 + fila, 6) = MENSAJE
End If
Next
End Sub
Function ValidarDatos(numerobase As Long, operacion As String) As Boolean
ValidarDatos = numerobase > 0 And numerobase < 1000000000 And (operacion = "+" Or operacion =
"x")
End Function
Sub CuentaDigitosVerificarParidad(numerobase As Long, cantdig As Integer, paridad As String)
Dim num As Long
cantdig = 0
num = numerobase
Do While (num > 0)
num = num \ 10
cantdig = cantdig + 1
Loop
If cantdig Mod 2 = 0 Then
3
paridad = "PAR"
Else
paridad = "IMPAR"
End If
End Sub
Function CalcularResultado(numerobase As Long, operacion As String) As Long
Dim resultado As Long, digito As Integer, num As Long
If operacion = "+" Then
resultado = 0
Else
resultado = 1
End If
num = numerobase
Do While (num > 0)
digito = num Mod 10
num = num \ 10
If operacion = "+" Then
resultado = resultado + digito
Else
resultado = resultado * digito
End If
Loop
CalcularResultado = resultado
End Function
Sub DescomponerNumeroBase(numerobase As Long, cantdig As Integer, fila As Integer)
Dim cont As Integer, digito As Integer
cont = 0
Do While (numerobase > 0)
digito = numerobase Mod 10
numerobase = numerobase \ 10
Cells(fila + 3, cantdig + cont + 5) = digito
cont = cont - 1
Loop
End Sub
4. (7 puntos) A Juan se le ocurri guardar la informacin de las ventas de sus trabajadores durante el mes de
mayo en una tabla (Representacin reducida de ventas en mayo), donde las filas guardan la informacin
de cada venta. En dicha tabla, la primera, la segunda y la tercera columna representan el cdigo del
trabajador, el producto (NoteBook) que vendi y la cantidad de productos vendidos, respectivamente.
Un trabajador puede aparecer ms de una vez en dicha tabla. Adems, debe tomar en cuenta que slo son 5
productos.
Juan desea pasar esta informacin a una tabla completa donde pueda visualizar para cada trabajador, la
cantidad de notebooks vendidas as como la venta total realizada. Adicionalmente, tambin desea hallar el
promedio de ventas totales y la cantidad de trabajadores que superan dicho promedio. Esta tabla con toda la
informacin quedara de la manera que se muestra en la Figura 2.
Figura 2
Para calcular la venta total cuenta con la siguiente informacin.
Notebook
TOSIBA
LENUEVO
HPP
ACERR
ASIS
Precio
2299
1599
2099
1099
1399
Datos de salida
Para cada trabajador:
Cantidad de notebooks vendidas (cantvendidas)
Venta total (total)
Promedio de ventas totales (promedio)
Cantidad de trabajadores cuyas ventas superan el promedio (cantmayor)
Diagrama de Mdulos
Principal
Hallar la cantidad de
notebooks vendidas y la
venta total de un
trabajador
Hallar el promedio de
ventas totales
b) Diseo
Inicio Principal()
Leer cantventas
Leer cantrab
i1
Mientras i <= canttrab
Leer codtrab
Hallar_cantidadvendida_ventatotal(codtrab, cantventas, cantvendidas, total)
Escribir cantvendidas, total
ii+1
Fin mientras
promedio hallar_promedio_ventas(canttrab)
cantmayor hallar_cantidad_superior_promedio(canttrab, promedio)
Escribir promedio, cantmayor
Fin principal
Inicio Hallar_cantidadvendida_ventatotal(codtrab, cantventas, cantvendidas, total)
cantvendidas 0
total 0
i1
Mientras i <= cantventas
Leer codigo
Si codigo = codtrab entonces
Leer producto , cantidad
precio HallarPrecio(producto)
cantvendidas cantvendidas + cantidad
total total + cantidad * precio
Fin si
ii+1
Fin mientras
Fin Hallar_cantidadvendida_ventatotal
Inicio Hallar_promedio_ventas(canttrab)
suma 0
i1
6