Sunteți pe pagina 1din 10

Macros y Programación

con VBA Curso de Microsoft Excel Nivel Avanzado

ALGORITMOS, PSEUDOCODIGO, DIAGRAMA DE FLUJO Y CODIFICACION EN VBA DE EXCEL

1. HERRAMIENTAS DE PROGRAMACIÓN
Para implementar la solución de un problema mediante el uso de una computadora es necesario
establecer una serie de pasos que permitan resolver el problema, a través de un algoritmo, el cual debe
posibilitar transcribir dichos pasos fácilmente a un lenguaje de programación, utilizando herramientas de
programación, las cuales son métodos que permiten la elaboración de algoritmos escritos en un lenguaje
entendible.

2. DEFINICION DEL PROBLEMA


Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es
importante que se conozca lo que se desea realice la computadora. El diseño de programas es una difícil
tarea y es un proceso creativo. No existe un conjunto completo de reglas para indicar como escribir un
programa.

3.
ANALISIS DEL PROBLEMA
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
 Los datos de entrada
 Los métodos y fórmulas que se necesitan para procesar los datos.
 Cuál es la información que se desea producir (salida).

4. ALGORITMO
Un Algoritmo, se puede definir como una secuencia de instrucciones que representan un modelo de
solución para determinado tipo de problemas. O bien, también como un conjunto de instrucciones que
realizadas en orden conducen a obtener la solución de un problema. Son independientes de los lenguajes
de programación.
CARACTERÍSTICAS.- Debe ser preciso, finito, definido, tener cero o más elementos de entrada y producir un
resultado.

Las herramientas o técnicas de programación que más se utilizan y que se emplearán para la
representación de algoritmos generalmente son dos:

Lic. Manuel Mendoza Pág. : ~ 1 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

a. Pseudocódigo.
b. Diagramas de flujo.

5. IDENTIFICADORES
Los identificadores son los nombres que se les asignan a los objetos, los cuales se pueden considerar como
variables o constantes.
5.1 CONSTANTE
Un identificador se clasifica como constante cuando el valor que se le asigna a este identificador no
cambia durante la ejecución o proceso de solución del problema.
Ejemplo: el valor de la constante PI = 3.1416. El idendificador PI es una constante cuyo valor asignado
no se modificará durante todo el proceso de cálculo.
Una constante puede también un número fijo como: 20, 50, 100 ó representado por una constante
como IGV=0.18
5.2 VARIABLE
Los identificadores de tipo variable son todos aquellos objetos cuyo valor cambia durante la ejecución
o proceso de solución del problema. Por ejemplo, El sueldo, el descuento, las aportaciones o también
puede ser la suma de dos números cualquiera que permita obtener un resultado total.
Ejemplo: sumar dos números cualquiera y obtener su resultado
Num1 = 20, Num2= 100, sumatotal= Num1 + Num2. Num1, Num2 y sumatotal son variables, ya que
al modificar cualquiera de las dos primeras, también se modificará el resultado.
Tipos de variables
Los tipos de variables dependen de cómo se definen en cada lenguaje de programación, aunque la
mayoría son casi similares. Pero de manera genérica estos pueden ser:
De tipo entero: 20 ,10 100, 584. De tipo real o decimal: 10.5, 10.75, 100.24. De tipo cadena o string:
carlos, Gonzales, Av. Grau 205.

6. PSEUDOCODIGO
Esta herramienta permite pasar casi de manera directa la solución del problema a un lenguaje de
programación específico. El pseudocódigo es una serie de pasos bien detallados y claros que conducen a la
resolución de un problema.
Ejemplo. Determinar el total de la suma de dos números.
1. Inicio
2. Leer números N1, N2
3. Calcular la suma en SumaTotal = N1 + N2
4. Escribir la salida del resultado en pantalla SumaTotal.
5. Fin

7. DIAGRAMA DE FLUJO
Un diagrama de flujo es la representación gráfica mediante
símbolos especiales, de los pasos o procedimientos de manera
secuencial y lógica que se deben realizar para solucionar un
problema dado. Generalmente, los diagramas de flujo se dibujan
antes de comenzar a programar el código fuente, que se
ingresará posteriormente a la computadora.
OPERADORES

Lic. Manuel Mendoza Pág. : ~ 2 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

