Sei sulla pagina 1di 74

Andrs Felipe lvarez Serna Ing. sistemas Esp. Seguridad informtica andresfelipealvarez@unaula.edu.

co

AGENDA
GENERALIDADES SOBRE ALGORITMOS
Tipos de campos Clases de informacin La lgica El procedimiento La expresin Pasos para la solucin de un problema El algoritmo Concepto de programacin estructurada Representacin de algoritmos

AGENDA
ESTRUCTURA SECUENCIAL
Representacin Instruccin de asignacin Instruccin de entrada de datos Instruccin de salida de datos

ESTRUCTURA DE DECISIN LOGICA

Representacin Funcionamiento

AGENDA
CONCEPTOS BSICOS DE VISUAL BASIC PARA APLICACIONES
El BASIC de Excel El Editor de Visual Basic Algunos objetos de Excel Variables Tipos de datos en VBA Funciones de Conversin de tipos

AGENDA
ESTRUCTURA REPETITIVA
Representacin Funcionamiento Variables tipo contador Variables tipo acumulador Esquema cuantitativo Esquema cualitativo Variables tipo bandera Ruptura de ciclos Rompimiento de control de ejecucin

AGENDA
ESTRUCTURAS ADICIONALES Estructura caso o seleccin mltiple Estructura para
ESTRUCTURAS DE PROGRAMACIN EN VBA La estructura If End If La funcin MsgBox Operadores lgicos en VBA La estructura de programacin Select Case La estructura repetitiva For To Next

AGENDA
FORMULARIOS Y CONTROLES
Estudio del UserForm El cuadro de controles Cuadros de Texto Etiquetas Botones Cuadros de Lista Cuadros de verificacin Botones de opcin El control Frame

EVALUACIO N Seguimiento 10%


Practica 10 % Parcial Seguimiento Practica 10% Parcial Final

febrero 8 al 22 de marzo

marzo 15 15% marzo 22 10% abril 5 al 24 de mayo mayo 10 15% mayo 17 30% mayo 30

BIBLIOGRAFIA
[1] Oviedo, Efran (2004). Lgica de Programacin (1ra Ed.). Bogot, Colombia: Ecoe Ediciones. [2] Vil, Fermi (2005). VBA EXCEL 2002/2000 49 ejercicios prcticos (1ra Ed.). Mxico: Alfaomega. [3] Rodrguez, Carlos & Rodrguez, Pablo (2004). Visual Basic 6.0 (1ra Ed.). Santo Domingo, Repblica Dominicana. [4] Mansfield, Richard, Mastering VBA for Microsoft Office 2007, Segunda edicin, 2008. Wiley Publishing, Inc. [5] ACOBSON. Programacin de MS Excel 2002 Macros y Visual Basic. Marzo 2002. Mc Graw-Hill

GENERALIDADES SOBRE ALGORITMOS

Tipos de campos Clases de informacin La lgica El procedimiento La expresin Pasos para la solucin de un problema El algoritmo Concepto de programacin estructurada Representacin de algoritmos

El concepto de algoritmo
Qu es un algoritmo?

Es una secuencia de procesos (tareas, operaciones) ordenada lgicamente que permite obtener ciertos resultados a partir de ciertos datos. Disear un buen algoritmo exige un buen nivel de abstraccin, lgica, imaginacin, creatividad, dominio de las tcnicas de programacin, y algo de dominio del rea del problema que se intenta resolver. Por esta razn es que disear un algoritmo se considera tanto ciencia como arte.

Diseo de algoritmos
Estructuras bsicas
Un algoritmo se elabora (construye) mediante ciertos componentes bsicos llamados estructuras Por esta razn, este tipo de programacin se conoce como programacin estructurada

1. Entrada y salida de

datos 2. Secuencia 3. Seleccin lgica

