Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
Carrera:
Ingeniería Industrial
Curso:
Algoritmos
Profesora:
Marcela Escobar
Sección:
IV45
Estudiantes:
1
CICLO 2021 – 02
INDICE
1 Tabla de contenido
1. INTRODUCCIÓN............................................................................................................................................................3
1.1. ANÁLISIS DEL ENTORNO:..................................................................................................................................................... 3
1.2. FODA.............................................................................................................................................................................................. 4
1.3. CONDICIÓN:.................................................................................................................................................................................. 4
1.4. VARIABLES PARA CONSIDERAR:...........................................................................................................................................5
2. MARCO TEÓRICO:.......................................................................................................................................................5
3. ANÁLISIS Y DEFINICIÓN DE LA PROBLEMÁTICA:.....................................................................................6
3.1. PLANTEAMIENTO DEL PROBLEMA:.....................................................................................................................................6
4. PLANTEAMIENTO A LA SOLUCIÓN....................................................................................................................7
4.1. OBJETIVOS.................................................................................................................................................................................... 7
4.1.1. Objetivo general................................................................................................................................................................... 7
4.1.2. Objetivos específicos........................................................................................................................................................... 7
4.2. MODELO DE SOLUCIÓN LÓGICA...........................................................................................................................................7
4.3 MODELAMIENTO DE SOLUCIÓN MATEMÁTICA........................................................................................................................8
5. DISEÑO DE ALGORITMO..........................................................................................................................................9
5.1. ANÁLISIS DE DATOS................................................................................................................................................................... 9
5.2. DISEÑO DE PROCEDIMIENTOS Y/O FUNCIONES...............................................................................................................9
5.3. DISEÑO DE LA INTERFAZ GRÁFICA......................................................................................................................................1
6. IMPLEMENTACIÓN.....................................................................................................................................................1
7. CONCLUSIONES Y RECOMENDACIONES......................................................................................................14
8. BIBLIOGRAFÍA...........................................................................................................................................................15
9. APÉNDICES Y/O ANEXOS.......................................................................................................................................16
1. Introducción
Actualmente, son numerosas las compañías que recurren a modelos de innovación tecnológica
debido al panorama mundial generado por la recesión económica y el creciente aumento de
competidores en los diversos sectores del mercado. Dentro de los casos más resaltantes de
innovación, encontramos aquella realizada por la empresa Amazon, la cual incrementó su
productividad en los almacenes al hacer uso de un sistema de seguimiento automatizado, el cual
identificaba la posición de los productos agilizando el proceso de recepción. Del mismo modo, la
empresa mejoró su sistema de ventas, mediante el uso de un seguimiento automático de compras,
el cual tal y como los robots usados en los almacenes, hacía uso de un sistema de programación,
el cual se conformaba mediante algoritmos.
Por otra parte, es muy bien conocido que, debido a la pandemia, los sistemas de automatización
en la atención de clientes deben formar parte fundamental del desarrollo de las empresas en la
actualidad. Proceso que, como hemos mencionado anteriormente con el caso de la empresa
Amazon, es de vital importancia si se busca la prevalencia de los negocios. Por ello, dado el
entorno competitivo del que forman parte los diversos negocios de nuestro país, tanto públicos
como privados, es que se busca que estos cuenten con la capacidad de sobrellevar y sobresalir en
un entorno competitivo como es el actual. Así mismo, se busca prevalecer las medidas de
bioseguridad, por lo que un sistema que agilice y mejore el proceso de atención al cliente de
forma presencial o virtual es de una gran prioridad para las empresas a nivel nacional.
Por ello, es que nuestro presente trabajo de investigación tendrá como objetivo el de desarrollar e
implementar un algoritmo funcional que nos permita mejorar e incrementar la productividad en
el área de atención al cliente y ventas de la empresa Boticas Felicidad, Chiclayo. Así mismo,
buscamos desarrollar un modelo de programación haciendo uso de la herramienta Visual Basic,
el cual, mediante conocimientos adquiridos en clase, nos permita generar un sistema eficiente,
automático y que exenta de cualquier error tanto escrito como tipográfico con el que pueda
contar el operario en el uso del aplicativo. Finalmente, buscamos obtener feedbacks que nos
permitan mejorar y finalizar con pruebas que determinen la eficiencia tanto de nuestro algoritmo,
como de su aplicación directa en la atención y venta a los clientes.
1.2. FODA
FORTALEZAS OPORTUNIDADES
● Fácil implementación de un sistema ● Reducción del tamaño de cola
de automatización en caja. ● Periodos de atención más rápidos.
● Mejora en los tiempos de atención. ● Asesores de compra más eficientes
● Reducción de fallas en el ingreso de debido a la automatización de la
datos atención y la reducción de fallas.
DEBILIDADES AMENAZAS
● Los sistemas pueden resultar un ● Entorno competitivo altamente
poco complicados de entender en apalancado de nuevos sistemas de
una primera instancia. gestión automatizada para mejorar
● Capacidades de gestión de la la atención en la caja.
información deben ser consultadas ● Sistemas con alta competencia y
con especialistas encargados eficiencia en el mercado que
● Costumbres arraigadas de sistemas pueden distinguirse del nuestro.
antiguos pueden dificultar la curva ● Capacidad de entender el
de aprendizaje. funcionamiento del proceso de
atención en caja como un
problema a futuro.
1.3. Condición:
2. Marco Teórico:
Dado que nuestro trabajo de investigación tiene como primicia el desarrollo de un sistema de
atención al cliente mediante el uso de la plataforma VBA en Excel. Por ello, es que se revisarán
diversos conceptos en la guía mencionada anteriormente, usando tanto nuevos conocimientos,
tales como la conformación de repeticiones para la evaluación de errores, así como el ingreso de
datos mediante comandos programados en la plataforma. Del mismo modo, utilizaremos
conceptos aprendidos respecto de los modelos relacionados con la eficiencia en la atención al
cliente. Dentro de los conceptos aprendidos, tenemos los brindados por el artículo de la revista
digital Comercio y Justicia denominado “Modelo de atención al cliente, claves para mejorar la
rentabilidad”, mediante el cual adquirimos los principios básicos que conforman un sistema
eficiente con puntos que nos permiten mejorar tanto la experiencia del cliente, así como asegurar
la rentabilidad de la empresa al reducir costos e incrementar las ventas. Finalmente, usaremos los
conocimientos adquiridos en clase, puesto que los consideramos como parte importante de
nuestra formación en el curso.
3. Análisis y definición de la problemática:
4.1. Objetivos
CT =CTU∗Q
UB=PT −CT
CONTADOR=CONTADOR+1
VVTC=VVCT +VVT
PROMEDIO=VVTC /CONTADOR
Mediante la presente sección, expondremos los diversos componentes que nos permitirán
desarrollar de una forma más completa, nuestro algoritmo a fines de obtener un mejor desarrollo
a fines de obtener una solución a la problemática de la empresa.
1
6. Implementación
1
rpta = MsgBox(¿” El cliente realmente desea ordenar un producto?”, vbYesNo)
If rpta = vbYes Then
c=c+1
Cells(2, 2) = c
Cells(15, 10) = Time
Cells(16, 10) = Date
Cells(3 + c, 21) = c
Cells(3 + c, 35) = Time
Do
Do
nombre = InputBox("ingrese el nombre del cliente")
If nombre = "" Then
rpta = MsgBox("Ingrese el nombre, por favor")
End If
Loop Until nombre <> ""
rpta = MsgBox("El nombre del cliente es " & nombre & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 4) = nombre
Cells(13, 6) = nombre
Cells(3 + c, 22) = nombre
Do
Do
apellido = InputBox("ingrese el apellido del cliente")
If apellido = "" Then
rpta = MsgBox("Ingrese el apellido, por favor")
End If
Loop Until apellido <> ""
rpta = MsgBox("El apellido del cliente es " & apellido & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 5) = apellido
Cells(14, 6) = apellido
Cells(3 + c, 23) = nombre
Do
Do
DNI = Val(InputBox("ingrese el DNI del cliente"))
If DNI <= 0 Then
rpta = MsgBox("Ingrese el DNI, por favor")
End If
Loop Until DNI > 0
rpta = MsgBox("El DNI del cliente es " & DNI & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 6) = DNI
Cells(15, 6) = DNI
Cells(3 + c, 24) = DNI
Do
Do
telefono = Val(InputBox("Ingrese el telefono del cliente"))
If telefono <= 0 Then
rpta = MsgBox("Ingrese el telefono, por favor")
End If
Loop Until telefono > 0
rpta = MsgBox("El telefono del cliente es " & telefono & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 7) = telefono
Cells(14, 10) = telefono
Cells(3 + c, 25) = telefono
Do
Do
direccion = InputBox("Ingrese la dirección del cliente")
If direccion = "" Then
rpta = MsgBox("Ingrese la direccion, por favor")
End If
Loop Until direccion <> ""
rpta = MsgBox("La direccion del cliente es " & direccion & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 8) = direccion
Cells(16, 6) = direccion
Cells(3 + c, 26) = direccion
Do
Do
correo = InputBox("Ingrese la dirección de correo electrónico del cliente")
If correo = "" Then
rpta = MsgBox("Ingrese el correo electrónico, por favor")
End If
Loop Until correo <> ""
rpta = MsgBox("La direccion electrónica del cliente es " & correo & ", correcto?",
vbYesNo)
Loop Until rpta = vbYes
Cells(4, 10) = correo
Cells(13, 10) = correo
Cells(3 + c, 27) = correo
i=0
Cells(3 + c, 29) = Date
Cells(3 + c, 30) = Time
Cells(4, 11) = Date
Cells(4, 12) = Time
Do
i=i+1
Cells(19 + i, 5) = i
Do
Do
producto = InputBox("Ingrese el nombre del producto")
Loop Until producto <> ""
rpta = MsgBox("El nombre del producto es " & producto & ", es correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 6) = producto
Do
Do
cantidad = Val(InputBox("Ingrese la cantidad a solicitar del producto"))
Loop Until cantidad > 0
rpta = MsgBox("La cantidad solicitada del producto es " & cantidad & ", es correcto?",
vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 7) = cantidad
Do
Do
precio = Val(InputBox("Ingrese el precio del producto"))
Loop Until precio > 0
rpta = MsgBox("El precio del producto solicitado es " & precio & ", es correcto?",
vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 8) = precio
Do
Do
ID = InputBox("Ingrese el ID del producto")
Loop Until ID <> ""
rpta = MsgBox("El ID del producto es " & ID & ", es correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 9) = ID
cantidadtotal = cantidadtotal + cantidad
Cells(4, 13) = cantidadtotal
Monto = cantidad * precio
If Monto <= 50 Then
nuevomonto = Monto
ElseIf Monto > 50 And Monto <= 100 Then
nuevomonto = Monto * 0.9
ElseIf Monto > 100 And Monto <= 200 Then
nuevomonto = Monto * 0.85
Else
nuevomonto = Monto * 0.8
End If
Cells(19 + i, 10) = nuevomonto
montototal = montototal + nuevomonto
MontoSD = MontoSD + Monto
rpta = MsgBox("El cliente desea ordenar más productos?", vbYesNo)
Loop Until rpta = vbNo Or i = 9
Do
Do
FP = InputBox("Ingrese la forma de pago, recuerde que debe ser Efectivo o Tarjeta")
Loop Until FP <> ""
Loop Until FP = "Efectivo" Or FP = "Tarjeta"
descuento = MontoSD - montototal
Cells(4, 13) = cantidadtotal
Cells(31, 10) = i
Cells(3 + c, 31) = cantidadtotal
Cells(4, 14) = montototal
Cells(3 + c, 32) = montototal
Cells(4, 15) = FP
Cells(3 + c, 33) = FP
Cells(4, 16) = descuento
Cells(32, 10) = descuento
Cells(3 + c, 34) = descuento
Cells(29, 10) = montototal
Cells(30, 10) = Time
Cells(3 + c, 36) = Time
Else
If c = 0 Then
c=0
Cells(2, 2) = c
Else
nc = c
Cells(2, 2) = nc
End If
Cells(3, 2) = Empty
Cells(4, 2) = Empty
[D4:P4] = Empty
End If
Else
Cells(3, 2) = Empty
Cells(4, 2) = Empty
[D4:P4] = Empty
[F13:F16] = Empty
[E20:J28] = Empty
[J13:J16] = Empty
[J29:J32] = Empty
[E18:F18] = Empty
Cells(18, 5) = Empty
c = Cells(2, 2)
Cells(3, 2) = Date
Cells(4, 2) = Time
Operario = Cells(1, 2)
Cells(18, 5) = Operario
rpta = MsgBox(¿”El cliente realmente desea ordenar un producto?”, vbYesNo)
If rpta = vbYes Then
c=c+1
Cells(2, 2) = c
Cells(15, 10) = Time
Cells(16, 10) = Date
Cells(3 + c, 21) = c
Cells(3 + c, 35) = Time
Do
Do
nombre = InputBox("ingrese el nombre del cliente")
If nombre = "" Then
rpta = MsgBox("Ingrese el nombre, por favor")
End If
Loop Until nombre <> ""
rpta = MsgBox("El nombre del cliente es " & nombre & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 4) = nombre
Cells(13, 6) = nombre
Cells(3 + c, 22) = nombre
Do
Do
apellido = InputBox("ingrese el apellido del cliente")
If apellido = "" Then
rpta = MsgBox("Ingrese el apellido, por favor")
End If
Loop Until apellido <> ""
rpta = MsgBox("El apellido del cliente es " & apellido & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 5) = apellido
Cells(14, 6) = apellido
Cells(3 + c, 23) = nombre
Do
Do
DNI = Val(InputBox("ingrese el DNI del cliente"))
If DNI <= 0 Then
rpta = MsgBox("Ingrese el DNI, por favor")
End If
Loop Until DNI > 0
rpta = MsgBox("El DNI del cliente es " & DNI & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 6) = DNI
Cells(15, 6) = DNI
Cells(3 + c, 24) = DNI
Do
Do
telefono = Val(InputBox("Ingrese el telefono del cliente"))
If telefono <= 0 Then
rpta = MsgBox("Ingrese el telefono, por favor")
End If
Loop Until telefono > 0
rpta = MsgBox("El telefono del cliente es " & telefono & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 7) = telefono
Cells(14, 10) = telefono
Cells(3 + c, 25) = telefono
Do
Do
direccion = InputBox("Ingrese la dirección del cliente")
If direccion = "" Then
rpta = MsgBox("Ingrese la direccion, por favor")
End If
Loop Until direccion <> ""
rpta = MsgBox("La direccion del cliente es " & direccion & ", correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(4, 8) = direccion
Cells(16, 6) = direccion
Cells(3 + c, 26) = direccion
Do
Do
correo = InputBox("Ingrese la dirección de correo electrónico del cliente")
If correo = "" Then
rpta = MsgBox("Ingrese el correo electrónico, por favor")
End If
Loop Until correo <> ""
rpta = MsgBox("La direccion electrónica del cliente es " & correo & ", correcto?",
vbYesNo)
Loop Until rpta = vbYes
Cells(4, 10) = correo
Cells(13, 10) = correo
Cells(3 + c, 27) = correo
i=0
Cells(3 + c, 29) = Date
Cells(3 + c, 30) = Time
Cells(4, 11) = Date
Cells(4, 12) = Time
Do
i=i+1
Cells(19 + i, 5) = i
Do
Do
producto = InputBox("Ingrese el nombre del producto")
Loop Until producto <> ""
rpta = MsgBox("El nombre del producto es " & producto & ", es correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 6) = producto
Do
Do
cantidad = Val(InputBox("Ingrese la cantidad a solicitar del producto"))
Loop Until cantidad > 0
rpta = MsgBox("La cantidad solicitada del producto es " & cantidad & ", es correcto?",
vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 7) = cantidad
Do
Do
precio = Val(InputBox("Ingrese el precio del producto"))
Loop Until precio > 0
rpta = MsgBox("El precio del producto solicitado es " & precio & ", es correcto?",
vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 8) = precio
Do
Do
ID = InputBox("Ingrese el ID del producto")
Loop Until ID <> ""
rpta = MsgBox("El ID del producto es " & ID & ", es correcto?", vbYesNo)
Loop Until rpta = vbYes
Cells(19 + i, 9) = ID
cantidadtotal = cantidadtotal + cantidad
Cells(4, 13) = cantidadtotal
Monto = cantidad * precio
If Monto <= 50 Then
nuevomonto = Monto
ElseIf Monto > 50 And Monto <= 100 Then
nuevomonto = Monto * 0.9
ElseIf Monto > 100 And Monto <= 200 Then
nuevomonto = Monto * 0.85
Else
nuevomonto = Monto * 0.8
End If
Cells(19 + i, 10) = nuevomonto
montototal = montototal + nuevomonto
MontoSD = MontoSD + Monto
rpta = MsgBox("El cliente desea ordenar más productos?", vbYesNo)
Loop Until rpta = vbNo Or i = 9
Do
Do
FP = InputBox("Ingrese la forma de pago, recuerde que debe ser Efectivo o Tarjeta")
Loop Until FP <> ""
Loop Until FP = "Efectivo" Or FP = "Tarjeta"
descuento = MontoSD - montototal
Cells(4, 13) = cantidadtotal
Cells(31, 10) = i
Cells(3 + c, 31) = cantidadtotal
Cells(4, 14) = montototal
Cells(3 + c, 32) = montototal
Cells(4, 15) = FP
Cells(3 + c, 33) = FP
Cells(4, 16) = descuento
Cells(32, 10) = descuento
Cells(3 + c, 34) = descuento
Cells(29, 10) = montototal
Cells(30, 10) = Time
Cells(3 + c, 36) = Time
Else
If c = 0 Then
c=0
Cells(2, 2) = c
Else
nc = c
Cells(2, 2) = nc
End If
Cells(3, 2) = Empty
Cells(4, 2) = Empty
[D4:P4] = Empty
End If
End If
End Sub
7. Conclusiones y Recomendaciones
Walkenbach, J. (2013). Excel 2010 Power Programming with VBA. Recuperado de:
https://books.google.es/books?
hl=es&lr=&id=aVzLt6b2HogC&oi=fnd&pg=PA1&dq=VBA&ots=FdSgzcEROE&sig=jj
xfCenISshCFOJiDTHiHm6ccOo#v=onepage&q=VBA&f=false
Marinoni, O. (2004). Implementation of the analytical hierarchy process with VBA in ArcGIS.
Recuperado de: https://www.sciencedirect.com/science/article/pii/S0098300404000652
Tsung, K. (2007). Programming ArcObjects with VBA. Recuperado de:
https://www.taylorfrancis.com/books/mono/10.1201/9781420009187/programming-
arcobjects-vba-kang-tsung-chang
Staunton, M. (2012). Advanced Modelling in Finance using Excel and VBA. Recuperado de:
https://books.google.es/books?
hl=es&lr=&id=l0aAtPTVtJEC&oi=fnd&pg=PR3&dq=VBA&ots=zDJZjgOCoa&sig=EQ
c2E5Bu2dyg0UdbqpTvDrXA0f8#v=onepage&q=VBA&f=false
9. Apéndices y/o Anexos