Dentro de un diagrama de flujo se utilizan símbolos que representan a los operadores suma, resta,
multiplicación, división, igual, mayor, menor, etc.

Los diagramas de flujo facilitan la comunicación entre los programadores y los usuarios, además de que
permiten de una manera más rápida detectar los posibles errores de lógica que se presenten al
implementar el algoritmo. A continuación se presentan los símbolos que se utilizan en el proceso de
realizar un diagrama de flujo para la solución de un problema.

Lic. Manuel Mendoza Pág. : ~ 3 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

FORMA RESUMIDA DE LOS SIMBOLOS DE DIAGRAMA DE FLUJO

Ejemplo, establecer el diagrama de flujo del anterior


pseudocódigo, es decir para la suma de dos números y
su resultado.

Inicio Inicio

Leer los números N1, N2 N1, N2

Calcular la suma de N1 + N2 SumaTotal=N1 + N2

Escribir el resultado SumaTotal


SumaTotal

Fin del proceso Fin

8. CODIFICACION
Es la escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las
etapas precedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programación
utilizado para su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.

Lic. Manuel Mendoza Pág. : ~ 4 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

En nuestro caso utilizaremos el lenguaje de programación estructurada denominada VBA Visual Basic para
Aplicaciones que está incorporado en Microsoft Excel. Este lenguaje permite la construcción de código
modular.

Ejemplo. Pasar el pseudocódigo representado en el diagrama de flujo anterior a codificación VBA.


Primera forma: Tercera forma

Sub suma1() Sub suma3()


Dim n1 As Integer, n2 As Integer 'la entrada de los números se digitará por teclado'
n1 = 10: n2 = 20 Dim n1 As Integer, n2 As Integer
sumatotal = n1 + n2 n1 = InputBox("Ingrese el primer número :")
n2 = InputBox("Ingrese el segundo número :")
MsgBox sumatotal
'proceso calcular suma
End Sub sumatotal = n1 + n2
Segunda forma:resultado
' presentar
MsgBox "La suma total es: " & sumatotal
End Sub
Sub suma2()
Dim n1 As Integer, n2 As Integer
n1 = 10: n2 = 20
sumatotal = n1 + n2
MsgBox “Las suma total es: “ & sumatotal
End Sub

9. ESTRUCTURAS DE CONTROL ALGORITIMICAS


Sin importar qué herramienta o técnica se utilice para la solución de un problema dado, ésta tendrá una
estructura, que se refiere a la secuencia en que se realizan las operaciones o acciones para resolver el
problema. Esas estructuras pueden ser:
 Secuenciales,
 Condicionales o de decisión y
 De ciclo o repetición.
9.1 ESTRUCTURAS SECUENCIALES
Es aquella en la que una acción (instrucción) sigue a la otra en el orden en el que están escritas.
Ejemplo 1.
Se desea realizar el cálculo de dos números que permita sumar, restar, multiplicar y dividir dichos
números
PSEUDOCODIGO DIAGRAMA DE FLUJO
1. Inicio
2. Leer o ingresar dos números A y B. Inicio
3. Hacer o procesar :
a. S = A + B Leer A, B
b. R = A – B
c. M = A * B S=A+B
R=A–B
d. D = A/B M=A+B
4. Escribir o visualizar los resultados: S, R, M,D D=A/B
5. Fin del proceso
CODIFICACION EN VBA DE EXCEL S, R, M, D

Sub CalculosBasicos()
A=8 Fin
B=2
S=A+B
Lic. Manuel Mendoza Pág. : ~ 5 ~ Tacna, 2017
R=A-B
M=A*B
D=A/B
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

Ejemplo 2
El alumno Carlos Gonzales obtiene 4 notas del curso de Macros y Programación. Se pide realizar el
pseudocódigo, diagrama de flujo y su codificación con la finalidad de obtener su promedio final.
PSEUDOCODIGO DIAGRAMA DE FLUJO CODIFICACION
1. Inicio
2. Leer por teclado n1, n2, n3, n4 Inicio
Sub PromedioNotas()
3. Hacer Promedio a P: n1 = Val(InputBox("Ingrese la primera nota: "))
Leer n2 = Val(InputBox("Ingrese la segunda nota: "))
a. S = n1 + n2 + n3 + n4 n1,n2,n3,n4 n3 = Val(InputBox("Ingrese la tercera nota: "))
b. P = S/4 n4 = Val(InputBox("Ingrese la cuarta nota: "))
4. Escribir el promedio P S = n1+n2+n3+n4 S = (n1 + n2 + n3 + n4)
P=S/4
5. Fin MsgBox "El promedio de notas es : " & P
P = S /4 End Sub

