Curso de Introduccin a la programacin de Visual Basic en Excel
El objetivo del curso es aprender a programar en visual basic en excel para la resolucin de problemas matemtica, estadstica bsicas Tipos de procesos o estructuras bsicas de control en programacin: Secuencial: conjunto de proposiciones en un orden determinado constituye una secuencia.
Decisin e iteracin: cuando se necesita especificar dos cursos alternativos de accin, que dependern de cierta condicin, usando el s condicional. Tambin se da el caso de tener ms de dos opciones, aqu se utiliza la ramificacin de proceso, el comando: case_of_else. 2 Pasos de programacin
Enunciado del problema o descripcin de la tarea. Modelo matemtico. Requerimiento de datos. Algoritmo: Pseudocdigos Diagrama de flujo. Codificacin lenguaje de programacin Resultados y anlisis (prueba de escritorio).
3 Operadores Aritmticos
Mayor prioridad ( ) ^ mod div * / Menor prioridad + -
Operadores relacionales Operadores lgicos y and o or = no not =
Variables compuestas String, dimension, set, object, pointer o apuntadores Tipo de variables Variant, puede ser simple o compuesta Ejemplos: Integer: nmeros enteros, para numerar las filas y columnas Long: nmeros enteros, para numerar los habitantes de una ciudad o los nmeros de telfonos Boolean: para una variable con slo dos posibles valores (s o no, F o V) Single: para variables fsicas con decimales que no exijan precisin Double: para variables fsicas con decimales que exijan precisin Currency: para cantidades grandes de dinero 5 Tipo de variables Tipo Descripcin Rango Boolean Binario True o False Byte Entero corto 0 a 255 Integer Entero (2 bytes) -32768 a 32767 Long Entero largo (4 bytes) -2147483648 a 2147483647 Single Real simple precisin (4 bytes) -3.40E+38 a 3.40E+38 Double Real o doble precisin (8 bytes) -1.79D+308 a 1.79D+308 Char Carcter alfa-numrico a, b, c,, z, A, B, C,, Z, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 Currency Nmero con punto decimal fijo (8 bytes) -9.22E+14 a 9.22E+14 String Cadenas de caracteres 0 a 65500 caracteres Variant Fecha/ hora, reales, enteros, boolean, o caracteres Mismo tipo de variable almacenada 6 Abs Devuelve el valor absoluto de un nmero. Atn Devuelve el arcotangente de un nmero. El resultado es un ngulo en radianes. cos Devuelve el coseno de un ngulo en radianes. ^, Exp E elevado a una potencia. Int Fix Sgn Round(x, ndec) Devuelve la parte entera de un nmero (redondea hacia abajo). Devuelve la parte entera de un nmero Signo (1, 0, -1) Redondeo (opcional con decimales) Log Devuelve el natural (base e) logaritmo de un nmero. Rnd Devuelve un nmero aleatorio mayor o igual que 0 y menos de 1. Sin Devuelve el seno de un ngulo en radianes. Sqr Devuelve la raz cuadrada de un nmero. Tan Devuelve la tangente de un ngulo en radianes Funciones Matemticas 7 Funciones Matemticas Funcin matemtica Expresin equivalente Secante Sec(X) = 1 / Cos(X) Cosecante Cosec(X) = 1 / Sin(X) Cotangente Cotan(X) = 1 / Tan(X) Arcoseno Arcsin(X) = Atn(X / Sqr(-X * X + 1)) Arcocoseno Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) Arcosecante Arcsec(X) = Atn(X / Sqr(X * X 1)) + Sgn((X) -1) * (2 * Atn(1)) Arcocosecante Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1)) Arcocotangente Arccotan(X) = Atn(X) + 2 * Atn(1) Seno Hiperblico HSin(X) = (Exp(X) - Exp(-X)) / 2 Coseno Hiperblico Hcos(X) = (Exp(X) + Exp(-X)) / 2 Tangente Hiperblica Htan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X)) Secante Hiperblica HSec(X) = 2 / (Exp(X) + Exp(-X)) Cosecante Hiperblica Hcosec(X) = 2 / (Exp(X) - Exp(-X)) Cotangente Hiperblica Hcotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X)) Arcoseno Hiperblico Harcsin(X) = Log(X + Sqr(X * X + 1)) Arcocoseno Hiperblico Harccos(X) = Log(X + Sqr(X * X - 1)) Arcotangente Hiperblica Harctan(X) = Log((1 + X) / (1 - X)) / 2 Arcosecante Hiperblica Harcsec(X) = Log((Sqr(-X * X + 1) + 1) / X) Arcocosecante Hiperblica Harccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X) Arcocotangente Hiperblica Harccotan(X) = Log((X + 1) / (X 1)) / 2 Logaritmo en base N LogN(X) = Log(X) / Log(N) 8 Asc Devuelve el cdigo de caracteres ASCII de un carcter. Chr Devuelve el carcter correspondiente a un cdigo ASCII. Format Formato a un nmero de acuerdo con un built-in o definidos por el usuario nmero de expresin de formato. El resultado es una cadena. lnstr Devuelve la primera aparicin de una subcadena en una cadena. Al igual que en Excel a encontrar la funcin de hoja de clculo. Len Devuelve la longitud (nmero de caracteres) en una cadena. Left Devuelve los caracteres ms a la izquierda de una cadena. Right Devuelve los caracteres ms a la derecha de una cadena. Mid Devuelve un nmero especificado de caracteres de una cadena. LTrim Devuelve una cadena sin espacios iniciales. RTrim Devuelve una cadena sin espacios. Trim Devuelve una cadena sin espacios iniciales o finales. Str Val Convierte un nmero en una cadena. Convierte una cadena en una nmero. LCase Convierte una cadena en minsculas. UCase Convierte una cadena en maysculas. Funciones de Texto 9 IsArray Devuelve True si la variable es una matriz. IsDate Devuelve True si la expresin es una fecha. IsEmpty Devuelve True si la variable no est inicializada. IsError Devuelve True si la expresin devuelve un error. IsMissing Devuelve True si un valor opcional que no ha sido entregada a una funcin de procedimiento IsNull Devuelve True si la expresin es nulo (es decir, no contiene datos vlidos) IsNumeric Devuelve True si la expresin se puede evaluar a un nmero. Isobject Devuelve True si la expresin hace referencia a un objeto vlido. LBound Devuelve el lmite inferior de la dimensin de una matriz. UBound Devuelve el lmite superior de la dimensin de una matriz. Funcin Informacin 10 Pseudocdigo, nombre Diagrama de flujo Codificacin en T. Pascal Delphi-console Codificacin en Delphi Codificacin en Fortran Codificacin en Basic Lectura o entrada de datos leer var1 Read (var1); Readln(var1,var2); Var1:=strtofloat(edit1.te xt); Read (*,*) var1 Read (*,*) var1, var2 20 imput n Escritura o salida de datos escribir o imprimir (en pantalla) var1 Write(letrero,var1+ var2); writeln(mensaje, var1); Form1.edit2.text:=inttos tr(var1); Write (*,*)letrero,var1 Print *,letrero,var2 30 print letrero; var1 Asignacin o reemplazo a := 3 + b; d := a; a := 3 + b; d := a; A = 3 + b D = a 40 let f=2*r+1 50 let f=j Si condicional Si cond1 entonces act1 If cond1 then acts1 else Acts2; If cond1 then acts1 else Acts2; If (a.ge.b) act1 endif 60 if v<4 then 100 Transferencia de control regresea o ir (a etiqueta) (casi no se usa) Goto etiqueta;
Etiqueta: (casi no se usa) Etiqueta: .. Goto etiqueta; goto etiqueta goto 20 70 goto etiqueta 70 goto 20 a=3+c v a r 1 var1 cond1 No Si Importancia del pseudocdigo y diagrama de flujo ante algunos lenguajes de programacin. Actividades bsicas:
11 Diagrama de flujo Codificacin en C Codificacin en C++ Codificacin en Java MS Excel-Visual Basic Programacin con macros scanf(%f\n, var1); Cin>>a>>b; System.ini.read(var1) ; S=in.readln(v1); (texto) var1=inputbox(valor=,numer o) var1=range(b2) printf(hola \n); Cout<<valor=<<b; System.out.println(va r1); System.out.write(int c); System.out.print(str); ActiveShee.activecell.value=nu mero Range(c1)=var1 y=y+1; y++; z=y; res=0; Num=num-1; o num--; X=99; Num=num+1; o num++; X=99; Num=num+1 D = a if (n= =1) acts1; else acts2; if (n= =1) acts1; else acts2; if (n= =1) acts1; else acts2; If cond1 then acts1 Acts2 Else acts3 end if (casi no se usa) Goto etiqueta; .. Etiqueta: (casi no se usa) Goto etiqueta;
Etiqueta: (casi no se usa) Goto etiqueta;
Etiqueta: Goto etiqueta_o_lnea a=3+c cond1 No Si v a r 1 var1 Actividades bsicas: 12 Pseudocdigo, nombre Diagrama de flujo Codificacin en T. Pascal, Delphi-console Codificacin en Delphi Codificacin en Fortran Codifi cacin en Basic Ramificacin de procesos: Case_of_else Caso segn opcin 1- acts1 2- acts2 Case opcion of 1:acts1; 2:actc1 else acts2; end; Case opcion of 1:acts1; 2:actc1 else acts2; end; En F77: Goto (etiq1,etiq2,etiq3)var1 En F90, Digital F,: Select case (var1) Case(1) Actividades1 Case(2) Actividades2 End select
Circuito de clculo: Para vi hasta vf hacer acts1
For i:=1 to n do acts1; For i:=1 to n do acts1; do i = 1, n acts1 enddo 50 for j=0 to 49
90 next j Circuito de convergencia con condicin al inicio. Mientras cond1 hacer acts1
While cond1 do acts1; While cond1 do acts1; En F90, Digital F,: do while (expr lgica) actividades enddo En F77:(se estructura as): etiq if (expr lgica) then actividades goto etiq endif Circuito de convergencia con condicin al final Repetir acts1 hasta cond1 o Hacer acts1 hasta cond1
Repeat Acts1; acts2; Until cond1; Repeat Acts1; acts2; Until cond1; En F77:( se estructura as): etiq continue actividades if (expr lgica) goto etiq cond1 No si Vi=1,n,1 Vi cond1 S cond1 si Actividades derivadas: 13 Diagrama de flujo Codificacin en C Codificacin en C++ Codificacin en Java MS Excel-Visual Basic Programacin con macros Switch(opcion) { 1:acts1; break; 2:actc1; break; } Switch(opcion) { 1:acts1; break; 2:actc1; break; default: cout<<mensaje; } Switch(opcion) { 1:acts1; 2:actc1; default: acts3; } Select case opcion Case v1:acts1 Case v2:acts2 Case else acts3 End select
For (i:=1;I<n ;I++) { acts1; acts2;} For (i:=1;I<n ;I++) { acts1; acts2;} For (i:=1;I<n ;I++) { acts1; acts2;} For i=1 to n Acts1 Acts2 Next i
While (num<=10) { acts1; acts2; } While (num<=10) { acts1; acts2; } While (num<=10) { acts1; acts2; } Do while (cond1) Acts1 Acts2 loop
Do { Acts1; acts2; } While (x<=10); Do { Acts1; acts2; } While (x<=10); Do { Acts1; acts2; } While (x<=10); Do acts1 Acts2 loop while cond1 Do acts1 Acts2 loop until cond1 cond1 No si Vi=1,n,1 Vi cond1 S cond1 si Nota: Hay que considerar que cada lenguaje tiene su propia estructura de programacin. Actividades derivadas: 14 indice conector de diagrama en la misma pgina procesos predef inidos procedimientos o subrutinas funcion nombre(par1,par2) comentarios internos o anotaciones inicio fin A conector de diagrama en diferente pgina B funcion nombre(par1,par2) o datos entrada manual tarj eta almacenamien to de datos mostrar en pantal l a acceso secuencial de datos Diagramas complementarios 15 Cuadro evolutivos de los lenguajes de programacin ms comunes: 16 Cuadro evolutivos de los lenguajes de programacin ms comunes, en programacin orientada a objetos: 17 Fortran Pascal, Turbo Pascal Basic,Turbo Basic C, C++ Ada Modula Java Cobol Algol Cobol ... Lisp --------------- Bases de datos Clipper, Foxpro, Dbase, SQL, Oracle, ... Lenguajes y software/paquetera Versiones actualizadas de lenguajes de programacin Sistemas operativos Internet (redes) Paquetes: Microsoft office, Works, Corel-wordperfect Educativos Matemticos Dibujadores, imgenes, fotografa Arquitectura, diseo grfico Administracin y contadura Ingenieras, Simuladores Control, Robtica Comunicaciones Electrnica, Antivirus-virus Computacin, Industria Entretenimientos, juegos Salud ... Versiones actualizadas 18
Leer dos variables, A, B y desplegar el valor de B en A y viceversa
Sumar dos variables
Dividir dos variables, que pasa si una variable es cero?
Ejercicios: Selecciona celdas o reas Mueve celda o reas seleccionadas copia el contenido de la celda o reas seleccionadas 19 20 Explicacin dada en clase por el profesor....