Todo algoritmo tiene cero o ms entradas y debe Mostrar uno o ms resultados Todo algoritmo es una secuencia lgica de ciertas operaciones Permite elegir una de dos o ms vas de accin (alternativas) Es la repeticin de una o ms operaciones. De antemano, puede conocerse o no cuntas veces se repetirn las operaciones (iteracin definida o indefinida

4. Iteracin

Diseo de algoritmos

ENTRADA

PROCESAMIENTO

SALIDA

Datos de Entrada

Clculos matemticos lgicos

Muestran Resultados Graban Imprimen Transmiten

Diseo de algoritmos
Ejemplo Disear un algoritmo para calcular el rea de un tringulo
Anlisis: Cules son los datos de entrada? Cules son los datos de salida? Qu clculos/procesos deben llevarse a cabo?

Diseo de algoritmos
ENTRADA

Base , Altura

PROCESAMIENTO

rea= (Base X Altura)/2

SALIDA

rea

Representacin de Algoritmos
Pseudocdigo INICIO Leer Base, Altura Area = (Base*Altura)/2 Mostrar Area FIN Diagrama de caja INICIO Leer Base, Altura Area = (Base*Altura)/2 Mostrar Area FIN

Diseo de Algoritmos
Ejemplo 3 Suponga que se necesita un algoritmo para realizar la factura en un Almacn que vende televisores al por mayor. La factura debe mostrar el valor total a pagar y el valor de los impuestos. El costo por unidad de los televisores es de $700.000 y el impuesto aplicado es del 16%.

Anlisis? INICIO Leer numero_unidades Impuestos = numero_unidades* $700.000 * 0.16 Total = numero_unidades* $700.000 + Impuestos Mostrar Total, Impuestos FIN

Algoritmo, Lenguaje y Programa


Los trminos algoritmo y programa tienden a confundirse y en algunos casos a utilizarse indiferentemente. Recordemos que el trmino algoritmo se refiere a la secuencia de pasos para resolver un problema, pero independiente del lenguaje de programacin que se utilice, mientras que programa se refiere propiamente a la codificacin de un algoritmo en algn lenguaje de programacin.
Un conjunto de programas con un fin especfico constituye un software.

Metodologa general de trabajo


1. Anlisis del problema Entender el problema. Identificar las variables (de entrada, de salida e intermedias) y las constantes Identificar las restricciones y relaciones matemticas y lgicas entre variables y constantes Representar la secuencia de pasos (operaciones, o procesos) de manera lgica, mediante una forma apropiada (pseudocdigo, diagrama de caja, diagrama de flujo). Realizar prueba de escritorio al algoritmo para validar que haga lo que debe hacer Elaborar la interfaz grfica del usuario (si se trata de un lenguaje de programacin visual). Escribir los procedimientos pertinentes. Ejecutar y depurar el cdigo

2. Diseo de una solucin

3. Validacin de la solucin

4. Codificacin en un lenguaje de programacin

Ejercicios
Para resolver los siguientes problemas, recuerde realizar los 3 pasos vistos para disear algoritmos: Anlisis: Determine cuales son las entradas y las salidas Diseo: Represente el algoritmo en pseudocdigo o diagrama de caja Verificacin: Pruebe que el algoritmo haga lo que se espera 1. Disear un algoritmo que calcule la altura desde la que cae un objeto que tarda t segundos en llegar al suelo usando la frmula: h = gt2 siendo g = 9.81 m/seg 2.

Ejercicios
ENTRADA

t
h = (9.81)t2

PROCESAMIENTO

SALIDA

Tipos de datos comunes


Datos

Numricos

Carcter

Lgicos

Entero

Real
Sencillo Cadena

Corto

Largo

Simple

Doble

Nombres de variables
Para nombrar una variable en la mayora de los lenguajes de programacin es necesario seguir ciertas reglas: Debe empezar obligatoriamente con una letra (a-z o A-Z) No pueden contener espacios en blanco El resto de los dgitos pueden ser nmeros Se pueden incluir caracteres especiales como el guin bajo (underline).

Asignacin
Para darle valor a una variable dentro de un algoritmo existen dos alternativas: Leer la variable (obviamente cuando se trata de una variable de entrada) Ej: Leer X Asignarle un valor directamente, o el resultado de una operacin Ej: A = 3 Z = (X+Y)*2

Precedencia de los operadores


Es necesario considerar el orden en que se evala la expresin cuando aparecen dos o ms operaciones aritmticas. En general los lenguajes de programacin coinciden en evaluar primero lo que se encuentra entre parntesis comenzando por los parntesis ms internos. Dentro de cada parntesis o en una expresin libre de parntesis es comn evaluar de la siguiente forma: Se recorre de izquierda y se evalan (en ese orden): Funciones especiales (raz cuadrada, valor absoluto, logaritmo, seno, coseno, tangente elevar a potencia, etctera) Divisiones (/), multiplicaciones (*), divisin entera (%). Sumas (+) y/o restas (-).

Ejemplo
Dado que al ejecutar un algoritmo este trabaja en secuencia, determinar los valores finales de las variables suponiendo que se tienen las siguientes instrucciones:
Lnea

i
3

j
5

1. i = 3 2. j = 5 3. k = i + j 4. j = k / 2 5. i = i - 1 6. m = i + k * 3 7. n = k * (3 + i)

1 2 3 4 5 6

8 4 2 26 40

Condicional simple
En los lenguajes de programacin es comn el uso de condicionales que sirven para denotar diferentes alternativas que pueden llevarse a cabo dado el valor de una expresin lgica, el cual siempre ser verdadero o falso. La forma ms simple que tiene un condicional (una pregunta) es: SI (expresin lgica) Instrucciones que se realizan si la expresin lgica es verdadera FIN SI

Ejemplo
Disear un algoritmo para leer la edad de una persona y decir si es mayor de edad. INICIO Leer e SI (e 18) Mostrar Mayor de edad FIN SI FIN

Condicional compuesto
Los condicionales tambin sirven para representar alternativas de ejecucin, es decir, que se haga una cosa u otra dependiendo del valor de una expresin lgica. La forma en este caso es:

SI (expresin lgica) Instrucciones que se realizan si la expresin lgica es verdadera DE LO CONTRARIO Instrucciones que se realizan si la expresin lgica es falsa FIN SI

Ejemplo
Disear un algoritmo para leer un nmero y decir si es par o impar. INICIO Leer n SI (n % 2 = 0) Mostrar El nmero es par DE LO CONTRARIO Mostrar El nmero es impar FIN SI FIN

Condicional mltiple
Cuando hay ms de dos alternativas (no es slo la parte verdadera y falsa de una nica expresin lgica), se puede emplear el condicional mltiple de la siguiente manera:

SI (expresin lgica 1) Instrucciones que se realizan si la expresin lgica 1 es verdadera DE LO CONTRARIO SI (expresin lgica 2) Instrucciones que se realizan si la expresin lgica 1 es falsa y la expresin lgica 2 es verdadera DE LO CONTRARIO Instrucciones que se realizan si todas las expresiones lgica son falsas FIN SI

Ejemplo
Disear un algoritmo para leer la nota final de un estudiante y decir si gan, perdi definitivamente o si puede habilitar (suponiendo que se pueda) INICIO Leer nota SI (n 3) Mostrar El estudiante gan DE LO CONTRARIO SI (n 2.6) Mostrar El estudiante puede habilitar DE LO CONTRARIO Mostrar El estudiante perdi FIN SI FIN

Operadores lgicos y conectores


Operador En VBA

Las expresiones lgicas que se utilizan en los condicionales pueden ser simples (slo es necesario evaluar una pregunta) o compuestas (varias preguntas), y pueden usar cualquier operador lgico

> < =

> < >= <= =

Conector Accin

<>
En VBA

Y O NO

P Y Q es verdadera slo si tanto P como Q son verdaderas, en caso contrario es falsa P O Q es verdadera si cualquiera de las dos es verdadera, y slo es falsa si ambas son falsas No P cambia el valor de P

AND OR NOT

Ejemplo
Si A=10, B=8 y C=6, cual es el valor de:

A>B B<=C A>=B or B<C A>B and B<C


Not (A>C) B<C or A<=C B<>A and B>C True Not(B>A and B>C)

True False True False


False False

True

REPASO
Qu es un algoritmo ? Diseo y estructura de algoritmo:
Datos, Secuencia, Seleccin lgica, Iteracin. Entrada y salida de

Representacin de algoritmo. Tipos de Datos. Variables. Asignacin. Precedencia de los operadores. Condicionales. Operadores.

Disear un algoritmo para leer 3 valores numricos a, b y c y mostrar cul es el mayor.

Ejercicios

Disear un algoritmo para ingresar el total de ventas mensuales de un trabajador y calcular su correspondiente comisin. En la empresa XYZ Ltda. las comisiones mensuales que se les pagan a los vendedores se calculan segn la siguiente tabla:
Rango de Ventas Ventas < 5000000 % de comisin aplicado 2.5

5000000 <= Ventas < 15000000


15000000 <= Ventas < 30000000 30000000 <= Ventas < 55000000 Ventas >= 55000000

7.5
11.5 15.0 3050.000 + 7.5% (Ventas - 55000.000)

Alternativa 1
Leer A, B, C Si (A > B) Si ( A > C) Mostrar A, es el mayor Fin Si Fin Si Si (B > A) Si (B > C) Mostrar B, es el mayor Fin Si Fin Si Si (C > A) Si (C > B) Mostrar C, es el mayor Fin Si Fin Si

Alternativa 2
Leer A, B, C Si ((A > B) Y (A > C)) Mostrar A, es el mayor Fin Si Si ((B > A) Y (B > C)) Mostrar B, es el mayor Fin Si Si ((C > A) Y (C > B)) Mostrar C, es el mayor Fin Si

Alternativa 3
Leer A, B, C Si ((A > B) Y (A > C)) Mostrar A, es el mayor De lo contrario Si ((B > A) Y (B > C)) Mostrar B, es el mayor De lo contrario Mostrar C, es el mayor Fin Si Fin Si

Alternativa 4
Leer A, B, C Si ((A > B) Y (A > C)) Mostrar A, es el mayor De lo contrario Si ((B > A) Y (B > C)) Mostrar B, es el mayor De lo contrario Mostrar C, es el mayor Fin Si

Ejercicios
Disear un algoritmo para leer tres variables A, B y C y determinar cual es el nmero de la mitad. No es el mayor ni el menor de los tres.
Disear un algoritmo para leer cuatro variables A, B, C, D y determinar si estn en orden ascendente, en orden descendente, o desordenados.

Ejercicios
Disee un algoritmo que lea cuatro nmeros reales A, B, C, D y un numero entero J. Dependiendo del nmero entero J el programa debe ejecutar alguno de los siguientes clculos:
Si J=1 X = A + B + C+ D Si J=2 X = (A + B + C+ D)/4 Si J=3 X = (A + B)/(C + D) SI J=4 X = A/B +C/D SI J=5 X = A/(B-C*D)

Ejercicios
Disee un algoritmo que determine si un numero ingresado por pantalla es positivo o negativo.
Una empresa distribuidora de calzado, realizara promociones de sus artculos de las siguiente manera: Si el total de la compra es superior a $500.000 debe de realizar un descuento del 15% Si el total de la factura es de $ 200.000 hasta $499.000 el descuento es de 8,5% Desarrollar un seudocdigo para generar los descuentos automticamente.

Ejercicios
Disee un algoritmo que determine si un numero ingresado por pantalla es positivo o negativo.
Una empresa distribuidora de calzado, realizara promociones de sus artculos de las siguiente manera: Si el total de la compra es superior a $500.000 debe de realizar un descuento del 15% Si el total de la factura es de $ 200.000 hasta $499.000 el descuento es de 8,5% Desarrollar un seudocdigo para generar los descuentos automticamente.

Ejercicios
Desarrolle un algoritmo que lea seis nmeros diferentes y a continuacin imprima el mayor de los cuatro nmeros introducidos y tambin el menor de ellos.

Un contador se utiliza para determinar cuantas veces se cumple una determinada condicin dentro de un proceso iterativo.
Ejemplo: disear un algoritmo para leer N notas y decir cuantos estudiantes ganaron. INICIO Leer N C=0 PARA i=1,i<=N,+1 Leer nota SI nota > = 3 C=C+1 FIN SI FIN PARA Escribir C ganaron FIN

Contador

Acumulador
Un acumulador se utiliza para almacenar el resultado de una acumulacin (sumas o productos) dentro de un proceso iterativo.
Ejemplo: disear un algoritmo para mostrar la sumatoria de los primeros M nmeros enteros positivos. INICIO Leer M S=0 PARA i=1,i<=M,+1 S=S+i FIN PARA Escribir Sumatoria S FIN

Esquema general
Contador variable = variable + 1 Acumulador variable = variable + * X
En ambos casos, como en toda operacin de asignacin, primero se evala el lado derecho, y el resultado se asigna al lado izquierdo.

Disear un algoritmo para leer las notas de X estudiantes y mostrar el promedio de los que ganaron.
INICIO Leer X Contador = 0, Suma = 0, prom=0 Para i:0, <X, +1 Leer nota Si (nota >= 3) Contador = Conador+1 Suma = Suma+nota Fin Si Fin para Prom = Suma/Contador Escribir El promedio de los que ganaron fue: Prom FIN

Ejemplo

Iteracin definida
La instruccin PARA permite implementar la estructura de iteracin definida.
Se ejecuta un conjunto de instrucciones cierto nmero de veces. Se contina con la instruccin siguiente cuando se agota el ciclo

Estructura general

PARA variable = valor Inicial, <= valor Final, variacin


Instrucciones que se ejecutan en cada iteracin

FIN PARA

Iteracin definida
Pseudocdigo

Para i = 1, <= 10, +1 Escribir i Fin Para Para i = 1, <= 10, +1 Escriba i For i = 1 To 10 Step 1 TextBox1 = TextBox1.text & i Next i

Diagrama de caja

VBA

Ejemplo
Elaborar un algoritmo para calcular la raz cuadrada de los primeros 100 nmeros naturales pares
VB Private Sub CommandButton1_Click() For i = 2 To 200 Step 2 ListBox1.AddItem Sqr(i) Next i End Sub

Inicio Para i=2,<=200,+2 Escribir i

Ejemplo
Una persona invierte un capital C al r% anual, en una cuenta de ahorros, durante n aos. Elaborar un algoritmo que calcule el saldo ao por ao teniendo en cuenta la siguiente frmula: s = C*(1 + r)n
Donde: n = nmero de aos C = capital invertido r = tasa de inters anual s = cantidad de depsito al final del ensimo ao.

Ejemplo
INICIO Leer C, n, r r = r/100 Para i: 1, <=n, +1 s = C*(1 + r) i Mostrar Saldo del ao, i, :, s Fin para Fin

Disear un algoritmo para mostrar los n primeros trminos de la siguiente serie y su sumatoria.
INICIO Leer n S=0 Para i:1, <=n, +1 num = i2 den = (2*i+1) T = num/den S = S+T Escribir T Fin Para Escribir La sumatoria es: S FIN

Ejemplo

1 4 9 16 25 ; ; ; ; ;XXXXXX 3 5 7 9 11

Disear un algoritmo para determinar si un nmero A es primo o no


INICIO Leer A nd = 0 Para i : 1, <= A, +1 Si A % i = 0 nd = nd +1 Fin Si Fin Para Si nd > 2 Escribir No es primo De lo contrario Escribir Si es primo Fin Si FIN

Ejemplo

VISUAL BASIC
Cuando se construye un formulario se insertan los controles a utilizar, para cada Control se define el cdigo con el cual se va a responder a cada uno de los Eventos. Para acceder al cdigo solo se debe de realizar doble click sobre algn control e inmediatamente saldr el inicio y fin de esa funcin con su respectivo Evento. private sub cmdboton1_click() Botn 1 end sub Veamos algunos eventos sobre controles: Activate: Se activa al cargar un formulario. Terminate: Se activa cuando se cierra el formulario. Click: Se activa cuando el usuario da click sobre algn control. Change: se activa cuando hay un cambio sobre el control. Keypress: Se activa cuando se presiona una tecla sobre un control. MouseMove: Se activa cuando un mouse se mueve sobre un control.

VISUAL BASIC
Ejemplo: realizar un algoritmo para calcular la suma de dos nmeros enteros. 1. 2. 3. 4. 5. Creamos un formulario. Insertamos los controles necesarios. Programamos los controles. Ejecutamos Realizamos prueba de depuracin

VISUAL BASIC
1. Crear formulario.

VISUAL BASIC
2. Insertamos los controles necesarios.

VISUAL BASIC
3. Programamos los controles. En este caso las variables de entrada sern Numero 1 y numero2 que deben ser digitadas por el usuario en los cuadros de texto respectivamente, la variable de salida debe ser mostrada en el cuadro de texto resultado y realizar la suma de los nmeros enteros que ser programada cuando el usuario realice click en el botn calcular. Procedemos entonces a programar el evento Click del botn calcular.

Private Sub cmdBotonCalcular_Click() txtResutado = Val(txtNumero1) + Val(txtNumero2)

End Sub

VISUAL BASIC
4. Ejecutar tecla (F5)

VISUAL BASIC
4. Prueba de escritorio - depurador Realizamos dentro del cdigo del evento un punto de control para que el programa pare en ese punto. Se da click(o tecla (F9)) en la parte izquierda de la lnea de cdigo donde se quiere hacer la interrupcin

Lnea de cdigo

VISUAL BASIC
Si colocamos el cursor del mouse sobre el nombre de cada control veremos el dato que contiene dicho control

En este paso observamos que el control txtresultado es Igual a vaco, para avanzar en el depurador presionamos la tecla (F8) y vemos que txtResultado ya tiene un valor

FUNCION MSGBOX
MsgBox ("Las notas seran impresas por pantalla")

MsgBox ("Las notas seran impresas por pantalla"), vbOKCancel + vbInformation, "Mensajito"

Visual Basic
Variables: para definir las variables en visual se debe tener en cuenta lo siguiente
TIPO DE VARIABLE LUGAR DE DECLARACION Global o publica Dim o Private Declaraciones de *bas Declaraciones de *bas ACCESIBILIDAD Desde todos los formularios Desde todas las funciones de ese modulo

Public
Dim o private

Declaraciones de *frm
Declaraciones de *frm

Desde Cualquier procedimiento del propio formulario


Desde cualquier procedimiento del propio formulario

Dim

Cualquier procedimiento de modulo

Desde el propio procedimiento

Tipos de datos
TIPO Boolean Byte Integer Long Single DESCRIPCION Binario Entero corto Entero (2 bytes) Entero largo (4 bytes) Real simple precisin (4 bytes ) RANGO True o False 0 a 255 -32768 a 32767 -2147483648 a 2147483647 -3.40E+38 a 3.40E+38

Double Currency String


Date

Real doble precisin ( 8 bytes) Nmero con punto decimal fijo (8 bytes) Cadena de caracteres (4 bytes + 1 byte/car hasta 64 K)
Fecha (8 bytes)

-1.79D+308 a 1.79D+308 -9.22E+14 a 9.22E+14 0 a 65500 caracteres.


1 de enero de 100 a 31 de diciembre de 9999. Indica tambin la hora, desde 0:00:00 a 23:59:59.

Declaracion variables
Para declarar las variables se utiliza la sentencia siguiente: Dim NombreVariable As TipoVariable

EJEMPLO
Dim Radio As Double, Superficie as Single Dim Nombre As String Dim Etiqueta As String * 10 Dim Francos As Currency Dim Longitud As Long, X As Currency Es importante evitar declaraciones del tipo: Dim i, j As Integer

OPERADORES
TIPO OPERACION OPERADOR EN VBasic

Aritmtico

Exponenciacin Cambio de signo (operador unario) Multiplicacin, divisin

^
*,/

Divisin entera
Suma y resta Resto de una divisin entera
Raiz

\
+,Mod

Sqr
& ,+ = , <= ,< , >, >= , <>

Concatenacin Relacional

Concatenar o enlazar
Igual, menor igual, menor, mayor , mayor igual, diferente

controles
ABREVIATURA chk CONTROL check box

cmd
frm lbl lst opt cbo txt mnu

command button
form label list option button combo y drop-list box text edit box menu

Codigo Vbasic
Dim A as Double DEFINIR VARIABLES Dim B as Double DEFINIR VARIABLES Dim resultado as Double DEFINIR VARIABLES Private Sub cmdLeer_Click() EVENTO BOTON LEER A= Val(txtA.Text) B= Val(txtB.Text) End Sub Private Sub cmdSuma_Click() EVENTO BOTON SUMA resultado= A+B txtResultado.Text =resultado End Sub

VISUAL BASIC
Para llamar un formulario desde otro:

Comentar una lnea de cdigo

Private Sub CmdLlamar_Click() FrmFormulario2.Show Llama al otro formulario Unload Me Descarga el formulario End Sub Estructura SI en visual Basic

if i = 0 then xxxxxxx xxxxxxxx


else yyyyyy yyyyy End if

Desarrolle un algoritmo que realice la sumatoria de los nmeros enteros mltiplos de 5, comprendidos entre el 1 y el 100, es decir, 5 + 10 + 15 +. + 100. El programa deber imprimir los nmeros en cuestin y finalmente su sumatoria

Potrebbero piacerti anche