Ejercicios propuestos Fin


1. Se requiere conocer el área de un rectángulo. Realice un algoritmo para tal fin y
represéntelo mediante un diagrama de flujo, el pseudocódigo y codificación para realizar este
proceso
2. Un productor de leche lleva el registro de lo que produce en litros, pero cuando entrega le pagan
en galones. Realice un algoritmo, y represéntelo mediante un diagrama de flujo y el
pseudocódigo, que ayude al productor a saber cuánto recibirá por la entrega de su producción de
un día (1 galón = 3.785 litros)
3. Se requiere determinar el salario semanal de un trabajador con base en las horas que trabaja y el
pago por hora que recibe. Realice el diagrama de flujo y el pseudocódigo que representen el
algoritmo de solución correspondiente.
4. Una modista, para realizar sus prendas de vestir, encarga las telas al extranjero. Para cada pedido,
tiene que proporcionar las medidas de la tela en pulgadas, pero ella generalmente las tiene en
metros. Realice un algoritmo para ayudar a resolver el problema, determinando cuántas pulgadas
debe pedir con base en los metros que requiere. Represéntelo mediante el diagrama de flujo y el
pseudocódigo (1 pulgada = 0.0254 m). Prácticamente es convertir metros a pulgadas.
5. Una empresa que contrata personal requiere determinar la edad de las personas que solicitan
trabajo, pero cuando se les realiza la entrevista sólo se les pregunta el año en que nacieron.
Realice el diagrama de flujo y pseudocódigo que representen el algoritmo para solucionar este
problema

9.2 ESTRUCTURAS DE CONTROL CONDICIONALES O SELECTIVAS


Las estructuras condicionales comparan una variable(s) contra otro(s), para que en base a esta
comparación, se siga un curso de acción dentro del programa.

Lic. Manuel Mendoza Pág. : ~ 6 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

9.2.1 ESTRUCTURA DE SELECCIÓN SIMPLE (SI… ENTONCES = IF…THEN)


Este es el tipo el tipo más sencillo de estructura condicional. Sirve para implementar acciones
condicionales del tipo siguiente:
Si se verifica una determinada condición, ejecutar una serie de instrucciones y luego seguir
adelante.
Si la condición NO se cumple, NO se ejecutan dichas instrucciones y se sigue adelante.
Ejemplo
Se desea escribir el resultado “Aprobado” para un alumno que tenga la nota final (NF) mayor
que 10. Realizar el pseudocódigo, diagrama de flujo y codificación
PSEUDOCODIGO DIAGRAMA DE FLUJO CODIFICACION
1. Inicio
Inicio
2. Leer NF
Sub SiSimple1()
3. Si NF > 10 entonces Leer NF
nf = InputBox("ingrese la nota final")
“Aprobado” If nf > 10 Then
Si NF > 10 MsgBox "Aprobado"
Fin de la comparación Si
No
SI End If
4. Fin del proceso Aprobado End Sub

Fin

9.2.2 ESTRUCTURA DE SELECCIÓN DOBLE (SI… ENTONCES…SINO = IF…THEN…ELSE)


Este tipo de estructura permite implementar condicionales en los que hay
dos acciones alternativas:
 Si se verifica una determinada condición, ejecutar un serie de
instrucciones (bloque1)
 Sino, esto es, si la condición NO se verifica, ejecutar otra serie de
