Documentos de Académico
Documentos de Profesional
Documentos de Cultura
para los
Negocios
Visual Basic
para
Aplicaciones
en MS Excel
Autor:
Jos M. Martn
Senmache
Sarmiento
Lima. Per.
1
2
Marzo 2012.
e-informaticsbook
e-informaticsbook
Preciso.- No deja duda sobre el procedimiento a seguir, esto significa que las
operaciones o pasos deben desarrollarse en un orden estricto, ya que cada paso debe
obedecer a un orden lgico.
Codificacin.- Para esta etapa utilizaremos Visual Basic para aplicaciones en Excel.
Inicio
Leer A
A=0?
No
Leer B, C
D = B2 4 * A * C
D >= 0 ?
S No
X1 = ( - B + D ) Escribir
2*A No Existen races
X2 = ( - B - D ) reales
2*A
Escribir
Raiz 1=, X1
Raiz 2=, X2
Fin
Inicio Inicio
Instruccin 1
Instruccin 2
....................
Instruccin n
Fin
Fin
NombreDe
NombreDeVariable Variable
Bicondicional
Selectivas
Multicondicional
Estructuras de Control De entrada controlada
Repetitivas De salida controlada
De contador implcito
1. Selectivas o Condicionadas
A) BICONDICIONAL
A.1) Si Condicin Entonces InstruccinV
Condicion si Instrucion
No
InstrucionF InstrucionV
Bloque de
Condicion si
InstrucionesV
No
Bloque de Bloque de
InstrucionesF InstrucionesV
Bloque de
Condicion2 Si 1
Instrucciones2
No
Bloque de
Condicion3 Si 1
Instrucciones3
No
Bloque de lo contrario
B) MULTICONDICIONAL
Segn sea Variable hacer
Caso 1:
Instruccin 1
...............
Instruccin n
Caso 2:
Instruccin 1
...............
Instruccin n
Caso n:
Instruccin 1
...............
Instruccin n
Otro caso
Instruccin 1
...............
No
No
No
No
A) DE ENTRADA CONTROLADA
Mientras Condicin Hacer
Instruccin 1
...............
Instruccin n
Fin de Mientras
Bloque de
Instrucciones
Condicion Si
No
B) DE SALIDA CONTROLADA
Repetir
Instruccin 1
...............
Instruccin n
Hasta Condicin
Bloque de
Instrucciones
No
Condicion
Si
C) DE CONTADOR IMPLCITO
Para Contador ValorInicial hasta ValorFinal Incremento Inc Hacer
Instruccin 1
...............
Instruccin n
Fin de Para
Bloque de
Instrucciones
Siguiente i
Ejercicio N1.- Escribir un algoritmo que sirva para calcular el costo de la construccin de
una piscina que posee la forma de un Prisma Recto con base rectangular, si se tienen
como datos los lados de la base Largo y Ancho y Altura expresados en metros, el
costo de la excavacin por metro cbico y el costo del recubrimiento por metro cuadrado
en Nuevos Soles, si se sabe que se deben aplicar las siguientes frmulas:
Volumen L arg o * Ancho * Alto
Area 2 * (L arg o Ancho ) * Alto L arg o * Ancho
CostoArea Area * CostoRe cubrimientoxMt 2
CostoVolumen Volumen * CostoExcavacionxMt 3
Costo CostoArea CostoVolumen
SOLUCIN:
Datos de entrada: Aqu debern detallarse todos los datos que se requieren para
resolver el problema. En caso, alguno de los datos sea un valor constante, deber
indicarse esta condicin. Deber ser claro al momento de elegir el tipo de dato que
almacenar/manipular, as como sus respectivas condiciones de entorno al momento de
su lectura. Por ejemplo si se trata de la edad de una persona, jams podr ser un nmero
negativo y se debe indicar que es un nmero entero.
Para nuestro ejercicio modelo, se determin que los datos de entrada son:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
L Largo expresado en metros Nmero real positivo
A Ancho expresado en metros Nmero real positivo
H Atura expresada en metros Nmero real positivo
CExm3 Costo excavacin x metro cbico Nmero real positivo con 2
decimales
CRxm2 Costo recubrimiento x metro Nmero real positivo con 2
cuadrado decimales
Datos intermedios: Aqu debern detallarse los datos que no siendo de entrada ni de
salida, son necesarios para resolver el problema. Un ejemplo claro de este enfoque,
corresponde al clculo de la discriminante (valor dentro de la raz cuadrada), cuando se
pretenden encontrar las dos races reales de una ecuacin cuadrtica; puesto que
algunos preferirn definir al discriminante y calcularlo previamente al clculo de las races,
mientras que otros preferirn hacer el clculo directamente, por lo que su uso depender
de la forma en que se resuelva el problema.
Para nuestro ejercicio modelo, se determin que los datos intermedios son:
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
Vol Volumen a excavar Nmero real con 2 decimales
Area rea a recubrir Nmero real con 2 decimales
CostoVol Costo de volumen por metro Nmero real con 2 decimales
cbico
CostoArea Costo de rea por metro cuadrado Nmero real con 2 decimales
ALGORITMO Piscina
INICIO
FIN
Inicio
L, A, H, CExm3, CRxm2
L, A, H
CExm3, CRxm2
Vol L * A * H
Solucin
Area 2 * ( L + A ) * H + L *
A
CostoVol Redondear(Vol *
CExm3, 2)
CostoArea
Redondear(Area * CRxm2, 2)
Costo CostoVol +
CostoArea
Costo
Fin
SOLUCIN:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
N Nmero total de tarjetas Nmero entero positivo
PV Precio de Venta por tarjeta Nmero real positivo con 2
decimales
pIGV % de impuesto general a las ventas Nmero constante igual a 0.18
pPM Porcentaje de premio mayor Nmero constante igual a 0.50
pPC Porcentaje de premio consuelo Nmero constante igual a 0.15
pFR Porcentaje de fondo de reinversin Nmero constante igual a 0.10
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
VV Valor Venta Nmero real con 2 decimales
VVR Valor Venta Recaudado Nmero real con 2 decimales
FIN
Tarea.
Ejercicio N3.- Escribir un algoritmo que teniendo como datos el valor presente C, la
tasa nominal TN, el tiempo en que est expresada NDiasTN, el perodo de
capitalizacin expresados en nmero de das NDiasPC y el tiempo (expresado en das)
que se invertir el dinero ND en un certificado de depsito a plazo fijo CDPF, sirva para
calcular el valor futuro S que se recibir al vencimiento del mismo.
SOLUCIN:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
C Valor presente o Capital Nmero real positivo con 2
decimales
TN Tasa nominal Nmero real positivo
NDiasTN N de das de la TN Nmero entero positivo
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
M Nmero de veces que se repite el Nmero entero
periodo de capitalizacin en la
tasa nominal que recibo como dato
N Nmero de veces que se repite el Nmero entero
periodo de capitalizacin en el
tiempo de la inversin
M NDiasTN / NDiasPC
N ND / NDiasPC
S Redondear ( C * Potencia( 1 + TN / M, N), 2)
Inicio
C, TN, NDiasTN,
NDiasPC, N
M NDiasTN / NDiasPC
N N / NDiasPC
SRedondear(C*Potencia(1
+TN/M,N), 2)
Fin
Ejercicio N4.- Escribir un algoritmo que teniendo como datos el valor presente C, la
tasa efectiva TE, el tiempo en la que se encuentra expresada NDiasTE y el tiempo que
demorar en devolverse un prstamo N (expresado en das), sirva para calcular el valor
futuro S a pagar al vencimiento del mismo. Podr utilizar la siguiente frmula financiera
para calcular el valor futuro a tasas efectivas:
N
NDiasTE
S C * 1 TE
SOLUCIN:
Tarea.
360
N
S
TEA 1
C
Ejercicio N6.- Escribir un algoritmo que sirva para calcular las incgnitas de dos
ecuaciones con dos incgnitas, si se tiene que:
Ecuacin N 1: aX + bY = c
Ecuacin N 2: dX + eY = f
SOLUCIN:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
N Nmero de la manzana dentro del Nmero entero positivo entre 1 y
lote 40,000
ALGORITMO Manzanitas
INICIO
Leer N
NCaja Cociente((N-1) / 40) + 1
Posicion Residuo((N-1) / 40 + 1
Escribir Nmero de caja =, NCaja
Escribir Nmero de manzana =, Posicion
FIN
Ejercicio N8.- Escribir un algoritmo que permita calcular el nmero de la semana del ao
en la que nos encontramos, si se tiene como dato el nmero de das transcurridos desde
el 31 de diciembre del ao anterior.
Por ejemplo: Si recibo como dato que el nmero de das transcurridos es 24, significa es
hoy es el 24 de enero y estamos en la semana N4 (3 semanas completas de 7 das ms
3 das de la semana 4)
NDiasPago
360
TEP 1 TEA 1
TEP * (1 TEP )n
R C*
n
(1 TEP ) 1
Nota: Para el desarrollo de los ejercicios de esta separata no ser necesario considerar
ninguna restriccin a la entrada de datos.
Ejercicio N11.- Escribir un algoritmo que teniendo como datos: el Nombre del cliente, la
Direccin, Nmero de medidor (entero), Cantidad consumida en Kw (entero) y Precio del Kw
(real), muestre la informacin del recibo de electricidad que se muestra a continuacin:
SOLUCIN:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
C Consumo del cliente Nmero real positivo con 2
decimales
pIGV % de impuesto general a las Nmero constante igual a 0.18
ventas
pD1 % de descuento 1 Nmero constante igual a 0.00
pD2 % de descuento 2 Nmero constante igual a 0.04
pD3 % de descuento 3 Nmero constante igual a 0.07
pD4 % de descuento 4 Nmero constante igual a 0.10
Escribir Descuento =, D
Escribir Valor Venta =, VV
Escribir I.G.V. =, IGV
Escribir Precio de venta a pagar =, PV
FIN
Inicio
C, D, VV, IGV, PV
Pigv0.19
pD10.00
pD20.04
pD30.07
pD40.10
No
No
No
DRedondear(C*pD4, 2) Si (C>=300)
No
VVC D
IGVRedondear(VV*pIGV, 2)
PVVV + IGV
D, VV, IGV, PV
Fin
VV C D
IGV Redondear(VV * pIGV, 2)
PV VV + IGV
Escribir Descuento =, D
Escribir Valor Venta =, VV
Escribir I.G.V. =, IGV
Escribir Precio de Venta a pagar =, PV
FIN
Inicio
C, D, VV, IGV, PV
Pigv0.19
pD10.00
pD20.04
pD30.07
pD40.10
No
Solucin
No
No
DRedondear(C*pD4, 2)
VVC D
IGVRedondear(VV*pIGV, 2) 1
PVVV + IGV
D, VV, IGV, PV
Fin
Ejercicio N3.- Una tienda de automviles vende sus productos de acuerdo a la siguiente
escala:
COSTO DE IMPORTACIN MARGEN DE GANANCIA
Hasta 15,000 15 %
Mayor a 15,000 y hasta 20,000 20 %
Mayor a 20,000 y hasta 30,000 25 %
Mayor a 30,000 y hasta 50,000 27.5 %
Mayor a 50,000 30 %
Adems paga un I.S.C. de acuerdo a la siguiente escala:
CILINDRADA IMPUESTO SELECTIVO AL CONSUMO ISC
Hasta 1,000 5%
Mayor a 1,000 y hasta 2,000 7%
Mayor a 2,000 9%
El cual grava al costo de importacin de automviles, impuesto que se sumar al costo de
importacin antes de calcular el margen de ganancia.
Escribir un algoritmo que teniendo como datos el costo de importacin del vehculo y la
cilindrada del mismo, calcule y muestre el Precio de Venta del mismo, si se sabe que el %
de I.G.V. es 19%.
Deber tomar en cuenta las siguientes frmulas:
I.S.C. = Costo de importacin * %I.S.C.
Valor Venta = (Costo + I.S.C.) / (1 - %M.G.)
Precio de Venta = Valor Venta * (1 + %I.G.V.)
SOLUCION:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
Costo Costo de importacin del vehculo Nmero real positivo con 2
decimales
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
ISC Impuesto selectivo al consumo Nmero real con 2 decimales
VV Valor venta Nmero real con 2 decimales
ALGORITMO Importacion
INICIO
pIGV 0.18
pMG1 0.15
pMG2 0.20
pMG3 0.25
pMG4 0.275
pMG5 0.30
pISC1 0.05
pISC2 0.07
pISC3 0.09
LCI1 15000
LCI2 20000
LCI3 30000
LCI4 50000
LC1 1500
LC2 2000
Leer Costo
Leer Cil
Si Cil<LC1 Entonces
ISC Redondear(Costo*pISC1,2)
De lo contrario Si Cil<LC2 Entonces
ISC Redondear(Costo*pISC2,2)
De lo contrario
ISC Redondear(Costo*pISC3,2)
Fin de Si
Si Costo<LCI1 Entonces
VV Redondear((Costo+ISC)/(1-pMG1),2)
De lo contrario Si Costo<LCI2 Entonces
VV Redondear((Costo+ISC)/(1-pMG2),2)
De lo contrario Si Costo<LCI3 Entonces
VV Redondear((Costo+ISC)/(1-pMG3),2)
De lo contrario Si Costo<LCI4 Entonces
VV Redondear((Costo+ISC)/(1-pMG4),2)
De lo contrario
VV Redondear((Costo+ISC)/(1-pMG5),2)
Fin de Si
FIN
Ejercicio N4.- El estado de Patolandia exige al final del ao fiscal, el pago del impuesto a
la renta, el cual se calcula en forma escalonada y est en funcin del valor de la Unidad
Impositiva Tributaria (U.I.T.) y los ingresos anuales del contribuyente. Para el clculo
deber tomar en cuenta las siguientes escalas, las que actan nica y directamente sobre
la porcin de ingresos anuales que se encuentran en cada tramo de impuestos:
% Impuesto
Ingreso Anual en Nuevos Soles
a la renta
Hasta 7 UIT 0%
Mayor a 7 UIT y hasta 12 UIT 10%
Mayor a 12 UIT y hasta 30 UIT 20%
Mayor a 30 UIT 30%
Al final se realizar un descargo equivalente a un 10% del Impuesto total resultante luego
de aplicar el criterio de Ingresos, por cada hijo menor de edad que el contribuyente posea.
Escribir un algoritmo que teniendo como datos el valor de la U.I.T., los ingresos totales, y
el nmero de hijos menores de edad que tenga el contribuyente, calcule y muestre el
pago del impuesto a la renta con el que aporta un ciudadano al fisco de Patolandia.
Ejercicio N5.- Escribir un algoritmo que teniendo como dato una cantidad entera de soles,
imprima el menor nmero de billetes y monedas necesarias para formarla, suponiendo que
solamente hay billetes de 10, 20, 50, 100 y 200 soles y monedas de 1 sol.
Ejemplo. Ingrese cantidad > 357
Billetes de 200 soles :1
Billetes de 100 soles :1
Billetes de 50 soles :1
Monedas de 1 sol :7
Ejercicio N8.- En una hacienda se embalan manzanas en envases de 1000, 500, 250 y
50 unidades y los dueos desean contar con un algoritmo, que teniendo como dato la
cantidad de manzanas, calcule e imprima la cantidad de envases de cada tipo que sern
necesarios para atender el pedido e imprima la cantidad de manzanas que no ser
posible vender.
Ejemplo: si el dato fuera 1324
Se imprimir:
Envases de 1000 : 1
Envases de 500 : 0
Envases de 250 : 1
Envases de 50 :1
Sobran : 24 manzanas no vendidas
Ejercicio N9.- En una universidad, los cargos para la colegiatura en estudios de maestra
son de US$ 40.00 por curso, con un cargo mximo de US$ 800.00, independientemente
del nmero de asignaturas tomadas. As, un estudiante que aprob 12 cursos pagara
US$ 480.00, mientras que el que tome 25 pagar US$ 800.00.
Escriba un algoritmo que teniendo como dato el nmero de materias cursadas, calcule y
muestre el costo de la colegiatura.
Autor: Jos M. Martn Senmache S. Pgina 39
3.4.2.2 Estructuras Multicondicionales
SOLUCIN:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
Nota Nota en sistema vigesimal Nmero entero entre 0 y 20
Algoritmo Equivalencias
Inicio
Leer Nota
Segn sea Nota hacer
Caso 0 a 10
NotaE E
Caso 11
NotaE D
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
TS Tipo de servicio Letra que puede ser D, P o N
NP Numero de personas a trasladar Nmero entero entre 1 y 5
Km Kilmetros recorridos Nmero real POSITIVO con 2
decimales
TD1 Tarifa a pagar por el serv. distrital 1 Nmero constante igual a 3.00
TD2 Tarifa a pagar por el serv. distrital 2 Nmero constante igual a 2.15
TP1 Tarifa a pagar por el serv. provincial 1 Nmero constante igual a 1.70
TP2 Tarifa a pagar por el serv. provincial 2 Nmero constante igual a 1.20
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
NT Nmero de tramos a cobrar Nmero entero|
Leer TS
Leer NP
Leer Km
NT Entero(Km/5)
Si (Km/5) NT > 0 Entonces NT NT+1
Inicio
TD10.19 TD20.00
TP10.04 TP20.07
TN10.10 TN20.10
Solucin
TS, NP, KM
NTEntero(Km/5)
No 1
TS=D Si
NP<=2
Si No
MPRedondear(NT*TD MPRedondear(NT*TD
No 1*NP, 2) 2*NP, 2)
TS=P Si
NP<=2
Si No
Solucin
MPRedondear(NT*TP MPRedondear(NT*TP
No 1*NP, 2) 2*NP, 2)
TS=N Si
NP<=2
Si No
No MPRedondear(NT*TN MPRedondear(NT*TN
1*NP, 2) 2*NP, 2)
2
MP 2
Fin
Leer TS
Leer NP
Leer Km
NT Entero(Km/5)
Si (Km/5) NT > 0 Entonces NT NT+1
Si TS= D Entonces
Si NP<=2 Entonces
MP Redondear(NT*TD1*NP, 2)
De lo contrario
MP Redondear(NT*TD2*NP, 2)
Fin de Si
De lo contrario Si TS=P Entonces
Si NP<=2 Entonces
MP Redondear(NT*TP1*NP, 2)
De lo contrario
MP Redondear(NT*TP2*NP, 2)
Fin de Si
De lo contrario
Si NP<=2 Entonces
MP Redondear(NT*TN1*NP, 2)
De lo contrario
MP Redondear(NT*TN2*NP, 2)
Fin de Si
Fin de Si
Ejercicio N4.- Escribir un algoritmo que calcule el monto que se pagar por el alquiler de
una computadora, por una hora de uso en el laboratorio de un Instituto dedicada a la
enseanza, si este depende de las siguientes condiciones:
1. Si pertenece al Instituto (clase I)
Si es alumno (subclase A)
Ejercicio N5.- Escribir un algoritmo que permita realizar una declaracin del impuesto al
valor de patrimonio predial, para lo cual se necesitan los siguientes datos:
El rea del terreno.
El rea construida.
Ejercicio N1.- Un Banco otorga un prstamo con la condicin que se le devuelva el dinero
de la siguiente manera:
Los pagos se realizarn siempre al final de cada mes.
Mientras el saldo financiado sea igual a mayor a S/. 1,000.00 la cuota mensual que se
pagar estar formada por:
SOLUCIN:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
C Monto dinerado que se constituye Nmero real positivo con 2
en la obligacin del deudor. decimales
TEM Tasa efectiva mensual que es dato Nmero constante igual a 0.02
del problema
pA Porcentaje de amortizacin Nmero constante igual a 0.10
Inicio
Mes, C, I, A, R
TEM 0.02
pA 0.10
1
Mes, I, A, R, C
Solucin
MesMes+1
IRedondear(TEM*C,2)
C>1000 Si ARedondear(pA*C,2)
RI+A
CC-A
No
MesMes+1
IRedondear(TEM*C,2)
AC
RI+A
CC-A
Mes, I, A, R, C
Fin
Ejercicio N1.- Cuenta una historia, que hace muchos aos existi en Per una empresa
que ofreca duplicar los ahorros a quienes confiaban su dinero a ellos. En el brochure
informativo que publicitaba dicha actividad se lea lo siguiente:
Abra su cuenta a plazos a un ao (360 das) con un mnimo de US$ 1,000.00.
Nosotros le garantizamos un inters efectivo de 100% al ao.
Al renovar su cuenta a plazo por un ao ms, se le capitalizarn sus intereses en la
misma cuenta y se le cobrar un pequeo monto el cual nunca ser mayor a US$
20.00 por Gastos de Administracin.
Si retira su dinero antes de los 360 das pactados, perder todos los intereses
ganados durante dicho ao.
Ricardo Salaverry, que no conoca nada de Finanzas y tuvo un hijo, se emocion con el
ofrecimiento y decidi abrir una cuenta a nombre de su pequeo hijo para que cuando su
hijo cumpla 18 aos pueda vivir como un verdadero millonario=( lo piensa con
lgrimas en ojos.. Bueno, resulta que despus de haber soportado el trajn de 12
aos de renovaciones constantes, el gobierno de turno cerr la empresa por considerarlos
sospechosos de aplicar el popular Mtodo de la Pirmide Financiera.
Ricardo, al enterarse de la noticia, piensa: Que pena, en fin, slo eran US$ 1,000 as que
no perd mucho que digamos..; sin embargo, busca entre sus documentos las
renovaciones del depsito para poder empadronarse y reclamar su dinero, y descubre
que slo se haba acercado a recibirlos en los tres primeros aos, por lo que desea que le
ayudemos a crear un algoritmo que permita calcular el monto de dinero que tena
acumulado a la fecha y que debe reclamar.
SOLUCION:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
C Inversin inicial Nmero real positivo con 2
decimales
TEA Tasa efectiva anual Nmero real positivo
GA Gasto de administracin Nmero real positivo con 2
decimales
N Nmero de aos a invertir Nmero entero positivo pequeo
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
NAgnos Nmero de aos transcurridos Nmero entero pequeo
ALGORITMO Pirmide
INICIO
Repetir
Leer C
Si No (C>0) Entonces
Escribir Dato mal ingresado
Fin de Si
Hasta (C>0)
Repetir
Leer TEA
Si No (TEA>0) Entonces
Escribir Dato mal ingresado
Fin de Si
Hasta (TEA>0)
Repetir
Leer GA
Si No (GA>0) Entonces
Escribir Dato mal ingresado
Fin de Si
Hasta (GA>0)
Repetir
Leer N
Si No (N>0) Entonces
Escribir Dato mal ingresado
Fin de Si
NAgnos 0
Repetir
NAgnos NAgnos + 1
S Redondear(C * (1 + TEA) GA, 2)
CS
Hasta NAgnos = N
Escribir Monto acumulado =, S
FIN
Inicio
C, TEA, GA, N, S,
NAgnos
No (C>0) si
Dato mal ingresado
No
No
C>0
Si
TEA
Solucin
No (TEA>0) si
Dato mal ingresado
No
No
TEA>0
Si
GA
No (GA>0) si
Dato mal ingresado
No
No
GA>0
Si
Pg 2
Pag 2
No (N>0) si
Dato mal ingresado
No
No
N>0
Si
Solucin
Nagnos0
NagnosNAgnos + 1
SRedondear(C*(1+TEA)GA, 2)
CS
No
Nagnos=N
Si
Fin
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
AgnoIni Ao en donde se conoce a la Nmero entero positivo constante =
poblacin inicial 2009
PobIni Poblacion inicial Nmero entero positivo constante =
29000000
pCre % de crecimiento de la poblacion Nmero real positivo constante =
0.03
PobFin Poblacion final Nmero entero positivo constante =
50000000
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
NAgnos Contador de aos transcurridos Nmero entero
Inicio
AgnoFin, NAgnos
AgnoIni2 009
PobIni29 000 000
pCre0.03
PobFin50 000 000
NAgnos0
NAgnosNAgnos+1
Solucin
PobIniRedondear(PobIni + PobIni*pCre, 0) No
PobIni>=PobFin
Si
AgnoFinAgnoIni + NAgnos
AgnoFin
Fin
Repetir
Leer AgnoIni
Si No ((AgnoIni>=2009) Y (AgnoIni-Entero(AgnoIni)=0)) Entonces
Escribir Dato mal ingresado, vuelva a intentarlo..
Fin de Si
Hasta (AgnoIni>=2009) Y (AgnoIni-Entero(AgnoIni)=0)
Repetir
Leer PobIni
Si No ((PobIni>0) Y (PobIni-Entero(PobIni)=0)) Entonces
Escribir Dato mal ingresado, vuelva a intentarlo..
Fin de Si
Hasta (PobIni>0) Y (PobIni-Entero(PobIni)=0)
Repetir
Leer pCre
Si No (pCre>0) Entonces
Escribir Dato mal ingresado, vuelva a intentarlo..
Fin de Si
Hasta pCre>0
Repetir
Leer PobFin
Si No ((PobFin>PobIni) Y (PobFin-Entero(PobFin)=0)) Entonces
Escribir Dato mal ingresado, vuelva a intentarlo..
Fin de Si
Hasta (PobFin>PobIni) Y (PobFin-Entero(PobFin)=0)
Inicio
AgnoIni
No (AgnoIni>=2009) si
Dato mal ingresado
No
No
AgnoIni>=2009
Si
PobIni
Solucin
No (PobIni>0) si
Dato mal ingresado
No
No
PobIni>0
Si
pCre
No (pCre>0) si
Dato mal ingresado
No
No
pCre>0
Si
Pg 2
Pg 2
PobFin
No (PobFin>PobIni) si
Dato mal ingresado
No
No
PobFin>PobIni
Si
NAgnos0
Solucin
NAgnosNAgnos+1
PobIniRedondear(PobIni + PobIni*pCre, 0) No
PobIni>=PobFin
Si
AgnoFinAgnoIni + NAgnos
AgnoFin
Fin
Ejercicio N3.- Escribir un algoritmo que sirva para controlar los ingresos que se producen
en la caja de un teatro, si se sabe que el precio de venta de las entradas depende de los
siguientes criterios:
Ejercicio N4.- Una importante empresa desea realizar una encuesta entre la poblacin de
Lima, en la cual se preguntar a cada persona por su EDAD, SEXO, si posee o no EMPLEO
y el SUELDO que percibe (si es que tiene empleo). Se pide escribir un algoritmo que lea
para cada persona que se encueste, lo siguiente:
SEXO : El cual corresponder a M si es de gnero masculino, y F en caso sea
femenino.
EDAD : Valor en aos expresado como nmero entero. Considerar edad mxima de
65 aos.
EMPLEO : El cual corresponder a S si es que si tiene empleo y N en caso contrario.
SUELDO : En caso de tener empleo, lea un valor real positivo con a lo ms dos dgitos.
No se sabe a cuantas personas se va a encuestar, al final se deber preguntar si existen
ms datos S o No (S o N) y de acuerdo a las respuestas, se deber imprimir los
siguientes resultados:
Masculino Femenino
Empleo? < 30 >= 30 < 30 >= 30
aos aos aos aos
No tiene % % % %
S tiene % % % %
Sueldo
Promedio
Adems deber informar la edad y el gnero de los que ganan ms y menos que los
dems.
RENDIMIENTO BONO
Hasta 08 0%
de 09 a 11 5%
de 12 a 13 12%
de 14 a 17 20%
de 18 a 19 50%
20 100%
Se pide escribir un algoritmo que calcule y muestre cual ser el monto total que por bonos
desembolsar la empresa al final del ao, si se sabe que el bono base es de S/.
10,000.00 y que se deber seguir preguntando por los rendimientos hasta que no exista
ms informacin de empleados que procesar.
Ejercicio N6.- Se desea hacer una encuesta entre los turistas que acuden a visitar las
ruinas del Seor de Sipn, con el fin de brindarles un mejor servicio en el idioma nativo de
cada uno de ellos.
Para ello a cada uno de los turistas se les pide como datos:
SEXO : El cual corresponder a M si es de gnero masculino, y F en caso sea
femenino.
EDAD : Valor en aos expresado como nmero entero.
IDIOMA : El cual registra cualquiera de los siguientes idiomas:
(1) si es espaol.
(2) si es ingls.
(3) si es francs.
(4) si es italiano.
n
Ejercicio N7.- Se si sabe que usted invierte un capital C TNA
S C * 1
dlares a una tasa nominal anual de TNA con capitalizacin m
diaria, se pide escribir un algoritmo que permita calcular y mostrar NDasTNA
el da en el que valor futuro acumulado sea igual o superior a una m
NDasCap
cantidad de ahorro deseado S dada como dato. Utilice
NDasInv
estructuras de control repetitivas y las siguientes frmulas: n
NDasCap
NDasInv
360
S C * 1 TEA
Ejercicio N9.- Perico invierte US$ 1,000.00 dlares a una tasa efectiva anual del 8%;
Joaqun invierte US$ 1,500.00 a una tasa efectiva anual del 5%. Escriba un algoritmo que
permita conocer el da en el que el monto acumulado de la inversin de Perico supera a la
de Joaqun. Utilice estructuras de control repetitivas y la frmula del problema anterior
para calcular el valor futuro S al finalizar cada da. Luego replantee el algoritmo, de tal
modo que pueda utilizarse para cualquier par de montos y tasas de rendimiento.
Ejercicio N11.- Escribir un algoritmo que teniendo como datos todos los tems que
componen la estructura de costos para producir un producto, as como su clasificacin
respectiva (si es fijo F o variable V) y el valor venta del mismo, calcule y muestre el
punto de equilibrio en unidades y en nuevos soles.
Ejercicio N12.- Escribir un algoritmo que permita calcular el valor de la siguiente serie:
S = 1 + 1/2 +1/4 + 1/8 + 1/16 +....
Si se sabe que el clculo debe detenerse cuando un trmino a agregar a la serie sea
menor o igual a 0.0000001
Ejercicio N13.- Escribir un algoritmo que permita calcular el valor de la siguiente serie:
S = 1/2 + 3/4 + 5/8 + 7/16 + 9/32 +....
Si se sabe que el clculo debe detenerse cuando la diferencia entre dos trminos
sucesivos sea menor o igual a 0.0000001
Ejercicio N14.- Cuenta una historia popular, que un matemtico cre un algoritmo para
demostrar que el hombre poda llegar de la Tierra a la Luna ascendiendo en una montaa
de papel. El procedimiento que indicaba es el siguiente:
1. Considerar que la distancia de la tierra a la Luna es D Kilmetros.
2. Tomar una hoja de papel (lo suficientemente grande por supuesto) de espesor P
centmetros, y colocarla sobre una superficie horizontal, con lo que tendra una
montaa de papel de slo una hoja de espesor P centmetros.
3. Luego repetir lo siguiente:
a. Cortar la montaa de papel (inicialmente compuesta de una sola hoja)
verticalmente por la mitad y colocar una de las partes sobre la otra.
b. Adherir las hojas en contacto, con un pegamento de espesor E" centmetros, con
lo cual tendra una montaa del doble de espesor que la anterior 2*P ms un E.
c. Regresar al punto a. y repetir el procedimiento, hasta conseguir cubrir una altura
Ejercicio N17.- Escribir un algoritmo que determine el nmero de dgitos que tiene un
nmero ingresado. El numero debe encontrarse en el intervalo: 1... 60,000.
Ejercicio N18.- Escribir un algoritmo que solicite al usuario introduzca un nmero y que
lo imprima en orden inverso, es decir, para una entrada de 592, la salida debe ser 295. El
nmero deber tener a lo ms 4 dgitos. (Su algoritmo debe utilizar una variable para
Ejercicio N19.- El estado de Patolandia exige al final del ao fiscal, el pago del impuesto
a la renta en forma escalonada y en funcin del valor de la Unidad Impositiva Tributaria
(U.I.T.) los ingresos totales anuales del contribuyente, as tenemos que para:
% C.I. : Porcentaje del valor del bien que se paga como cuota inicial.
TEA : Tasa Efectiva Anual que se cobra por el crdito y que ser constante.
El Saldo Inicial ser igual al prstamo para el primer perodo, pero para los dems
perodos ser igual al saldo final del perodo anterior.
El Inters mensual ser igual al producto del saldo inicial por la TEM
TEM * 1 TEM N
Cuota Prstamo *
1 TEM 1
N
Siendo:
o TEM : Tasa efectiva mensual.
o N : Nmero total de perodos de pago.
El Saldo Final se calcula como la resta del saldo inicial menos la amortizacin.
Se sabe que este proceso descrito se deber continuar hasta cubrir tantas lneas
como nmero de cuotas a pagar existan.
Se pide que escriba un algoritmo que sirva para implementar dicho mtodo de pago, el
mismo que deber leer los datos y calcular y mostrar el contenido de cada una de las N
lneas del plan de pago. Como parte del proceso ser obligatoria la consistencia o
validacin de los datos de entrada.
Ejercicio N21.- Escribir un algoritmo que sirva para controlar los ingresos que se producen
en la caja de un teatro, si se sabe que el precio de venta de las entradas depende de los
siguientes criterios:
Adultos: Aquellos que tengan por lo menos 18 aos.
Tipo P o Platea S/. 50.00
Tipo M o Mezzanine S/. 60.00
Menores: Aquellos que tengan menos de 18 aos.
Tipo P o Platea S/. 30.00
Tipo M o Mezzanine S/. 40.00
Nota 1.- En este primer problema deber tener el cuidado de consistenciar o validar el
ingreso de datos, de acuerdo a las condiciones dadas en el problema.
Nota 2.- Asuma que el sistema se usar slo si existen personas interesadas en ingresar
al teatro y que no existen limites a la capacidad en Platea ni en Mezzanine.
Ejercicio N1.- Escribir un algoritmo que sirva para calcular y mostrar la suma de los
primeros 100 nmeros enteros positivos, as como sus respectivos cuadrados y cubos.
Luego modifique su algoritmo para que pueda funcionar para el caso en que se tenga los
lmites a sumar como nmeros enteros positivos
SOLUCIN 1:
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
A Nmero inicial Nmero constante igual a 1
B Nmero final Nmero constante igual a 100
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
i Contador de nmero a tomar en Nmero entero
cuenta
Inicio
A, B, I, Suma, Suma2,
Suma3
A0
B0
Si
Suma 0
Suma2 0
Solucin
Suma3 0
iA hasta B
Suma Suma + i
Suma2 Suma2 + i*i
Suma3 Suma3 + i*i* i
Siguiente i
DATOS DE ENTRADA
Nombre Descripcin Tipo de dato y restriccin
A Nmero inicial Nmero entero mayor o igual a 0
B Nmero final Nmero entero mayor a A
DATOS INTERMEDIOS
Nombre Descripcin Tipo de dato
i Contador de nmero a tomar en Nmero entero
cuenta
Repetir
Leer A
Si No (A>=0) entonces
Escribir Valor mal ingresado
Fin de Si
Hasta A>=0
Repetir
Leer B
Si No (B>A) entonces
Escribir Valor final mal ingresado
Fin de Si
Hasta B>A
Inicio
A, B, I, Suma, Suma2,
Suma3
No (A>0) si
Dato mal ingresado
No
No
A>0
Si
No (B>A) si
Dato mal ingresado
Solucin
No
No
B>A
Si
Suma 0
Suma2 0
Suma3 0
iA hasta B
Suma Suma + i
Suma2 Suma2 + i*i
Suma3 Suma3 + i*i* i
Siguiente i
Ejercicio N3.- Escribir un algoritmo que utilice estructuras de control repetitivas y que
sirva para calcular el factorial de un nmero entero positivo:
x = n!
Ejercicio N4.- Escribir un algoritmo que teniendo como datos las utilidades generadas
para cada uno de los 7 das de la semana, calcule y muestre el promedio de las utilidades
positivas. Un ejemplo sera:
Da 1 = 35
Da 2 = 10
Da 3 =5
Da 4 = -4
Da 5 = 20
Da 6 = 36
Da 7 = 31
Promedio = 35.5
Ejercicio N7.- Una tienda comercial al menudeo acaba de recibir una nueva remesa de
camisas. Las investigaciones preliminares del mercado, indican que las utilidades que se
pueden obtener a un precio de venta dado P.V. estn dadas por la frmula:
Ejercicio N8.- Suponga que un agricultor dispone de un terreno de una hectreas (un
lote de terreno de 100 x 100 metros) y dispone de material para construir una cerca de a
lo ms 200 metros, pero desea que el rea rectangular creada para su futuro vivero sea la
mayor posible, por lo que le solicita que escribir un algoritmo que le sirva para calcular y
mostrar una tabla donde se muestren todas las combinaciones posibles de largo L por
ancho A (con medidas enteras) para el rea posible a cercar, y su respectiva rea
mxima. Puede auxiliarse del siguiente esquema geomtrico:
L
Deber tomar en cuenta que el permetro del vivero cercado sea igual a los 200 metros de
material que posee.
Ejercicio N9.- Escribir un algoritmo que teniendo como datos la fecha actual ingresada
como: da, Mes y Ao, calcule y muestre el nmero de das transcurridos desde el 31 de
diciembre del ao anterior y los que faltan transcurrir hasta el fin del ao. Deber asumir
que los aos bisiestos (mltiplos de 4) poseen en el mes de febrero 29 das (asuma slo
fechas de este siglo).
Ejercicio N12.- Nuestro contador est ante un dilema: dejar de escribir con la mano el
monto expresado con palabras de un cheque que gire la empresa, por lo que nuestra
funcin ser ayudarlo escribiendo un algoritmo que teniendo como dato un nmero entre 0
y 1000,000.00 y la moneda en que se girar el cheque, imprima el nmero en letras.
Recuerde que los nmeros cardinales superiores a treinta utilizan la conjuncin y
cuando no corresponde a una decena; adems, en algunos casos que se renen palabras
se requiere acentuacin (diecisis, veintids, veintitrs, veintisis). Algunos ejemplos que
ilustran los casos anteriormente expuestos son: 15 (quince), 18 (dieciocho), 57 (cincuenta
y siete), 111 (ciento once), 229 (doscientos veintinueve), 2934 (dos mil novecientos treinta
y cuatro). Por ejemplo si:
Ingrese monto : 10,258.21
Ingrese moneda : N Nuevos Soles
Mostrar : Diez mil doscientos cincuenta y ocho y 21/100 Nuevos Soles
Ejercicio N13.- Escribir un algoritmo que sirva para calcular el doble factorial de un
nmero entero positivo, si se sabe que este se calcula como:
Si n es par : n!! = (n)*(n-2)* ............ *1
Si n es impar : n!! = (n)*(n-2)* ............ *2
e-informaticsbook
4.1.1 Programa
Un programa es un conjunto ordenado de instrucciones con un propsito determinado que
cumplen con las reglas semnticas y sintcticas de un lenguaje de programacin. El
objetivo del programa es procesar datos generando informacin para el usuario. Ver
Figura 1
Datos Informacin
Proceso
Input
Input Output
Output
1
Autora de teora: Bethy de la Cerna Garca
Autor: Jos M. Martn Senmache S. Pgina 79
4.1.2 Instruccin
Una instruccin es un conjunto de caracteres que especifica una operacin a realizarse.
Cada instruccin se escribe en una lnea, pidindose colocar ms de una en una lnea
separndolas por el carcter : (dos puntos).
Las instrucciones pueden ser ejecutables o no ejecutables:
Ejecutables, indicarn al programa que hacer (Ej. sumar, bifurcar, finalizar, etc.)
4.1.3 Constantes
Las constantes son valores predefinidos que no varan durante la ejecucin del programa.
Las constantes se declaran utilizando la instruccin CONST, el nombre de la constante
seguido del valor de la constante, de esta manera:
4.1.4 Variables
Una variable es un nombre asociado a un dato o conjunto de datos que se almacenarn
en la memoria principal del computador.
Las variables son elementos empleados en las instrucciones de un programa que pueden
cambiar de valor durante la ejecucin de un programa.
Los nombres de las variables pueden estar formados por letras y por dgitos y algunos
otros caracteres especiales, como por ejemplo el _ (guin bajo).
Para declarar muchas variables en una lnea, debe indicar para cada una de ellas el
tipo de dato correspondiente y separarlas por comas ,
Tipos de datos Numricos: Son datos que consisten en nmeros que pueden ser
procesados matemticamente por operadores de suma, resta, multiplicacin, divisin y
otros.
En Visual Basic, los datos numricos son:
Enteros: Byte, Integer y Long
Reales: Single y Double
Ejemplo:
Dim Nota As Integer
Dim Dato_1 As Byte
Dim X As Single, Y As Single
2
Para exigir la declaracin de variables en un proyecto escriba en la parte General Declarations la instruccin : Option
Explicit
Operacin Smbolo
Exponenciacin ^
Multiplicacin *
Divisin /
Divisin entera (Cociente de la divisin entera) \
Mdulo aritmtico (Residuo de la divisin entera) MOD
Suma y Diferencia + -
Tabla 3 Operadores aritmticos
Ejemplo:
Dados 2 nmeros enteros: 12 y 8
Resto = 12 MOD 8 el valor de Resto ser 4
Resto = 8 MOD 12 el valor de Resto ser 8
Cociente = 12 \ 8 el valor de Cociente ser 1
Cociente = 8 \ 12 el valor de Cociente ser 0
Nota: El smbolo & se usa para unir cadenas de caracteres (equivale a sumar o
concatenar cadenas de caracteres).
Operador Smbolo
Negacin NOT
Conjuncin AND
Disyuncin OR
Tabla 5 Operadores lgicos
Estos operadores, se encargan de examinar relaciones y operaciones lgicas
(boolenas), dando como resultado uno de los siguientes valores: verdadero o falso (True
/ False).
Funcin Descripcin
Arco Tangente de x. (Angulo x en
ATN(x)
radianes)
SIN(x) Seno de x. (Angulo x en radianes)
COS(x) Coseno de x. (Angulo x en radianes)
TAN(x) Tangente de x. (Angulo x en radianes)
ABS(x) Valor absoluto de x.
FIX(x) INT(x) Parte entera de x.
ROUND(x, n) Redondea x a n decimales
LOG(x) Logaritmo natural de x, con x>0.
SGN(x) Devuelve el signo de x.
SQR(x) Raz cuadrada de x, con x>0
EXP(x) Exponencial de x.
RND Nmero aleatorio entre [0, 1[
Tabla 6 Funciones matemticas estndar
Asc(Cadena)
Devuelve el cdigo de carcter correspondiente a la primera letra de una cadena de
caracteres.
Chr(cdigoCarcter).
Devuelve el carcter asociado con el cdigo de carcter especificado.
Nmero est en el intervalo de 0 a 255, inclusive, que identifica a un carcter.
Parte Descripcin
Inicio Expresin numrica que establece la posicin inicial para cada bsqueda. Si
se omite, la bsqueda comienza en la posicin del primer carcter. Si inicio
contiene Null, ocurre un error. Se requiere inicio si se especifica comparar.
cadena1 Expresin de cadena en la que se busca.
cadena2 Expresin de cadena buscada.
comparar Nmero que especifica el tipo de comparacin de cadena. El argumento
comparar se puede omitir, puede ser 0 1, o bien puede ser el valor de la
Valores devueltos:
Si InStr devuelve
cadena1 es de longitud cero 0
cadena1 es Null Null
cadena2 es de longitud cero inicio
cadena2 es Null Null
cadena2 no se encontr 0
cadena2 se encuentra dentro de Posicin en la que se halla la correspondencia
cadena1
inicio > cadena2 0
Lcase(cadena).
Devuelve una cadena que se ha convertido a minscula.
Left(cadena, longitud).
Devuelve un nmero especificado de caracteres del lado izquierdo de una cadena.
Len(cadena | nombrevariable).
Devuelve el nmero de caracteres en una cadena o el nmero de bytes requerido para
almacenar una variable.
Right(cadena, longitud).
Devuelve un nmero especificado de caracteres del lado derecho de una cadena.
Space(nmero).
Devuelve una cadena que consiste en un nmero especificado de espacios.
Str(nmero).
Devuelve una representacin de cadena de un nmero.
El argumento con nombre nmero es cualquier expresin numrica vlida.
Cuando los nmeros se convierten a cadenas, siempre se reserva un espacio a la
izquierda para el signo del nmero. Si el nmero es positivo, la cadena devuelta contiene
un espacio a la izquierda y el signo ms se da por supuesto.
Use la funcin Format para convertir valores numricos en valores con formato de fecha,
hora, moneda o en otros definidos por el usuario. A diferencia de Str, la funcin Format no
incluye un espacio a la izquierda para el signo del nmero.
String(nmero, carcter).
Devuelve una cadena de caracteres que se repite de la longitud especificada.
La sintaxis de la funcin String tiene estas partes de argumento con nombre:
Parte Descripcin
nmero Longitud de la cadena devuelta. Si nmero no contiene Null, se devuelve Null.
carcte Cdigo de carcter que especifica el carcter o expresin de cadena cuyo
r primer carcter se usa para construir la cadena devuelta. Si carcter contiene
Null, se devuelve Null.
Si se especifica para carcter un nmero mayor que 255, String convierte el nmero en un
cdigo de carcter vlido usando la frmula:
carcter Mod 256
Ucase(cadena).
Devuelve una cadena que se ha convertido en mayscula. Slo se convierten en
mayscula las letras minsculas. Las letras maysculas o los caracteres que no son letras
no sufren cambios.
Date.
Devuelve la fecha actual del sistema.
Day(fecha).
Devuelve un nmero entero entre 1 y 31, inclusive, que representa el da del mes.
Hour(horadigital).
Devuelve un nmero entero entre 0 y 23, inclusive, que representa la hora del da.
El argumento con nombre horadigital se limita a una hora o nmeros y cadenas, (en
cualquier combinacin), que puedan representar una hora. Si horadigital contiene datos
no vlidos, se devuelve Null.
Minute(hora).
Devuelve un nmero entero entre 0 y 59, inclusive, que representa el minuto de la hora.
Month(fecha).
Devuelve un nmero entero entre 1 y 12, inclusive, que representa el mes del ao.
Second(hora).
Devuelve un nmero entero entre 0 y 59, inclusive, que representa el segundo del minuto.
Time.
Devuelve Date indicando la hora actual del sistema. Use Time para establecer la hora del
sistema.
Year(fecha).
Devuelve un nmero entero que representa el ao.
El argumento fecha es cualquier expresin numrica o expresin de cadena (en cualquier
combinacin), que puedan representar una fecha. Si fecha contiene datos no vlidos
devuelve Null.
Parte Descripcin
expr Expresin que se desea evaluar.
parteverdade Valor o expresin devuelta si expr es True.
ra
partefalsa Valor o expresin devuelta si expr es False.
Propiedad.- Son caractersticas que definen a un objeto, en el caso del auto, las
propiedades son: su color, peso, medidas, etc. En el caso de una factura sus
propiedades seran: Color, tamao, fecha de emisin, nmero, etc.
3
Autora de Teora: Bethy de la Cerna Garca
Autor: Jos M. Martn Senmache S. Pgina 92
Objeto Cells(fila, columna)
Sirve como el objeto Range, para referenciar una celda o un rango de celdas, pero en
lugar de utilizar la referencia de la forma A1, B1, F3, etc., utiliza la fila y la columna que
ocupa la celda dentro de la hoja (u objeto WorkSheet).
Tome en cuenta que si usa la referencia WorkSheets(Num), Num indica la posicin fsica
de la Hoja dentro del Libro, y cambia al cambiar de posicin la Hoja dentro del conjunto de
hojas.
Cuando se usa la referencia HojaNum, el Num es fijo, no cambia aunque se mueva la
Hoja a otra ubicacin dentro del Libro.
O tambin, si se tiene que Mensaje es una variable del tipo String, entonces:
ActiveSheet.Range(Cells(1, 1), Cells(8, 2)) = Mensaje o
ActiveSheet.Range("A1:B8") = Mensaje
Range(Cells(1, 1), Cells(8, 2)).Value = Mensaje o Range("A1:B8") = Mensaje
Hoja1.Range(Cells(1, 1), Cells(8, 2)) = Mensaje o Hoja1.Range("A1:B8")= Mensaje
Worksheets(1).Cells(1, 3) = Mensaje o Range("C1")= Mensaje
Cells(1, 3) = Mensaje o Range("C1")= Mensaje
Conjuntos
Un conjunto es una coleccin de objetos del mismo tipo, es una estructura o arreglo de
objetos. Por ejemplo, todas las hojas de un libro de trabajo forman un conjunto, el
conjunto WorkSheets.
Cada elemento individual del conjunto WorkSheets, se referencia por un ndice o su
ubicacin en el Libro Excel, de esta forma, por la ubicacin u posicin de las hojas dentro
del libro, estas sern referidos como: WorkSheets(1), WorkSheets(2) y WorkSheets(3).
Objetos de Objetos.
Es muy habitual que una propiedad de un objeto sea otro objeto. Siguiendo con el auto,
una de las propiedades del auto es el motor, y el motor es un objeto con propiedades
como cilindrada, potencia, nmero de vlvulas, etc. y sus mtodos son
aumentar_revoluciones, mover pistones, etc.
En Excel, el objeto WorkSheets tiene la propiedad Range que es un objeto, Range tiene
la propiedad Font que es tambin un objeto y Font tiene la propiedad Bold (negrita).
Tome en cuenta este aspecto pues utilizaremos frecuentemente Propiedades de un objeto
que sern tambin Objetos. Dicho de otra forma, hay propiedades que devuelven objetos,
por ejemplo, la propiedad Range de un objeto WorkSheet devuelve un objeto de tipo
Range.
Name: cbEvaluar
Caption: Evaluar
Si desea dar una mejor apariencia a su botn
puede modificar el tipo de letra con la
propiedad Font, color de fondo con la
propiedad BackColor, y el color de la letra con
la propiedad ForeColor.
5. El Botn de
Comandos
cbEvaluar
quedar tal
como se
muestra a
continuacin:
Ejercicio N1.- Construya la siguiente hoja e ingrese los siguientes datos y objetos:
Algoritmo Camisas
Inicio
Leer PrecioUnitario
Leer Cantidad
Total PrecioUnitario * Cantidad
Escribir MontoTotal
Fin
Paso 4: Grabar
Paso 5: Programar
Luego haga doble clic en el Botn de Comandos cbCalcular para ingresar en la Ventana
de Cdigo en Visual Basic, a continuacin, siguiendo el algoritmo planteado y
empleando la sintaxis del Visual Basic, programe el subprograma asociado al Botn de
Comandos.
Regrese a la hoja Excel y desactive el Modo de Diseo, haciendo clic sobre el icono Modo
Diseo y haciendo clic sobre el Botn de Comandos Calcular podr verificar que el
resultado se mostrar en la celda B4.
Ejercicio N1.- Escribir una macro que sirva para calcular el costo de la construccin de
una piscina que posee la forma de un Prisma Recto con base rectangular, si se tienen
como datos los lados de la base Largo y Ancho y Altura expresados en metros, el
costo de la excavacin por metro cbico y el costo del recubrimiento por metro cuadrado
en Nuevos Soles, si se sabe que se deben aplicar las siguientes frmulas:
Volumen L arg o * Ancho * Alto
Area 2 * (L arg o Ancho ) * Alto L arg o * Ancho
CostoArea Area * CostoRe cubrimientoxMt 2
CostoVolumen Volumen * CostoExcavacionxMt 3
Costo CostoArea CostoVolumen
SOLUCIN:
Option Explicit
Private Sub cbCalcular_Click()
Dim L As Single
Dim A As Single
Dim H As Single
Dim CExm3 As Single
Dim CRxm2 As Integer
Dim Vol As Single
Dim Area As Single
Dim CostoVol As Single
Dim CostoArea As Single
Dim Costo As Integer
Ejercicio N2.- En un local de juego de bingo se han vendido "N" tarjetas a un Precio de
Venta "PV" Nuevos Soles cada una. Si para contabilizar los Ingresos/Egresos se procede
como sigue:
1. Teniendo el Precio de Venta se calcula el IGV (Impuesto General a las Ventas). Se sabe
que el procentaje del IGV es constante e igual a 18 %.
2. Se calcula el Valor Venta unitario como el Precio de Venta menos el IGV.
3. Se calcula el Valor Venta Recaudado como el producto del Valor Venta Unitario por el
Nmero de tarjetas vendidas.
4. Se entrega un Premio Mayor equivalente al 50% del Valor Venta Recaudado.
5. Se entrega un Premio Consuelo equivalente al 15 % del Valor Venta Recaudado.
6. Se calcula la Utilidad Bruta como el Valor Venta Recaudado menos la suma de los
premios.
7. Se calcula el Fondo de Reinversin como el 10 % de la Utilidad Bruta.
8. Se calcula la Utilidad como la resta de la Utilidad Bruta menos el Fondo de Reinversin.
Autor: Jos M. Martn Senmache S. Pgina 101
Se pide crear una macro que:
Lea el nmero de bingos vendidos N y el precio de venta unitario PV,
Y, calcule los montos del IGV (Impuesto General a las Ventas), Premio Mayor, Premio
Consuelo, Utilidad Bruta, Fondo de Reinversin y Utilidad, que gener la actividad.
SOLUCIN:
Option Explicit
Ejercicio N3.- Craer una macro que teniendo como datos el valor presente C, la tasa
nominal TN, el tiempo en que est expresada NDiasTN, el perodo de capitalizacin
expresados en nmero de das NDiasPC y el tiempo (expresado en das) que se
invertir el dinero ND en un
certificado de depsito a plazo fijo
CDPF, sirva para calcular el valor
futuro S que se recibir al
vencimiento del mismo.
SOLUCIN:
Option Explicit
Private Sub CbCalcular_Click()
Dim C As Single
Dim TN As Single
C = Val(Range("B3"))
TN = Val(Range("B4"))
NDiasTN = Val(Range("B5"))
NDiasPC = Val(Range("B6"))
ND = Val(Range("B7"))
M = NDiasTN / NDiasPC
N = ND / NDiasPC
S = Round (C * (1 + TNP/M)^N, 2)
Range("B9") = S
End Sub
Ejercicio N4.- Crear una macro que teniendo como datos el valor presente C, la tasa
efectiva TE, el tiempo en la que se encuentra expresada NDiasTE y el tiempo que
demorar en devolverse un prstamo N (expresado en das), sirva para calcular el valor
futuro S a pagar al vencimiento del mismo. Podr utilizar la siguiente frmula financiera
para calcular el valor futuro a tasas efectivas:
360
N
S
TEA 1
C
ALGORITMO TCEA
INICIO
Leer S, C, NDiasInv
TEAPotencia (S/C,360/NDiasInv)-1
Escribir T.C.E.A. =, TEA
FIN
Haga clic aqu para abrir solucin de EJERCICIO 3.4.1 - 5.XLSM
ALGORITMO Euaciones
INICIO
Leer A, B, C, D, E, F, G
X (B*F - C*E) / (B*D - A*E)
Y (A*F - C*D) / (A*E - B*D)
Escribir X es =, X
Escribir Y es =, Y
FIN
Haga clic aqu para abrir solucin de EJERCICIO 3.4.1 - 06.XLSM
Ejercicio N8.- Crear una macro que permita calcular el nmero de la semana del ao en
la que nos encontramos, as como el nmero del da de dicha semana, si se tiene como
dato el nmero de das transcurridos desde el 31 de diciembre del ao anterior.
Por ejemplo: Si recibo como dato
que el nmero de das transcurridos
es 24, significa es hoy es el 24 de
enero y estamos en 3 dia de la
semana N4 (3 semanas de 7 das
ms 3 das de la semana 4)
Ejercicio N11.- Crear una macro que teniendo como datos el monto de un prstamo C,
la tasa efectiva anual TEA al cual est afecto, el nmero de cuotas en el que se
devolver n, y la frecuencia o nmero de das que existe entre pago y pago
NDiasPago, sirva para calcular el monto de la cuota R que se cancelar cada vez que
se acerque al acreedor a honrar su deuda, si se utiliza ao ordinario de 360 das. Podr
utilizar las siguientes frmulas:
NDiasPago
360
TEP 1 TEA 1
TEP * (1 TEP )n
R C*
n
(1 TEP ) 1
ALGORITMO Anualidad
INICIO
Leer C, TEA, NDiasPago, N
Para los algoritmos mostrados a continuacin y que corresponden a los ejercicios del
captulo pasado, se pide construir una hoja de clculo que utilizando Macros en Excel,
resuelva los problemas planteados. En todos los casos deber utilizar la opcin del men
Datos, Validacin, para consistenciar el ingreso de datos a la hoja de Excel.
Solucin:
Option Explicit
Private Sub cbCalcular_Click()
Const pIGV = 0.18
Dim C As Single
Dim pD As Single
Dim D As Single
Dim VV As Single
Dim IGV As Single
Dim PV As Single
C = Val(Range("B3"))
Ejercicio N2.- Craer una macro que teniendo como datos tres nmeros enteros
positivos, muestre el mayor y el menor. Luego modifique su algoritmo, de tal modo que se
puedan mostrar los tres nmeros de forma descendente.
ALGORITMO Ordenar
INICIO
Leer A, B, C
Mayor A
Menor A
Si (B>Mayor) Entonces
Mayor B
De lo contrario
Menor B
Fin de Si
Si (C>Mayor) Entonces
Mayor C
De lo contrario Si (C<Menor) Entonces
Menor C
Fin de Si
Escribir El Mayor es =, Mayor
Solucin:
Option Explicit
Private Sub cbCalcular_Click()
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim Mayor As Integer
Dim Menor As Integer
A = Val(Range("B3"))
B = Val(Range("B4"))
C = Val(Range("B5"))
Mayor = A
Menor = A
If (B > Mayor) Then
Mayor = B
Else
Menor = B
End if
If (C > Mayor) Then
Mayor = C
Elseif (C < Menor) Then
Menor = C
End if
Range("B7") = Mayor
Range("B8") = Menor
End Sub
Ejercicio N3.- Una tienda de automviles vende sus productos de acuerdo a la siguiente
escala:
COSTO DE IMPORTACIN MARGEN DE GANANCIA
Hasta 15,000 15 %
Mayor a 15,000 y hasta 20,000 20 %
Mayor a 20,000 y hasta 30,000 25 %
Mayor a 30,000 y hasta 50,000 27.5 %
Mayor a 50,000 30 %
Adems paga un I.S.C. de acuerdo a la siguiente escala:
CILINDRADA IMPUESTO SELECTIVO AL CONSUMO ISC
Hasta 1,000 5%
Mayor a 1,000 y hasta 2,000 7%
Mayor a 2,000 9%
El cual grava al costo de importacin
de automviles, impuesto que se
sumar al costo de importacin antes
de calcular el margen de ganancia.
Se pide, crear una macro que
teniendo como datos el costo de
importacin del vehculo y la
cilindrada del mismo, calcule y
muestre el Precio de Venta del
mismo, si se sabe que el % de I.G.V.
es 19%.
Deber tomar en cuenta las siguientes frmulas:
I.S.C. = Costo de importacin * %I.S.C.
Valor Venta = (Costo + I.S.C.) / (1 - %M.G.)
Precio de Venta = Valor Venta * (1 + %I.G.V.)
Si (Costo<15000) Entonces
pMG 0.15
De lo contrario Si (Costo>=15000) y (Costo<20000) Entonces
pMG 0.20
De lo contrario Si (Costo>=20000) y (Costo<30000) Entonces
pMG 0.25
De lo contrario Si (Costo>=30000) y (Costo<50000) Entonces
pMG 0.275
De lo contrario
pMG 0.30
Fin de Si
Si Cil <1500 Entonces
pISC 0.05
De lo contrario Si (Cil >=1500) y (Cil <2000) Entonces
pISC 0.07
De lo contrario
pISC 0.09
Fin de Si
pIGV 0.19
ISC pISC * Costo
VV (Costo+ISC)/(1-pMG)
IGV pIGV * VV
PV VV + IGV
Escribir Precio de Venta =, PV
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.2.1 - 3.XLSM
% Impuesto
Ingreso Anual en Nuevos Soles
a la renta
Hasta 7 UIT 0%
Mayor a 7 UIT y hasta 12 UIT 10%
Mayor a 12 UIT y hasta 30 UIT 20%
Mayor a 30 UIT 30%
ALGORITMO Patolandia
INICIO
Leer UIT, Ingresos, NHijos
Si (Ingresos<7*UIT) Entonces
IR 0.00 * Ingresos
De lo contrario Si (Ingresos>=7*UIT) y (Ingresos<12*UIT) Entonces
IR Redondear(0.00*7*UIT + 0.10*(Ingresos - 7*UIT), 2)
De lo contrario Si (Ingresos>=12*UIT) y (Ingresos<30*UIT) Entonces
IR Redondear(0.00*7*UIT + 0.10*5*UIT + 0.20*(Ingresos - 12*UIT), 2)
De lo contrario
Ejercicio N5.- Crear una macro que teniendo como dato una cantidad entera de soles,
imprima el menor nmero de billetes y monedas necesarias para formarla, suponiendo que
solamente hay billetes de 10, 20, 50, 100 y 200 soles y monedas de 1 sol.
Ejemplo. Ingrese cantidad > 357
Billetes de 200 soles :1
Billetes de 100 soles :1
Billetes de 50 soles :1
Monedas de 1 sol :7
Ejercicio N6.- Un trabajador recibe su sueldo normal por las primeras cuarenta y ocho
horas y se le paga 50% adicional por cada hora extra. Escriba un algoritmo que calcule e
imprima el pago al empleado basado en el sueldo normal y el nmero de horas
trabajadas.
ALGORITMO Planilla
INICIO
Leer PagoxHora, NHoras
Si (NHoras<=48) Entonces
ALGORITMO Comisiones
INICIO
Leer Vendedor, Venta
Si (Venta<=20000) Entonces
Comision Redondear(0.05*Venta, 2)
De lo contrario Si (Venta>20000) y (Venta<=40000) Entonces
Comision Redondear(0.05*20000 + 0.08*(Venta - 20000), 2)
De lo contrario
Comision Redondear(0.05*20000 + 0.08*20000 + 0.15*(Venta - 40000), 2)
Fin de Si
Escribir La comisin de , Vendedor, ser =, Comision
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.2.1 - 7.XLSM
Ejercicio N9.- En una universidad, los cargos para la colegiatura en estudios de maestra
son de US$ 40.00 por curso, con un cargo mximo de US$ 800.00, independientemente
del nmero de asignaturas tomadas. As, un estudiante que aprob 12 cursos pagara
US$ 480.00, mientras que el que tome 25 pagar US$ 800.00.
Se pide, crear una macro que teniendo como dato el nmero de materias cursadas,
calcule y muestre el costo de la colegiatura.
ALGORITMO Colegiatura
INICIO
Leer NCursos
CostoxCurso 40.00
Colegiatura NCursos*CostoxCurso
Si (Colegiatura>800.00) Entonces
Colegiatura 800.00
Fin de Si
Escribir Costo de la Colegiatura es =, Colegiatura
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.2.1 - 9.XLSM
Para los algoritmos mostrados a continuacin y que corresponden a los ejercicios del
captulo pasado, se pide construir una hoja de clculo que utilizando Macros en Excel,
resuelva los problemas planteados. En todos los casos deber utilizar la opcin del men
Datos, Validacin de datos, para consistenciar el ingreso de datos a la hoja de Excel.
SOLUCIN:
Option Explicit
Private Sub cbCalcular_Click()
Dim Nota As Single
Dim NotaE As String
Nota = Val(Range("B3"))
Select Case Nota
Case 0 To 10
NotaE = E
Solucin:
Option Explicit
Private Sub cbCalcular_Click()
Dim Tipo As String
Dim NP As Byte
Dim Kms As Integer
Dim Tarifa As Single
Dim NTramos As Integer
Dim MontoACobrar As Single
Tipo = Range("B3")
NP = Val(Range("B4"))
Kms = Val(Range("B5"))
Range("B7") = MontoACobrar
End Sub
Ejercicio N4.- Crear una macro que calcule el monto que se pagar por el alquiler de una
computadora, por una hora de uso en el laboratorio de un Instituto dedicada a la enseanza,
si este depende de las siguientes condiciones:
2. Si pertenece al Instituto (clase I)
Si es alumno (subclase A)
ALGORITMO Instituto
INICIO
Leer Clase, Subclase, NHoras
Si Clase=I Entonces
Segn sea Subclase hacer
Caso A
Leer Tipo
Si Tipo=M Entonces
MontoaPagar 0.50 * NHoras
De lo contrario
MontoaPagar 0.80 * NHoras
Fin de Si
Caso E
MontoaPagar 1.00 * NHoras
Caso D
MontoaPagar 0.00
Fin de Segn
De lo contrario
Segn sea Subclase hacer
Caso X
Si (NHoras<=5) Entonces
MontoaPagar 1.10 * NHoras
De lo contrario
MontoaPagar 1.10 * 5 + 1.00 * (NHoras-5)
Fin de Si
Caso O
Ejercicio N5.- Crear una macro que permita realizar una declaracin del impuesto al valor
de patrimonio predial, para lo cual se necesitan los siguientes datos:
El rea del terreno.
El rea construida.
El precio del terreno por metro cuadrado.
Sintaxis:
Repite un bloque de instrucciones cuando una condicin sea Verdadera.
Mientras CondicinLgica Hacer
Instruccin 1
....................
Instruccin n
Fin de Mientras
Sintaxis:
Do While CondicinLgica
Instruccin 1
Instruccin n
Loop
While CondicinLgica
Instruccin 1
Instruccin n
Wend
Ejercicio N1.- Un Banco otorga un prstamo con la condicin que se le devuelva el dinero
de la siguiente manera:
Los pagos se realizarn siempre al final de cada mes.
Mientras el saldo financiado sea igual a mayor a S/. 1,000.00 la cuota mensual que se
pagar estar formada por:
SOLUCIN:
Option Explicit
Private Sub cbCalcular_Click()
Do
SI = InputBox("Ingrese el valor del prestamo", "Ingreso de datos")
If SI < 0 Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de Error"
End If
Loop Until SI > 0
Range("B3") = SI
Do
TEM = InputBox("Ingrese Tasa efecvtiva mensual (TEM)", "Ingreso de datos")
If TEM < 0 Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de Error"
End If
Loop Until TEM > 0
Range("B5") = TEM
N=0
Do While (SI > 1000)
N=N+1
I = SI * TEM
A = Round(SI * pA, 2)
R=I+A
SF = SI - A
Cells(N + 7, 1) = N
Cells(N + 7, 2) = SI
Cells(N + 7, 3) = I
Cells(N + 7, 5) = A
Cells(N + 7, 4) = R
Cells(N + 7, 6) = SF
SI = SF
Loop
End Sub
Sintaxis:
Repite un bloque de instrucciones hasta que una condicin se convierta en Verdadera.
Repetir
Instruccin 1
....................
Instruccin n
Hasta CondicinLgica
Sintaxis en VBA Excel:
Do
Instruccin 1
Instruccin n
Loop Until CondicinLgica
Sintaxis:
Variable = Inputbox(Mensaje, Ttulo)
Mensaje: Es el mensaje que se muestra en la ventana. Si desea poner ms de una lnea
ponga vbNewline, para continuar con el mensaje en la siguiente lnea.
Ttulo: Es el ttulo para la ventana InputBox. Su uso es opcional.
Ejemplo:
Empleando InputBox, ingrese el nombre y el monto adeudado por un cliente.
4
Autora de Teora: Bethy de la Cerna Garca
Autor: Jos M. Martn Senmache S. Pgina 139
Solucin:
Incorpore en una hoja Excel un botn de comandos y cambie las propiedades Caption,
Font y Backcolor.
a) Haga doble clic en botn de comandos para ingresar a la Ventana de Cdigo y
escriba las siguientes instrucciones:
Haga click en
aceptar
Deuda = Val(InputBox("Deuda del cliente: " & Nombre & vbNewLine & "Ingrese el monto: S/. ",
"Empresa XYZ SAC"))
Haga click en
aceptar
Ejemplo:
Empleando MsgBox, muestre el mensaje: Hola.
Haga click en
aceptar
Botones:
Caso 1: Ingresar la edad de una persona al programa, validarla y mostrarla en una celda.
Do
Edad = InputBox(Ingrese la edad de la persona,Ingreso de dato)
If Edad < 0 Then
MsgBox Edad ingresada es incorrecta, vbCritical,Venta de Error
End if
Loop Until Edad > 0
Range("C3") = Edad
Ejercicio N1.- Cuenta una historia, que hace muchos aos existi en Per una empresa
que ofreca duplicar los ahorros a quienes confiaban su dinero a ellos. En el brochure
informativo que publicitaba dicha actividad se lea lo siguiente:
Abra su cuenta a plazos a un ao (360 das) con un mnimo de US$ 1,000.00.
Nosotros le garantizamos un inters efectivo de 100% al ao.
Al renovar su cuenta a plazo por un ao ms, se le capitalizarn sus intereses en la
misma cuenta y se le cobrar un pequeo monto el cual nunca ser mayor a US$
20.00 por Gastos de Administracin.
Si retira su dinero antes de los 360 das pactados, perder todos los intereses
ganados durante dicho ao.
Ricardo Salaverry, que no conoca nada de Finanzas y tuvo un hijo, se emocion con el
ofrecimiento y decidi abrir una cuenta a nombre de su pequeo hijo para que cuando su
hijo cumpla 18 aos pueda vivir como un verdadero millonario=( lo piensa con
lgrimas en ojos.. Bueno, resulta que despus de haber soportado el trajn de 12
aos de renovaciones constantes, el gobierno de turno cerr la empresa por considerarlos
sospechosos de aplicar el popular Mtodo de la Pirmide Financiera.
Ricardo, al enterarse de la noticia, piensa: Que pena, en fin, slo eran US$ 1,000 as que
no perd mucho que digamos..; sin embargo, busca entre sus documentos las
renovaciones del depsito para poder empadronarse y reclamar su dinero, y descubre
que slo se haba acercado a
recibirlos en los tres primeros aos,
por lo que desea que le ayudemos
a crear una macro que permita
calcular el monto de dinero que
tena acumulado a la fecha y que
debe reclamar.
Para plantear la solucin
utilizaremos el diseo de la
interface que se muestra al lado,
adems del pseudocdigo de
solucin que se planteo en el
captulo de algoritmos.
Do
C = Val(InputBox("Capital." & vbNewLine & "(a lo ms 2 dec.)", "Dato: Capital "))
If Not (C > 0) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de error"
End If
Loop Until (C > 0)
Range("B3") = C
Do
TEA = Val(InputBox("Ingrese TEA" & vbNewLine & "(como valor %)", "Dato: TEA"))
If Not (TEA > 0) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de error"
End If
Loop Until (TEA > 0)
Range("B4") = TEA
Do
GA = Val(InputBox("Gasto Adm." & vbNewLine & "(2 dec), "Dato: Gasto Adm."))
If Not (GA <= 20) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de error"
Do
n = Val(InputBox("Ingrese Aos" & vbNewLine & "(entero)", "Dato: Ao"))
If Not (n > 0) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de error"
End If
Loop Until (n > 0)
Range("B6") = n
NAgnos = 0
S=C
Do
NAgnos = NAgnos + 1
S = Round(S * (1 + TEA) - GA, 2)
Loop Until NAgnos = n
Range("B8") = S
End Sub
SOLUCIN:
Option Explicit
Range("B3") = AgnoIni
Do
PobIni = Val(InputBox("Ingrese la poblacion inicial", "Dato: Poblacin Inicial"))
If Not (PobIni > 0) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de error"
End If
Loop Until (PobIni > 0)
Range("B4") = PobIni
Do
PobFin = Val(InputBox("Ingrese poblacion objetivo", "Dato: Poblacin Objetivo"))
If Not (PobFin > PobIni) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de error"
End If
Loop Until (PobFin > PobInicial)
Range("B5") = PobFin
NAgnos = 0
Do
NAgnos = NAgnos + 1
PobIni = Round(PobIni * (1 + pCre), 0)
Loop Until PobIni >= PobFin
AgnoFin = AgnoIni + NAgnos
Range("B8") = AgnoFin
End Sub
Ejercicio N3.- Crear un algoritmo que sirva para controlar los ingresos que se producen en
la caja de un teatro, si se sabe que el precio de venta de las entradas depende de los
siguientes criterios:
Adultos: Aquellos que tengan por lo menos 18 aos.
ALGORITMO Teatro
INICIO
Repetir
Repetir
Leer Edad
Hasta (Edad >0)
Repetir
Leer Tipo
Hasta (Tipo = P) o (Tipo = M)
Si (Edad >= 18) Entonces
Si (Tipo =P) Entonces
NEntMayPla = NEntMayPla + 1
De lo contrario
NEntMayMez = NEntMayMez + 1
Fin de Si
De lo contrario
Si (Tipo =P) Entonces
NEntMenPla = NEntMenPla + 1
De lo contrario
NEntMenMez = NEntMenMez + 1
Fin de Si
Fin de Si
Repetir
Leer Masdatos
Hasta (Masdatos=S) o (Masdatos=N)
Hasta (Masdatos=N)
NEntMay = NEntMayPla + NEntMayMez
Ejercicio N4.- Una importante empresa desea realizar una encuesta entre la poblacin de
Lima, en la cual se preguntar a cada persona por su EDAD, SEXO, si posee o no EMPLEO
y el SUELDO que percibe (si es que tiene empleo). Se pide crear una macro que lea para
cada persona que se encueste, lo siguiente:
SEXO : El cual corresponder a M si es de gnero masculino, y F en caso sea
femenino.
EDAD : Valor en aos expresado como nmero entero. Considerar edad mxima de
65 aos.
EMPLEO : El cual corresponder a S si es que si tiene empleo y N en caso contrario.
SUELDO : En caso de tener empleo, lea un valor real positivo con a lo ms dos dgitos.
No se sabe a cuantas personas se va a encuestar, al final se deber preguntar si existen
ms datos S o No (S o N) y de acuerdo a las respuestas, se deber imprimir los
siguientes resultados:
Adems deber informar la edad y el gnero de los que ganan ms y menos que los
dems.
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.2 - 4.XLSM
RENDIMIENTO BONO
Hasta 08 0%
de 09 a 11 5%
de 12 a 13 12%
de 14 a 17 20%
de 18 a 19 50%
20 100%
Se pide crear una macro que calcule y muestre cual ser el monto total que por bonos
desembolsar la empresa al final del ao, si se sabe que el bono base es de S/.
10,000.00 y que se deber seguir preguntando por los rendimientos hasta que no exista
ms informacin de empleados que procesar.
ALGORITMO Bonificaciones
INICIO
BB 10000
MT 0
N0
Repetir
NN+1
Bonos
Bono base
Limpiar Rendimiento Bono %
Hasta 08 0%
1 20 100%
Option Explicit
Private Sub cbCalcular_Click()
Dim BB As Single
Dim pBB As Single
Dim MT As Single
Dim Op As String
Dim N As Integer
Dim R As Integer
BB = Val(Range("C3"))
N=0
MT = 0
Do
N=N+1
Do
(1) si es espaol.
(2) si es ingls.
(3) si es francs.
(4) si es italiano.
n
Ejercicio N7.- Se si sabe que usted invierte un capital C dlares S C * 1 TNA
a una tasa nominal anual de TNA con capitalizacin diaria, se m
pide, crear una macro que permita calcular y mostrar el da en el m NDasTNA
que valor futuro acumulado sea igual o superior a una cantidad de NDasCap
ahorro deseado S dada como dato. Utilice estructuras de control NDasInv
n
repetitivas y las siguientes frmulas: NDasCap
NDasInv
360
S C * 1 TEA
ALGORITMO Perico
INICIO
C1 1000.00
TEA1 0.08
C2 1500.00
TEA2 0.05
NDiasInversion 0
Repetir
NDiasInversion NDiasInversion + 1
S1 Redondear (C1 * Potencia (1 + TEA1, NDiasInversion / 360), 2)
S2 Redondear (C2 * Potencia (1 + TEA2, NDiasInversion / 360), 2)
Hasta (S1 >= S2)
Escribir Se necesita , NDiasInversion, das
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.2 - 9.XLSM
Ejercicio N10.- La poblacin actual de Mxico es de 55 millones y crece a una tasa del
7% anual. La poblacin de Estados Unidos es de 250 millones y crece a una tasa del 2%
anual. Si estos dos pases mantuvieran su ritmo de crecimiento actual, se pide crear una
macro que me permita conocer en cuntos aos la poblacin de Mxico ser igual o
mayor que la poblacin de los Estados Unidos. Luego replantee su macro, de tal modo
que pueda utilizarse para cualquier par de pases con cualquier poblacin y porcentaje de
crecimiento.
Ejercicio N11.- Crear una macro que teniendo como datos todos los tems que
componen la estructura de costos para producir un producto, as como su clasificacin
respectiva (si es fijo F o variable V) y el valor venta del mismo, calcule y muestre el
punto de equilibrio en unidades y en nuevos soles.
Ejercicio N12.- Crear una macro que permita calcular el valor de la siguiente serie:
S = 1 + 1/2 +1/4 + 1/8 + 1/16 +....
Si se sabe que el clculo debe detenerse cuando un trmino a agregar a la serie sea
menor o igual a 0.0000001
ALGORITMO Sumatoria
Ejercicio N13.- Crear una macro que permita calcular el valor de la siguiente serie:
S = 1/2 + 3/4 + 5/8 + 7/16 + 9/32 +....
Si se sabe que el clculo debe detenerse cuando la diferencia entre dos trminos
sucesivos sea menor o igual a 0.0000001
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.2 - 13.XLSM
Ejercicio N14.- Cuenta una historia popular, que un matemtico cre un algoritmo para
demostrar que el hombre poda llegar de la Tierra a la Luna ascendiendo en una montaa
de papel. El procedimiento que indicaba es el siguiente:
1. Considerar que la distancia de la tierra a la Luna es D Kilmetros.
2. Tomar una hoja de papel (lo suficientemente grande por supuesto) de espesor P
centmetros, y colocarla sobre una superficie horizontal, con lo que tendra una
montaa de papel de slo una hoja de espesor P centmetros.
3. Luego repetir lo siguiente:
d. Cortar la montaa de papel (inicialmente compuesta de una sola hoja)
verticalmente por la mitad y colocar una de las partes sobre la otra.
e. Adherir las hojas en contacto, con un pegamento de espesor E" centmetros, con
lo cual tendra una montaa del doble de espesor que la anterior 2*P ms un E.
f. Regresar al punto a. y repetir el procedimiento, hasta conseguir cubrir una altura
ALGORITMO Lunatico
INICIO
Repetir
Leer Distancia
Hasta (Distancia > 0)
Repetir
Leer P
Hasta (P > 0)
Repetir
Leer E
Hasta (E > 0)
HP
N0
Distancia Distancia * 100000
Repetir
N=N+1
H2*H+E
Hasta (H >= Distancia)
Escribir Nmero de cortes =, N
Escribir Altura alcanzada =, H
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.2 - 14.XLSM
ALGORITMO Ulam
INICIO
Repetir
Leer N
Hasta (N > 0)
Repetir
Si Residuo (N/2)=0 Entonces
N Cociente(N/2)
De lo contrario
N3*N+1
Fin de Si
Escribir N
Hasta N=1
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.2 15.XLSM
Ejercicio N16.- Crear una macro que permita simular un juego en el cual la computadora
crea al azar un nmero de 2 dgitos, y permite al usuario adivinarlo hasta en tres intentos.
La macro deber indicarle al usuario en cada uno de los intentos fallidos si el nmero
generado el mayor o menor al que ingreso. Por ejemplo: si la computadora gener
aleatoriamente el nmero 28, la corrida del algoritmo podra ser:
Intento N 1, ingrese numero: 40 El nmero 40 es mayor que el generado
Intento N 2, ingrese numero: 23 El nmero 23 es menor que el generado
Intento N 3, ingrese numero: 26 El nmero 26 es menor que el generado
ALGORITMO Adivina
INICIO
N GeneraAleatorioEntre(10,99)
i0
Adivino N
Repetir
ii+1
Repetir
Leer M
Hasta (M >= 10) y (M <= 99)
Si M > N Entonces
Escribir "El nmero que dio es mayor que el generado"
De lo contrario Si M < N Entonces
Escribir "El nmero que dio es menor que el generado"
De lo contrario
Escribir "Adivino el numero !FELICITACIONES!!"
Adivino S
Fin de Si
Hasta (Adivino = S) O (i = 3)
Si (Adivino = N) Entonces Escribir "PERDIO!!!!!, mala suerte."
Fin de Si
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.2 - 16.XLSM
Ejercicio N17.- Crear una macro que determine el nmero de dgitos que tiene un nmero
ingresado. El numero debe encontrarse en el intervalo: 1... 60,000.
Ejercicio N18.- Crear una macro que solicite al usuario introduzca un nmero y que lo
imprima en orden inverso, es decir, para una entrada de 592, la salida debe ser 295. El
nmero deber tener a lo ms 4 dgitos. (Su algoritmo debe utilizar una variable para
almacenar el nmero invertido y utilizar esta variable en el mensaje de salida, no debe
utilizar los dgitos separados para producir la salida.)
% C.I. : Porcentaje del valor del bien que se paga como cuota inicial.
TEA : Tasa Efectiva Anual que se cobra por el crdito y que ser constante.
TEM 1 TEA
30
360
1
El Inters mensual ser igual al producto del saldo inicial por la TEM
TEM * 1 TEM N
Cuota Prstamo *
1 TEM 1
N
Siendo:
o TEM : Tasa efectiva mensual.
o N : Nmero total de perodos de pago.
El Saldo Final se calcula como la resta del saldo inicial menos la amortizacin.
Se sabe que este proceso descrito se deber continuar hasta cubrir tantas lneas
como nmero de cuotas a pagar existan.
Se pide, crear una macro que sirva para implementar dicho mtodo de pago, el mismo
que deber leer los datos y calcular y mostrar el contenido de cada una de las N lneas
del plan de pago. Como parte del proceso ser obligatoria la consistencia o validacin de
los datos de entrada.
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.2 - 20.XLSM
Sintaxis:
Repite un grupo de instrucciones un nmero especificado de veces.
Para Contador ValorInicial hasta ValorFinal Incremento Inc Hacer
Instruccin 1
.............
Instruccin n
Fin de Para
Sintaxis:
For Contador = Inicio To Fin [Step incremento]
Instruccin 1
Instruccin n
Next Contador
Ejercicio N1.- Crear una macro que sirva para calcular y mostrar la suma de los primeros
100 nmeros enteros positivos, as como sus respectivos cuadrados y cubos. Luego
modifique su algoritmo para que pueda funcionar para el caso en que se tenga los lmites
a sumar como nmeros enteros positivos
Para plantear la solucin utilizaremos el diseo de la interface que se muestra al lado,
adems del pseudocdigo de solucin que se planteo en el captulo de algoritmos.
SOLUCIN:
Option Explicit
Do
A = Val(InputBox("Ingrese valor incial", "LECTURA DE DATOS"))
If Not (A > 0) And (A = Int(A)) Then
MsgBox "Dato mal ingresado", vbCritical, "VENTANA DE ERROR"
End If
Loop Until (A > 0) And (A = Int(A))
Range("B3") = A
Do
B = Val(InputBox("Ingrese valor final", "LECTURA DE DATOS"))
If Not (B > A) And (B = Int(B)) Then
MsgBox "Dato mal ingresado", vbCritical, "VENTANA DE ERROR"
End If
Loop Until (B > A) And (B = Int(B))
Range("B4") = B
suma = 0
suma2 = 0
suma3 = 0
For i = A To B
suma = suma + i
suma2 = suma2 + i * i
suma3 = suma3 + i * i * i
Next i
Range("B6") = suma
Range("B7") = suma2
Range("B8") = suma3
Ejercicio N2.- Crear una macro que utilice estructuras de control repetitivas y que sirva
para calcular la siguiente expresin:
y = Xn
ALGORITMO Potencia
INICIO
Repetir
Leer X
Hasta (X > 0)
Repetir
Leer N
Hasta (N > 0)
Y1
Para i 1 Hasta N Hacer
YY*X
Fin de Para
Escribir La potencia de , X, a la , N, es , Y
FIN
SOLUCIN:
Option Explicit
Private Sub cbCalcular_Click()
Dim X As Single
Do
X = InputBox("Ingrese el valor de X", "Ingreso de datos")
If (X <= 0) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de Error"
End If
Loop Until X > 0
Range("B3") = X
Do
N = InputBox("Ingrese el valor de N", "Ingreso de datos")
If (N <= 0) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de Error"
End If
Loop Until N > 0
Range("B4") = N
Y=1
For i = 1 To N
Y=Y*X
Next i
Range("B6") = Round(Y, 3)
End Sub
ALGORITMO Factorial
INICIO
Repetir
Leer N
Hasta (N > 0)
Fact 1
Para i 1 Hasta N Hacer
Fact Fact * i
Fin de Para
Escribir El factorial de , N, es , Fact
FIN
SOLUCIN:
Option Explicit
Private Sub cbCalcular_Click()
Dim N As Integer
Dim i As Integer
Dim Fact As Double
Do
N = InputBox("Ingrese el valor de N", "Ingreso de datos")
If (N <= 0) Then
MsgBox "Dato mal ingresado", vbCritical, "Ventana de Error"
End If
Loop Until N > 0
Ejercicio N4.- Crear una macro que teniendo como datos las utilidades generadas para
cada uno de los 7 das de la semana, calcule y muestre el promedio de las utilidades
positivas. Un ejemplo sera:
Da 1 = 35
Da 2 = 10
Da 3 =5
Da 4 = -4
Da 5 = 20
Da 6 = 36
Da 7 = 31
Promedio = 35.5
Ejercicio N5.- Crear una macro que permita hallar la suma de la siguiente serie:
S = 1! + 3! + 5! + 7! + 9! + 11! + ....
Se deber calcular la suma hasta llegar al N de trminos dado como dato.
Ejercicio N7.- Una tienda comercial al menudeo acaba de recibir una nueva remesa de
camisas. Las investigaciones preliminares del mercado, indican que las utilidades que se
pueden obtener a un precio de venta dado P.V. estn dadas por la frmula:
Utilidades = P.V. * (100.00 3 * P.V. )
Se pide, crear una macro que produzca la siguiente salida tabular para los precios de
venta (enteros) desde 10.00 hasta 30.00 Nuevos Soles.
Precio Utilidades
10 700
11 737
12 768
. .
. .
30 300
ALGORITMO Tienda
INICIO
N0
Para PVenta 10 Hasta 30 Hacer
Utilidad PVenta * (100.00 3 * PVenta)
Escribir Precio = , PVenta, y utilidad = , Utilidad
Fin de Para
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.3 - 7.XLSM
Ejercicio N8.- Suponga que un agricultor dispone de un terreno de una hectreas (un
lote de terreno de 100 x 100 metros) y dispone de material para construir una cerca de a
lo ms 200 metros, pero desea que el rea rectangular creada para su futuro vivero sea la
mayor posible, por lo que le solicita que crear una macro que le sirva para calcular y
mostrar una tabla donde se muestren todas las combinaciones posibles de largo L por
ancho A (con medidas enteras) para el rea posible a cercar, y su respectiva rea
mxima. Puede auxiliarse del siguiente esquema geomtrico:
Autor: Jos M. Martn Senmache S. Pgina 177
A
L
Deber tomar en cuenta que el permetro del vivero cercado sea igual a los 200 metros de
material que posee.
ALGORITMO Agricultor
INICIO
AreaMax 0
Para A 0 Hasta 100 Hacer
L (200 2 * A) / 2
Area L * A
Si (Area > AreaMax) Entonces
AMax A
LMax L
AreaMax Area
Fin de Si
Escribir Largo = , L, ancho = , A, y rea =, Area
Fin de Para
Escribir Largo = , L, ancho = , A, y rea mxima =, Area
FIN
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.3 - 8.XLSM
Ejercicio N9.- Crear una macro que teniendo como datos la fecha actual ingresada
como: da, Mes y Ao, calcule y muestre el nmero de das transcurridos desde el 31 de
diciembre del ao anterior y los que faltan transcurrir hasta el fin del ao. Deber asumir
que los aos bisiestos (mltiplos de 4) poseen en el mes de febrero 29 das (asuma slo
fechas de este siglo).
ALGORITMO Dias transcurridos
INICIO
Autor: Jos M. Martn Senmache S. Pgina 178
Repetir
Leer Ao
Hasta Ao > 0
Repetir
Leer Mes
Hasta (Mes >= 1) Y (Mes <=12)
Segn sea Mes
Caso 2
Si Residuo (Ao/4) = 0 Entonces
DiasMax 29
De lo contrario
DiasMax 28
Fin de Si
Caso 4, 6, 9, 11
DiasMax 30
Caso 1, 3, 5, 7, 8, 10, 12
DiasMax 31
Fin de Segun
Repetir
Leer Dia
Hasta (Dia <= DiasMax)
NDias 0
Si Mes > 1 Entonces
Para NMes 1 Hasta Mes - 1 Hacer
Segn sea NMes
Caso 2
Si Residuo (Ao/4) = 0 Entonces
NDias NDias + 29
De lo contrario
NDias Ndias + 28
Fin de Si
Ejercicio N10.- Crear una macro que teniendo como datos la fecha de nacimiento y la
fecha actual ingresadas como: da, Mes y Ao, calcule y muestre el nmero de das
vividos. Deber asumir que los aos bisiestos (mltiplos de 4) poseen en el mes de febrero
29 das (asuma slo fechas de este siglo).
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.3 - 10.XLSM
Ejercicio N11.- Crear una macro que acepte un ao escrito en cifras arbigas y visualice
el ao escrito en nmeros romanos, dentro del rango 1,000 a 2,000.
Recuerde que: V = 5, X = 10, L = 50, C = 100, D = 500 y M = 1000
MCMLXXXIX = 1989
MCMLX = 1960
MCMXL = 1940
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.3 - 11.XLSM
Ejercicio N12.- Nuestro contador est ante un dilema: dejar de escribir con la mano el
monto expresado con palabras de un cheque que gire la empresa, por lo que nuestra
funcin ser ayudarlo creando una macro que teniendo como dato un nmero entre 0 y
1000,000.00 y la moneda en que se girar el cheque, imprima el nmero en letras.
Recuerde que los nmeros cardinales superiores a treinta utilizan la conjuncin y
cuando no corresponde a una decena; adems, en algunos casos que se renen palabras
se requiere acentuacin (diecisis, veintids, veintitrs, veintisis). Algunos ejemplos que
ilustran los casos anteriormente expuestos son: 15 (quince), 18 (dieciocho), 57 (cincuenta
y siete), 111 (ciento once), 229 (doscientos veintinueve), 2934 (dos mil novecientos treinta
y cuatro). Por ejemplo si:
Autor: Jos M. Martn Senmache S. Pgina 180
Ingrese monto : 10,258.21
Ingrese moneda : N Nuevos Soles
Mostrar : Diez mil doscientos cincuenta y ocho y 21/100 Nuevos Soles
Ejercicio N13.- Crear una macro que sirva para calcular el doble factorial de un nmero
entero positivo, si se sabe que este se calcula como:
Si n es par : n!! = (n)*(n-2)* ............ *1
Si n es impar : n!! = (n)*(n-2)* ............ *2
Haga clic aqu para abrir solucin de EJERCICIO 4.3.3.3 - 12.XLSM
4.4.1 Introduccin
Microsoft Excel posee una herramienta que sirve para registrar acciones que se llevan a
cabo en un Libro de trabajo y registrarlas en forma de macro. Mediante esta herramienta
se pueden generar cdigos de instrucciones de sintaxis compleja, que luego pueden ser
modificadas con facilidad.
Activacin del grabador de macros
Para activar la herramienta, siga los siguientes pasos:
1). Para ejecutar la macro en cualquiera de las hojas del Libro, active la opcin del Men
Programador, Macros.
2). A continuacin aparecer la
siguiente ventana, seleccione
la macro que desee ejecutar
y haga clic en Ejecutar.
Range("A1:G6").Select
With Selection.Font
.Name = "Broadway"
.FontStyle = "Normal"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 3
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble
.Weight = xlThick
Ejercicio N1.- 6 Una empresa de aviacin que organiza vuelos privados, cobra por el
alquiler de sus aviones de acuerdo a un cuadro de tarifas, el cual consiste en multiplicar el
Nmero de personas que trasladar, por el Nmero de Kilmetros a viajar, por una tarifa
unitaria por Kilmetro por persona de recorrido.
Se pide que, basado en el algoritmo descrito a continuacin (cuyo diseo ha sido
orientado a una hoja electrnica de clculo), construya una macro en la hoja Ciudades,
del archivo EJERCICIO 4.5 - 1.XLSM, en la cual deber colocar dos botones: Limpiar y
Alquilar; el botn Limpiar deber borrar los datos y clculos de un posible uso anterior,
dejando las celdas en blanco; mientras que el botn Alquilar deber leer el nmero de
personas a trasladar y la tarifa unitaria por kilmetro, as como determinar la distancia
entre las dos ciudades Origen y Destino (las cuales se seleccionarn de las celdas que
obligatoriamente deber validar previamente en la hoja de Excel) utilizando para ello, los
datos de la tabla cruzada de distancias entre ciudades a las que sirve esta empresa, as
como calcular el Total a cobrar por el servicio.
ALGORITMO Alquilar
Inicio
Repetir
Leer NumeroPersonas
Hasta N>0
Repetir
Leer Tarifa
Hasta Tarifa>0
CiudadOrigen Celda(3,3)
CiudadDestino Celda(4,3)
FilaEncontrada No
Fila 11
FilaOrigen 0
Repetir
Fila Fila + 1
6
Autor: Ing. Juan Oscar Peralta Arellano. Profesor Ponticia Universidad Catlica del Per.
Autor: Jos M. Martn Senmache S. Pgina 186
Si Celda(Fila,5)=CiudadOrigen Entonces
FilaOrigen Fila
FilaEncontrada Si
Fin de Si
Hasta (Fila=36) o (FilaEncontrada=Si)
ColumnaEncontrada No
Columna 5
ColumnaDestino 0
Repetir
Columna Columna + 1
Si Celda(11,Columna)=CiudadDestino Entonces
ColumnaDestino Columna
ColumnaEncontrada Si
Fin de Si
Hasta (Columna=30) o (ColumnaEncontrada=Si)
Celda(5,3) Celda(FilaOrigen,ColumnaDestino)
Celda(6,3) NumeroPersonas
Celda(7,3) Tarifa
Celda(8,3) Redondear(Celda(5,3)*NumeroPersonas*Tarifa,2)
Fin
Puede utilizar el siguiente conjunto de datos a manera de comprobacin:
Origen : Cajamarca
Destino : Lima
Kilmetros : 856
N de personas : 10
Tarifa unitaria por Km : 1.50
Total a cobrar : 12,840.00
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 1.XLSM
N
IQi
Promedio i 1
N
N
(Promedio - IQi )2
Desv iacinEstndar i 1
N-1
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 2.XLSM
Si se derriban todos los pinos en el primer tiro de una jugada, el nmero de puntos
ganados en la jugada es diez ms la cantidad de pinos derribados en los dos
siguientes tiros, los cuales podran pertenecer a dos jugadas distintas.
Si en la ltima jugada se derriban todos los pinos, se realizan los tiros extra
necesarios para determinar el nmero de puntos logrados en la jugada.
7
Autor: Ing. Juan Oscar Peralta Arellano. Profesor Ponticia Universidad Catlica del Per.
Autor: Jos M. Martn Senmache S. Pgina 188
En una jugada se puede derribar a lo ms 10 pinos.
En el siguiente ejemplo se puede apreciar un juego de valores que se puede obtener:
Adicional
N de Jugada 1 2 3 4 5 6 7 8 9 10 (solo si es
necesario)
Puntos de la jugada 8 6 15 8 19 9 29 20 16 20
11 13 15
Puntos acumulados 8 14 29 37 56 65 94
4 0 0
En base a lo anterior, se le pide crear una macro que utilice los botones de comando:
Borrar y Puntos. El botn Borrar deber permitir quitar todos los datos, clculos y
resultados de la tabla para poder ingresar un nuevo juego; mientras que el botn Puntos
deber realizar la solicitud de los datos, el llenado de la tabla, la determinacin de los
puntos de cada jugada y su acumulado y el total de puntos conseguidos por el jugador, de
acuerdo a las reglas del juego anteriormente descritas.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
3.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 3.XLSM
Ejercicio N4.- El estado peruano exige al final del ao, el pago del impuesto a la renta en
forma escalonada y en funcin del valor de la U.I.T. y los ingresos totales anuales, as
tenemos que para:
Ingresos Impuesto
0 a 7 UIT 0%
7 UIT a 10 UIT 10%
10 UIT a 20 UIT 20%
Mayor a 20 UIT 30%
Se pide crear una macro que teniendo como datos el valor de la UIT y los ingresos totales
anuales (ambos validados o consistenciados), calculen y muestre el pago total del
impuesto a la renta.
Para apoyar su solucin mostramos el siguiente clculo a modo de ejemplo:
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
4.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 4.XLSM
Ejercicio N5.- Juan trabaja en la empresa Busca Rpido S.A.C., y actualmente est
realizando una investigacin entre los Institutos superiores que dictan el curso de
Informtica entre su currcula, registrando para sus efectos el nombre de la institucin, el
nmero de horas de dictado a la semana y el costo del curso. Juan tiene la informacin
a la mano de no ms de 20 Institutos y le pide que lo apoye creando una macro que
teniendo estos datos, le permita leer y registrar los datos de cada instituto (Nombre,
NHoras y Costo) y, adems, encontrar lo siguiente:
a) El Nmero de Institutos donde se ensea.
b) El Costo promedio del curso.
c) El Instituto cuyo curso sea el ms caro.
d) El Instituto cuyo curso sea el ms barato.
e) El Instituto cuyo curso sea el ms extenso en nmero de horas.
f) El Instituto cuyo curso sea el ms caro en costo por hora.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
5.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 5.XLSM
P(x) = A * X2 + B * X + C
Consumo Descuento
Hasta 100.00 0%
Mayor a 100.00 y hasta 200.00 5%
Mayor a 200.00 y hasta a 300.00 7%
Mayor a 300.00 10%
Se pide crear una macro que permita leer como dato el consumo en valor venta de un
grupo de no ms de 20 comensales y calcule y muestre la siguiente informacin: N de
comensal atendido, Consumo, Descuento, Valor Venta, IGV, y Precio de Venta.
Considere adems que:
% IGV es igual 18%.
Descuento es igual al % Descuento por Consumo.
Ejercicio N10.- Se desea hacer una encuesta a turistas que visitan las ruinas del Seor
de Sipn, con el fin de mejorar su atencin, al conocer mejor sus preferencias
gastronmicas.
Si a cada uno de los turistas se les pide como datos:
SEXO : El cual ser M si es de gnero masculino, y F en caso sea
femenino.
EDAD : Valor en aos expresado como nmero entero.
PREFERENCIA : El cual registra cualquiera de las siguientes posibilidades en cuanto a
sus preferencias gastronmicas:
(1) Peruana
(2) Oriental
(3) Internacional
Se pide crear una macro que permita leer todos los datos y elabore un cuadro donde se
muestre el nmero de turistas que respondieron por cada una de las siguientes
posibilidades:
TEP * 1 TEPNTP NP 1
Cuota S .I . * NTP NP 1
1 TEP 1
Amortizacin Cuota - Inters
Saldo Final Saldo Inicial + Amortizacin
Flujo Cuota - Seguro - Comision - Portes - Gastos Administrativos
Ejercicio N13.- Crear una macro en VB para aplicaciones en MS Excel, que teniendo
como datos el N de tems que componen la estructura de costos para producir un bien o
servicio, el nmero de unidades que vienen en cada empaque, el costo del empaque y el
nmero de unidades necesarias a comprar por tem, as como su respectiva clasificacin
(Si es un costo Fijo o Variable); calcule y muestre el costo fijo o variable que corresponde
a cada uno de los tems, as como el correspondiente punto de equilibrio en unidades y en
nuevos soles.
Para elaborar su solucin tome en cuenta las siguientes frmulas:
Costo x Item = Costo de Empaque * N Unidades Requeridas
N Unidades x Empaque
Costo Unitario Variable = Costo Variable Total
N Unidades Producidas
Margen de Contribucion = Valor Venta - Costo Unitario Variable
Punto Equilibrio en Unidades = Costo Fijo Total
Ejercicio N14.- La compaa Todo por Nada S.A.C. necesita completar el cuadro
Planilla, tal como muestra la informacin digitada en la hoja Planilla. Si se sabe que:
Columna Bono: Se calcula como el producto del Sueldo Bsico por una Tasa (%), la
que depende de la antigedad del trabajador y que se muestra en la Tabla 1.
Columna Descuento A.F.P.: Se calcula como el producto del (Sueldo Bsico ms el
Bono) por una Tasa (%), la que depende de la A.F.P. a la que pertenece el trabajador
y que se muestra en la Tabla 2.
Columna Sueldo Bruto: Si se sabe que se calcula como el Sueldo Bsico ms Bono
menos Descuento A.F.P.
Fila Total: Se calcula como las sumas de las columnas Sueldo Bsico, Bono,
Descuento A.F.P. y Sueldo Bruto
Fila Promedio: Se calcula como los promedios de las columnas Edad, Antigedad,
Sueldo Bsico, Bono, Descuento A.F.P. y Sueldo Bruto.
Crear una macro en VB para aplicaciones en MS Excel, que utilizando la informacin del
cuadro y un botn de comandos, calcule y complete el cuadro de planillas solicitado.
Nota.- No es necesario leer los datos, considere que ya se encuentran digitados en la
hoja; adems, tampoco es necesario que presente el algoritmo, slo inserte el botn de
comando Procesar que permita programar la macro que resuelva el problema planteado.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
14.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 14.XLSM
Ejercicio N15.- Perico (que por su juventud tolera el riesgo) abre una cuenta de ahorros
con US$ 10,000.00 dlares, los mismos que son remunerados con una tasa efectiva anual
del 12%; ese mismo da, su padre (que vive al borde de todas las seguridades que le
puede dar el sistema financiero) abre una cuenta de ahorros con US$ 15,000.00 en otro
banco, el que le ofrece una tasa efectiva anual del 1.5%. Si se sabe que Perico desea
demostrarle a su padre que debera de arriesgar ms para obtener mayores ganancias,
Como calcularamos el nmero de das que debern pasar hasta que el capital del hijo
sea igual o mayor que al de su progenitor?
NDasTranscurridos
360
ValorFuturo Valor Pr esente * 1 TEA
Nota 1.- Ni Perico ni su padre realizarn ningn otro depsito o retiro en sus respectivas
cuentas, as como Perico no podr contar con su dinero sino al final de cada ao
completo, o decidir renovarlo por otros 360 das ms.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
15.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 15.XLSM
Ejercicio N16.- Crear una macro en VB para aplicaciones en MS Excel, que calcule el
nmero de das vividos por una persona, si se tiene como dato la fecha de nacimiento de
la persona y la fecha de hoy. Se deben considerar los aos bisiestos (aquellos que son
mltiplos de 4 y que tienen 29 das en el mes de febrero) y slo fechas iguales o
posteriores al 1 de enero de 1950.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
16.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 16.XLSM
Ejercicio N17.- Crear una macro en VB para aplicaciones en MS Excel, que permita
realizar la valorizacin de una propiedad, la misma que se utilizar para el clculo del
Impuesto a la Transferencia de propiedades (IT), para lo cual se necesitan los siguientes
datos:
El rea del terreno en metros cuadrados.
El precio del terreno por metro cuadrado en Nuevos Soles.
El rea construida en metros cuadrados.
El precio del metro cuadrado de rea construida se determinar de la siguiente forma: Se
ingresar el material de construccin utilizado (el cual podr tomar valores de (C)
Concreto, (A) Albailera y (O) Otro) y el tipo de piso que tiene instalado (el cual podr
tomar valores de (M) Mrmol, (P) Parquet, (L) Loseta, (A) Alfombrado y (O) Otro), y se
utilizar en cada caso el Precio x m2 correspondiente para el clculo del valor del rea
construida en Nuevos Soles, segn la siguiente tabla:
Si el material de construccin es Concreto (C):
Ejercicio N18.- Carlos es un joven recin egresado de las aulas universitarias, al cual le
encanta hacer correr la adrenalina por su cuerpo, por lo que busca experiencias que
mantengan al mximo nivel sus emociones. Hoy, ha visto un aviso en la Internet en la cual
Ejercicio N19.- Perico abre hoy da una cuenta de ahorros con US$ 10,000.00 con el
objetivo de comprarse un automvil; si la cuenta remunera a una tasa efectiva anual del
12% y ese mismo da ve en el diario El Comerciante que la inflacin anual proyectada
por el MEF para los siguientes 3 aos ser en promedio 2.45%. Cuantos das deber
esperar para adquirir un automvil cuyo precio de venta hoy da es de US$ 12,845.00, si
asume que la inflacin que toma como dato del MEF afectar el precio de venta de dicho
bien?
Se pide crear una macro en VB para MS Excel, que permita conocer el nmero de das
que tendr que transcurrir para que ocurra lo planeado.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
19.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 19.XLSM
Ejercicio N20.- 8 Jos Antonio acaba de ser nombrado Administrador del Hotel Al fondo
hay bastante sitio, el cual tiene 10 pisos y 12 habitaciones por piso, y desea aplicar todos
sus vastos conocimientos de programacin en Macros en Visual Basic para aplicaciones
en MS Excel que aprendi en la facultad, y se plantea lo siguiente:
Si en el cuadro de ocupabilidad -que todos los das hago a mano en MS Excel-, pudiera
colocar de manera automtica una letra X en cada habitacin que se ocupe, podra tener
una amplia visin de que habitaciones se encuentran desocupadas (aquellas que no
tienen nada escrito), y as podra asignar mejor mis recursos.
Partiendo de que Jos Antonio cuenta con la lista de los pasajeros que arribaron por da,
el nmero de habitacin que ocupan, las fechas de arribo y salida (columnas P, Q, R y S),
como resolvera este dilema; si tenemos como dato en la celda E3, la fecha en donde
verificamos la ocupabilidad. Tome en cuenta que con slo cambiar la fecha y pulsar el
8
Autor: Ing. Juan Oscar Peralta Arellano. Profesor Ponticia Universidad Catlica del Per.
Autor: Jos M. Martn Senmache S. Pgina 204
botn de comandos Verificar Ocupabilidad, deberamos conocer como se encontrar
ocupado el Hotel en dicha fecha.
Datos de prueba Nmero de habitacin en el piso
1 2 3 4 5 6 7 8 9 10 11 12
1 X X
2
Fecha : 03/07/2010 3 X
P 4 X
Matriz de ocupabilidad: i 5 X
s 6 X
o 7 X X X
8
9 X
10 X X X
Ejercicio N21.- La construccin de una piscina de forma prismtica recta con base
tronco cilndrica, depende del costo de la maylica que revestir el rea interna y del
volumen que esta ocupar.
Ejercicio N22.- Cuenta una historia, que hace muchos aos existi en Per una empresa
llamada CLEA que ofreca por lo menos duplicar los ahorros a quienes confiaban su
dinero a ellos. En la publicidad de dicha empresa se lea lo siguiente:
4. Abra su cuenta a plazos a un ao con un mnimo de US$ 1,000.00.
5. Nosotros le garantizamos un inters efectivo mnimo de 100% al ao.
ALGORITMO Crea
INICIO
NumeroAgnos 10
Repetir
Leer Deposito
Si Deposito < 1000 entonces Escribir Dato mal ingresado
Hasta Deposito >= 1000
Repetir
Leer GastosAdm
Si (GastosAdm < 0) o (GastosAdm > 20) entonces Escribir Dato mal ingresado
Hasta (GastosAdm >= 0) y (GastosAdm <= 20)
Repetir
Leer TEA
Si TEA < 1 entonces Escribir Dato mal ingresado
Hasta TEA >= 1
Agnos 0
Ejercicio N23.- Para salvaguardar los intereses de sus asociados, el Club Los Amigos
transmite a travs de mensajes de correo el nmero de carnet del asociado al revs, es decir
si su N de carnet es 43659 se indica en el correo como 95634. Como ver es muy simple
el criterio, pero de alguna manera se protege la identidad de los datos transmitidos. Se pide
crear una macro en VB para MS Excel, que reciba como dato el nmero de carnet del
asociado y lo voltee o invierta y muestre el resultado. El nmero de asociados puede ser
de hasta 99999.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
23.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 23.XLSM
Ejercicio N24.- El estado de Patolandia exige al final del ao fiscal, el pago del impuesto
a la renta en forma escalonada y en funcin del valor de la Unidad Impositiva Tributaria
(U.I.T.) y los ingresos anuales que posea el contribuyente, as tenemos que para:
Registrar el nombre de todos los n mozos que participan de la evaluacin, los que se
conoce no exceden de 100 personas.
Registrar para cada uno de ellos, la calificacin asignada (nmero entero entre 0 y
100) por parte de las siguientes personas:
o Calificacin de Gerente de Recursos Humanos (GRH) (peso de 2).
o Calificacin de su jefe inmediato superior (J) (peso de 2).
o Calificacin de uno de sus compaeros de trabajo (C1) (peso de 1).
o Promedio de la calificacin de los comensales (C2) (peso de 3)
Calcular la calificacin final (CF) aproximado al entero ms cercano para cada mozo
como:
GRH * 2 J * 2 C1 C 2 * 3
CF
8
Sumar las calificaciones finales de todos y cada uno de los mozos como:
n
SCF CFi
i 1
Autor: Jos M. Martn Senmache S. Pgina 209
Calcular el coeficiente de reparticin para cada mozo como:
CF
Coef
SCF
Finalmente se debe calcular el monto a entregar por mozo como:
Monto Coef * MontoAcumulado
Y le pide a usted -su nuevo asistente de Gerencia- que construya una macro, que
mediante el uso de los botones de LeerYCalcular y Borrar, permitan realizar la accin
antes descrita (1 botn) y borrar la hoja de Excel (2 botn) para dejarla lista para el
siguiente mes.
Nota.- Es obligatorio en esta pregunta consistenciar la lectura de datos.
Utilice la hoja RRHH del archivo EJERCICIO 4.5 - 25.XLSM y los siguientes datos de
prueba mostrados a continuacin para verificar el buen funcionamiento de su macro.
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
26.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 26.XLSM
Ejercicio N27.- La compaa Todo por Nada S.A.C. necesita completar el cuadro
Planilla, tal como muestra la informacin digitada en el archivo EJERCICIO 4.5 -
27.XLSM. Si se sabe que:
Columna Bono: Se calcula como el producto del Sueldo Bsico por una Tasa (%), la
que depende de la antigedad del trabajador y que se muestra en la Tabla 1.
Columna Descuento A.F.P.: Se calcula como el producto del (Sueldo Bsico ms el
Bono) por una Tasa (%), la que depende de la A.F.P. a la que pertenece el trabajador
y que se muestra en la Tabla 2.
Columna Sueldo Bruto: Si se sabe que se calcula como el Sueldo Bsico ms Bono
menos Descuento A.F.P.
Fila Total: Se calcula como las sumas de las columnas Sueldo Bsico, Bono,
Descuento A.F.P. y Sueldo Bruto.
Fila Promedio: Se calcula como los promedios de las columnas Edad, Antigedad,
Sueldo Bsico, Bono, Descuento A.F.P. y Sueldo Bruto.
Se pide crear una macro en VB para MS Excel, que utilizando la informacin ya digitada
en el cuadro y un botn de comandos, calcule y complete la planilla solicitada.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 27.XLSM
N
( Promedio - DiametroA(i) )2
Desv iacinEstndar i 1
N-1
Utilice como datos de prueba, los que se muestran en el archivo EJERCICIO 4.5 -
29.XLSM.
Haga clic aqu para abrir solucin de EJERCICIO 4.5 - 29.XLSM
Ejercicio N30.- Constructora Inca S.A.C. desea implementar un pequeo programa que
permita calcular la planilla por el trabajo de sus obreros que se dedican a bolear ladrillos
para apilarlos dentro de la obra, a los cuales considera como eventuales al destajo y por
lo tanto se les paga por minuto trabajado y de acuerdo a las siguientes consideraciones:
El horario de trabajo es de lunes a viernes.
La jornada de trabajo es de 8:00 a 16:00 horas en horario corrido y sin descanso.