instrucciones (bloque 2)
Ejemplo
Realice un algoritmo que al ingresar un número por teclado, imprima “POSITIVO” si el
número es mayor que cero, sino que imprima o escriba “NEGATIVO”
PSEUDOCODIGO DIAGRAMA DE FLUJO CODIFICACION
1. Inicio
2. Leer Num Inicio
Sub SiDoble()
3. Si Num > 0 Entonces Leer num = InputBox("Ingrese un _
num número :")
“POSITIVO”
If num > 0 Then
Sino MsgBox "POSITIVO"
num > 0 No
“NEGATIVO” Si Else
Fin si MsgBox "NEGATIVO"
End If
4. Fin POSITIVO NEGATIVO
End Sub

Fin

9.2.3 ESTRUCTURA DE SELECCIÓN DOBLEMENTE ENCADENADA (SI…ENTONCES…SINO..SI = IF…


THEN…ELSEIF)
Permite implementar condiciones más complicadas, en los que se “encadenan” condiciones
en la siguiente forma:
 Si se verifica la condición 1, ejecutar las instrucciones del bloque 1
 Si no verifica la condición1, pero SI se verifica la condición 2, ejecutar instrucciones del
bloque 2

Lic. Manuel Mendoza Pág. : ~ 7 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

 Si no, esto es, si no se ha verificado ninguna de las dos condiciones anteriores, ejecutar
instrucciones del bloque 3.

Ejemplo
Se requiere determinar cuál de tres cantidades proporcionadas es la mayor. Realizar su
respectivo algoritmo y representarlo mediante un diagrama de flujo. Los valores de las
variables se presentan a continuación

PSEUDOCODIGO
CODIFICACION

Sub NumMayor()
Dim A As Integer, B As Integer, C As Integer
A = InputBox("Ingrese el primer número: ")
B = InputBox("Ingrese el Segundo número: ")
C = InputBox("Ingrese el tercer número: ")
If A > B Then
If A > C Then
mayor = A
Else
mayor = C
End If
ElseIf B > C Then
mayor = B
Else
mayor = C
End If
MsgBox "El número mayor es : " & mayor
End Sub

9.2.4 ESTRUCTURA DE SELECCIÓN MULTIPLE (EN CASO = CASE)

Lic. Manuel Mendoza Pág. : ~ 8 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

La estructura selectiva múltiple permite que el diagrama se bifurque por varias ramas
en el punto de la toma de decisión, es decir, basado en un selector que permita
escoger entre uno u otro valor y permita ejecutar una acción.
Ejemplo
Una empresa desea aumentar de sueldos a los empleados que están en la categoría A a la C
un 10% de aumento y a los que están entre D y F un aumento de 5% de su sueldo. A cualquier
otra categoría no se realizará ningún aumento.
PSEUDOCODIGO DIAGRAMA DE FLUJO
1. Inicio
Inicio
2. Leer la Categoría del Empleado
3. Seleccionar Leer
Categoría
a. En caso sea A, B o C, Aumentar 10% de sueldo
b. En case sea D, E o F, Aumentar 5% de sueldo
A,B,C Categoría D,E,F
c. En cualquier otro caso, No aumentar sueldo
Fin de la selección Otra categoría

4. Fin Aumentar 10% No aumentar Aumentar 5%

CODIFICACION Fin

Sub ElegirCategoria()
categoría = InputBox("Ingrese la categoría (en letra mayus): ")
Select Case UCase(categoría)
Case "A", "B", "C"
MsgBox "Aumentar sueldo 10%"
Case "D", "E", "F"
MsgBox "Aumentar sueldo 5%"
Case Else
MsgBox "Esta categoria no tiene aumento"
End Select
End Sub

9.3 ESTRUCTURAS DE CONTROL REPETITIVOS (BUCLES)


Estas estructuras se emplean con base en las condiciones propias de cada problema, los nombres con
los que se conocen éstas son: “Mientras que” (While…Loop), “Repite hasta que” (Do…Loop) y “Desde,
hasta que” (For … next)

Lic. Manuel Mendoza Pág. : ~ 9 ~ Tacna, 2017


Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

9.3.1 ESTRUCTURA DE CONTROL FOR…NEXT

Este Este tipo de estructura permite implementar la repetición de un cierto conjunto de


instrucciones un número pre-determinado de veces.
Para ello se utiliza una variable de control del bucle, llamada también índice, que va
recorriendo un conjunto pre-fijado de valores en un orden determinado. Para cada valor del
índice en dicho conjunto, se ejecuta una vez el mismo conjunto de instrucciones.
Ejemplo
Sumar los valores de los 10 primeros números enteros
CODIFICACION

Sub Suma10Num()
Dim i%
Dim S%
For i = 1 To 10
S=S+i
Next
MsgBox "La suma de los 10 primeros numeros es: " & S
End Sub

9.3.2
9.4

Lic. Manuel Mendoza Pág. : ~ 10 ~ Tacna, 2017

S-ar putea să vă placă și