Professional Documents
Culture Documents
Septiembre, 2015
Contenido
Unidad 1: Conceptos bsicos ..........................................................................................................4
1.1.
Algoritmos ........................................................................................................................7
Ejercicios ...................................................................................................................................7
1.4.
Identificador ..............................................................................................................................9
Tipos de datos .........................................................................................................................10
Operadores relacionales, lgicos y matemticos ....................................................................11
Prioridad de los operadores aritmticos .................................................................................12
Reglas para formar un Identificador ........................................................................................15
Expresiones .............................................................................................................................17
Unidad 2: Diagramas de flujo y pseudocdigo ............................................................................18
2.1.
2.3.
PSEUDOCDIGO ........................................................................................................21
Funciones .......................................................................................................................47
Funciones de Conversin.........................................................................................................47
Funciones Matemticas ..........................................................................................................48
Funciones de Cadena ..............................................................................................................49
5.4.
Inputbox ..................................................................................................................................50
MsgBox....................................................................................................................................52
Valores de retorno de un MsgBox ...........................................................................................54
Botones que pueden mostrarse en un MsgBox .......................................................................54
Tipos de iconos para un MsgBox .............................................................................................55
5.5.
Codificacin ...................................................................................................................56
Arreglos ..........................................................................................................................75
FUNDAMENTOS DE PROGRAMACIN
Conceptos de programacin
Lenguaje de programacin
El lenguaje de programacin es la combinacin de smbolos y reglas, que permiten la
elaboracin de programas con los cuales la computadora puede realizar tareas o resolver
problemas de manera eficiente.
Los lenguajes de programacin se clasifican en:
1. Lenguaje mquina. Las instrucciones son directamente entendibles por la computadora
y no necesitan traductor para que la CPU (unidad de procesamiento central) pueda
entender y ejecutar el programa. Utiliza un cdigo binario (0 y 1), se basa en bits
(abreviatura inglesa de dgitos binarios).
2. Lenguaje de bajo nivel (ensamblador). Las instrucciones se escriben en cdigos
alfabticos conocidos como mnemotcnicos.
3. Lenguaje de alto nivel. Es semejante al lenguaje humano (en general en ingls), lo que
facilita la elaboracin y comprensin del programa. Por ejemplo: Basic, Pascal, Cobol,
Fortran, C, etc.
Programa
Existen diferentes conceptos:
1. Es un algoritmo desarrollado en un determinado lenguaje de programacin, para ser
utilizado por la computadora; es decir, es una serie de pasos o instrucciones ordenadas y
finitas que pueden ser procesadas por una computadora, a fin de permitir resolver un
problema o tarea especfica.
2. Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones, de
acuerdo con los datos que se desee procesar en la computadora.
3. Expresin de un algoritmo en un lenguaje preciso, que puede llegar a entender una
computadora.
1.2.
Las fases para la creacin de un programa son siete, aunque para algunos autores pueden
describirse en slo seis, pues omiten la primera porque es una etapa algo obvia. Las etapas
se describen a continuacin.
Codificacin
En la etapa de codificacin se transcribe el algoritmo definido en la etapa de diseo en un
cdigo reconocido por la computadora; es decir, en un lenguaje de programacin; a ste se
le conoce como cdigo fuente.
Prueba y depuracin
La prueba consiste en capturar datos hasta que el programa funcione correctamente. A la
actividad de localizar errores se le llama depuracin. Existen dos tipos de pruebas: de
sintaxis y de lgica.
Las pruebas de sintaxis se ejecutan primero, son las ms sencillas y las realiza el compilador
del programa cada vez que se ejecuta el programa hasta que el cdigo no presente errores,
es decir que la sintaxis que requiere el lenguaje sea la correcta, de lo contrario el propio
compilador va mostrando los errores encontrados para que se modifiquen y se pueda ejecutar
el cdigo; estos errores pueden ser falta de parntesis, o puntos y comas o palabras reservadas
mal escritas.
Las pruebas de lgica son las ms complicadas ya que stas las realiza el programador;
consisten en la captura de diferentes valores y revisar que el resultado sea el deseado, es
decir el programador tendra que modificar el cdigo hasta que el programa funcione
correctamente.
Documentacin
Es la gua o comunicacin escrita que permite al programador o al usuario conocer la
funcionalidad del programa.
La documentacin sirve para que el cdigo fuente sea ms comprensible para el programador
o para otros programadores que tengan que utilizarlo, as como para facilitar futuras
modificaciones (mantenimiento).
Hay dos tipos de documentacin:
Interna. Se generan en el mismo cdigo y generalmente es mediante comentarios.
Externa. Son los manuales y es independiente al programa. Tambin puede ser la ayuda
en el mismo software.
Mantenimiento
Se dice que un programa no se termina al 100%, ya que es necesario hacer algn cambio,
ajuste o complementacin para que siga funcionando correctamente; para llevarlo a cabo se
requiere que el programa est bien documentado.
Todos los programas tienen actualizaciones, por lo que surgen versiones diferentes. Por
ejemplo: Windows 3.11, 95, 98, 2000, Millennium, Xp, Vista y 7.
1.3.
Algoritmos
Inicio1
Bajar la herramienta y el neumtico (llanta) de repuesto del automvil.
Aflojar los birlos del neumtico pinchado.
Acomodar el gato.
Levantar el automvil.
Quitar los birlos del neumtico desinflado.
Quitar el neumtico desinflado.
Colocar el neumtico de repuesto.
Existen autores que en este tipo de algoritmos (no computacionales) no utilizan el Inicio y el Fin, ambos son opcionales.
1. Inicio.
2. Leer datos de entrada, se encuentran a la derecha del operador de asignacin.
3. Procesar frmula.
4. Imprimir datos de salida, se encuentran a la izquierda del operador de asignacin;
por lo tanto por cada frmula slo habr un dato de salida.
5. Fin.
1.4.
Identificador
Un identificador es una secuencia de caracteres alfabticos, numricos y el guin bajo. Con
los que se puede dar nombre a variables, constantes, tipos de dato, nombres de funciones o
procedimientos, etc.
Cada lenguaje de programacin tiene sus propias caractersticas del tamao del identificador;
el estndar de lenguaje C no especifica un lmite de tamao para un identificador, pero para
ciertas implementaciones de C11 slo los primeros 31 caracteres son significativos (ANSI
C). El programador tiene libertad para darle cualquier nombre a un identificador, siguiendo
estas reglas:
1. Debe comenzar con una letra (A a Z) mayscula o minscula y no puede contener
espacios en blanco.
2. En lenguaje C, el carcter _ (guin bajo) es considerado como letra, por lo que se
puede utilizar como primer carcter.
3. Algunos lenguajes de programacin distinguen maysculas de minsculas.
4. Letras, dgitos y el carcter guin bajo estn permitidos despus del primer carcter.
5. No pueden existir dos identificadores iguales, es decir, dos elementos de un programa
no pueden nombrarse de la misma forma. Sin embargo, un identificador puede aparecer
ms de una vez en un programa.
6. No se puede utilizar una palabra reservada como identificador, sin embargo, los
identificadores estndar se pueden redefinir.
7. En lenguaje C existen identificadores que podran tener uno o varios puntos, tales como:
persona.apellidoPaterno
El punto indica el acceso a un campo de una estructura.
Sugerencias:
1. El identificador debe tener un nombre que sea significativo, es decir, que d una idea de
la informacin que almacena.
2. No utilizar nombres muy largos, es mejor utilizar abreviaturas estndar para que stos
tengan una longitud razonable.
3. En los casos de nombres compuestos se suele poner la inicial de la segunda palabra en
mayscula.
10
Numricos
Simples
Lgicos
Alfanumricos
(string)
Tipos de
datos
Arreglos
(Vectores,
Matrices)
Registros
Estructurados
Archivos
Apuntadores
Simples:
1. Datos Numricos: Permiten representar valores escalares de forma numrica, esto
incluye a los nmeros enteros y los reales. Este tipo de datos permiten realizar
operaciones aritmticas comunes.
2. Datos Lgicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya
que representan el resultado de una comparacin entre otros datos (numricos o
alfanumricos).
3. Datos Alfanumricos (String): Es una secuencia de caracteres alfanumricos que
permiten representar valores identificables de forma descriptiva, esto incluye
nombres de personas, direcciones, etc. Es posible representar nmeros como
alfanumricos, pero estos pierden su propiedad matemtica, es decir no es posible
hacer operaciones con ellos. Este tipo de datos se representan encerrados entre
comillas.
Ejemplo:
ITS JOL
2015
Operadores relacionales, lgicos y matemticos
Los operadores son elementos que relacionan de forma diferente, los valores de una o ms
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.
11
Aritmticos
Tipos de
operadores
Relacionales
Lgicos
+
*
/
Mod
Operadores Aritmticos
Suma
Resta
Multiplicacin
Divisin
Mdulo (residuo de la divisin entera)
Ejemplo:
Expresin
7/2
12 mod 7
4+2*5
Resultado
3.5
5
14
12
13
23 * 2 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
3.5 + 5.09 - 14.0 / 40 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98
46 / 5 = 9.2
3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98
Los operadores de asignacin tienen menor prioridad que todos los otros operadores.
El orden de las operaciones en pseudocdigo es:
Operadores Relacionales: Se utilizan para establecer una relacin entre dos valores.
Compara estos valores entre si y esta comparacin produce un resultado de certeza o
falsedad (verdadero o falso). Los operadores relacinales comparan valores del
mismo tipo (numricos o cadenas). Tienen el mismo nivel de prioridad en su
evaluacin. Los operadores relacinales tiene menor prioridad que los aritmticos.
>
<
>=
<=
<>
==
Operadores Relacionales
Mayor que
Menor que
Mayor o igual que
Menor o igual que
Diferente
Igual
Ejemplos:
Si a = 10
a+b>c
a-b<c
a - b == c
a*b<>c
b = 20
c = 30
Falso
Verdadero
Falso
Verdadero
Ejemplos no lgicos:
14
a<b<c
10 < 20 < 30
T < 30 (no es lgico porque tiene diferentes operandos)
Operadores Lgicos: Estos operadores se utilizan para establecer relaciones entre
valores lgicos. Estos valores pueden ser resultado de una expresin relacional.
Operadores Lgicos
And
Or
Not
Y
O
Negociacin
http://webdelprofesor.ula.ve/nucleotrujillo/frank_delgadillo/file/tipodedatos.pdf
Identificadores: Los identificadores representan los datos de un programa
(constantes, variables, tipos de datos). Un identificador es una secuencia de
caracteres que sirve para identificar una posicin en la memoria de la computadora,
que permite acceder a su contenido.
Ejemplo:
Nombre
Num_horas
Nota2
Reglas para formar un Identificador
1. Debe comenzar con una letra (A a Z, maysculas o minsculas) y no deben
contener espacios en blanco.
2. Letras, dgitos y caracteres como la subraya ( _ ) estn permitidos despus del
primer carcter.
3. La longitud de identificadores puede ser de hasta 8 caracteres.
Constante: Una constante es un dato numrico o alfanumrico que no cambia
durante la ejecucin del programa.
Ejemplo:
pi = 3.1416
Variable: Es un espacio en la memoria de la computadora que permite almacenar
temporalmente un dato durante la ejecucin de un proceso, su contenido puede
cambia durante la ejecucin del programa. Para poder reconocer una variable en la
memoria de la computadora, es necesario darle un nombre con el cual podamos
identificarla dentro de un algoritmo.
Ejemplo:
area = pi * radio ^ 2
Variables: radio, rea
Constante: pi
15
Numricas
Por su
contenido
Lgicas
Alfanumricas
(String)
Clasificacin
de variables
De trabajo
Por su uso
Contadores
Acumuladores
Por su Contenido
Variable Numricas: Son aquellas en las cuales se almacenan valores
numricos, positivos o negativos, es decir almacenan nmeros del 0 al 9, signos
(+ y -) y el punto decimal.
Ejemplo:
iva = 0.15
pi = 3.1416
costo = 2500
Variables Lgicas: Son aquellas que solo pueden tener dos valores (cierto o
falso) estos representan el resultado de una comparacin entre otros datos.
Variables Alfanumricas: Est formada por caracteres alfanumricos (letras,
nmeros y caracteres especiales).Ejemplo:
letra =a
apellido = lopez
direccion = Av. Libertad #190
Por su Uso
Variables de Trabajo: Variables que reciben el resultado de una operacin
matemtica completa y que se usan normalmente dentro de un programa.
16
Ejemplo:
suma = a+b/c
Contadores: Se utilizan para llevar el control del nmero de ocasiones en que se
realiza una operacin o se cumple una condicin. Con los incrementos
generalmente de uno en uno.
Acumuladores: Forma que toma una variable y que sirve para llevar la suma
acumulativa de una serie de valores que se van leyendo o calculando
progresivamente.
Expresiones
Una expresin es el resultado de unir operandos mediante operadores. Los operandos pueden
ser variables, constantes u otras expresiones; y los operadores, aritmticos, lgicos o
relacionales. El resultado de una expresin es un dato numrico o un valor lgico. Para
agrupar las expresiones se utiliza los parntesis.
Segn el tipo de datos que manipulan, se clasifican en:
Aritmticas.
Lgicas o booleanas.
Las expresiones lgicas o booleanas son expresiones relacionadas entre s mediante
operadores relacionales o lgicos. Una expresin lgica es una expresin que slo puede
tomar dos valores: verdadero o falso.
Las frmulas matemticas se deben escribir en formato lineal. Esto obliga al uso frecuente
de parntesis que indiquen el orden de evaluacin correcto de los operadores.
17
Simbologa
18
Ejercicios
Ejercicio 1. Sume dos nmeros enteros
19
Para la parte lgica de la programacin se utilizar las tres primeras etapas del desarrollo de
un programa.
1. Entender el problema
En este caso sumar dos nmeros; el trmino suma es claro y conocido.
2. Anlisis del problema
Al realizar un anlisis nos arroja los siguientes datos:
Datos de entrada: n1, n2
Datos de salida: suma
Frmula: suma = n1 + n2
3. Diseo del algoritmo
Se desarroll el diagrama de flujo arriba descrito.
Explicacin del diseo:
Para el nombre de las variables se recomienda hacer referencia a lo solicitado o
calculado.
Para este programa se declaran tres variables de tipo entero, dos variables que son
los datos de entrada, que no se conocen y se necesitan leer o pedir al usuario (n1 y
n2) y una variable (dato de salida) en la cual se va a guardar el resultado (suma).
Cabe hacer notar que en el diagrama de flujo no se acostumbra declarar ni las
variables ni las constantes.
El smbolo impresin muestra en pantalla todo lo que se encuentra entre las comillas,
y en la parte que no tiene comillas se muestra el valor de la variable respectiva. Por
lo tanto, los letreros se distinguen de las variables por las comillas y se separan con
comas, si se requiere imprimir o mostrar el valor de varias variables. Cabe hacer notar
que en un diagrama de flujo los letreros previos a la lectura de un dato o impresin
de una variable son opcionales, en el presente ejercicio no aparecen.
El smbolo entrada (leer) solicita los datos al usuario, guardando stos en las variables
n1 y n2. La expresin suma n1 + n2 primero realiza la suma de los valores
almacenados a las variables n1 y n2 y el resultado lo guarda en la variable suma, la
cual se muestra en pantalla con el smbolo impresin.
Si n1= 6 y n2 = 9, se mostrar: 15
Nota 1: Solamente se muestra el valor de la variable suma, ms no el nombre de la
variable.
Nota 2: Todo programa solicita los datos que desconoce o que necesita saber, los
almacena en variable(s) y luego utiliza el valor de la variable para realizar los clculos
necesarios segn sea el resultado que desea obtener, almacenando este resultado en
alguna variable y luego mostrando el valor de la variable o imprimiendo directamente
el resultado.
Prueba de escritorio
20
21
Ejemplo:
LEER estatura
Solicita el ingreso de un valor, desde algn dispositivo de entrada (como el teclado), para la
variable estatura.
Salida
Consiste en mostrar el valor de una variable en un dispositivo de salida, como la pantalla.
En general, la accin de mostrar el valor de una variable se expresa en el pseudocdigo
mediante la palabra IMPRIMIR o ESCRIBIR (Para el caso del PSEINT) de la siguiente
forma: IMPRIMIR variable o ESCRIBIR variable
Ejemplo:
IMPRIMIR (ESCRIBIR) importeCompra
Muestra, en algn dispositivo de salida (como la pantalla), el valor de la variable
importeCompra.
Asignacin
Consiste en asignar a una variable el valor de una expresin. La expresin puede ser una
simple variable, un simple literal o una combinacin de variables, literales y operadores. La
asignacin se expresa en el pseudocdigo de la siguiente forma: variable = expresin
Donde variable y el valor de expresin deben tener el mismo tipo de dato. Cuando se asigna
un valor ENTERO a una variable REAL, entonces el valor ENTERO se convertir en REAL
antes de almacenarse. As, al asignar el valor ENTERO 25 a una variable REAL, se
almacenar 25.0
Ejemplo
Algoritmo para expresar en centmetros y pulgadas una cantidad dada en metros.
Nota: lo que se encuentra despus de cada // son comentarios
INICIO
// Declara las variables M, C y P
REAL M, C, P
// Solicita el ingreso de la cantidad en metros
LEER M
// Calcula la cantidad en centmetros y lo asigna a la variable C
22
C = M*100
// Calcula la cantidad en pulgadas y lo asigna a la variable P
P = C/2.54
// Muestra los valores de las variables C y P
IMPRIMIR C, P
FIN
Ejemplo:
23
Estructuras de control
Secuencial
Selectiva
Repetitiva o de iteracin condicionada
25
A continuacin presentamos los ejercicios resueltos; para tal efecto debemos retomar
lo aprendido en secciones anteriores respecto a la asignacin. Adems debemos
distinguir la entrada y la salida de datos:
Para la parte lgica de la programacin nos centraremos en las tres primeras etapas
del desarrollo de un programa.
1. Entender el problema.
En este caso sumar dos nmeros; el trmino suma es claro y conocido.
2. Anlisis del problema.
Al realizar un anlisis nos arroja los siguientes datos:
Datos de entrada: n1, n2
Para este programa se declaran tres variables de tipo entero, dos variables que son
los datos de entrada que no se conocen y se necesitan leer o pedir al usuario (n1 y
n2) y una variable (dato de salida) en la cual se va a guardar el resultado (suma).
Cabe hacer notar que en el diagrama de flujo no se acostumbra declarar ni las
variables ni las constantes.
La instruccin imprimir muestra en pantalla todo lo que se encuentra entre las
comillas, y en la parte que no tiene comillas se muestra el valor de la variable
respectiva. Por lo tanto, los letreros los distinguimos de las variables por las comillas
y los separamos con comas, si se requiere imprimir o mostrar el valor de varias
variables. Cabe hacer notar que en un diagrama de flujo los letreros previos a la
lectura de un dato o impresin de una variable son opcionales, en el presente ejercicio
no aparecen.
La instruccin leer solicita los datos al usuario, guardando stos en las variables n1
y n2. La expresin suma n1 1 n2 primero realiza la suma de los valores
almacenados a las variables n1 y n2 y el resultado lo guarda en la variable suma, la
cual se muestra en pantalla en la ltima instruccin.
Si n1 = 6 y n2 = 9 se mostrar: La suma es: 15.
Nota 1: Solamente se muestra el valor de la variable suma, ms no el nombre de la
variable.
Nota 2: Todo programa solicita los datos que desconoce o que necesita saber, los
almacena en variable(s) y luego utiliza el valor de la variable para realizar los
clculos necesarios segn sea el resultado que desea obtener, almacenando este
resultado en alguna variable y luego mostrando el valor de la variable o imprimiendo
directamente el resultado, como en el ejercicio siguiente.
Este programa declara solamente una variable lado, la cual nos sirve para guardar el
valor del lado de un cuadrado, pero como vern no existe ninguna variable para
almacenar el resultado (rea), as que el clculo lo haremos directamente al momento
de imprimir el resultado; primero se hace el producto del lado * lado, y el resultado
se imprimir despus de la etiqueta o mensaje
Estructura de Control Selectiva o Alternativa
De acuerdo con una condicin que puede ser verdadera o falsa se elige una opcin,
la cual realiza una accin (una o varias instrucciones). La condicin puede ser simple
o compuesta (una o varias).
Es una estructura con una sola entrada y una sola salida en la cual se realiza una
accin (una o varias instrucciones) de entre varias, segn una condicin; o se realiza
27
b) Doble if-else.
c) Mltiple switch-break.
28
29
2. Si se requiere ejecutar un bloque de instrucciones, cuando se cumpla la condicin
se representa de la siguiente forma:
Nota: Si existe ms de una instruccin para realizar, es necesario utilizar inicio y fin
para agrupar las instrucciones, es su alcance sintctico, si no se usa el inicio y fin
slo se ejecuta la primera instruccin, mientras que las siguientes instrucciones se
realizarn siempre. En la tabla 3.2 vemos unos ejemplos de las distintas formas que
puede adoptar la expresin dentro de un if.
Formas de utilizar la instruccin if
31
Se compara la expresin (puede ser una sola variable) con cada una de las opciones
const y en el momento de encontrar una constante idntica se ejecutan la(s)
instruccin(es) correspondiente(s) a ese caso. Al terminar de realizar las
instrucciones del caso, se debe usar la palabra reservada salir (break) para que vaya
al final de la estructura.
Si ninguno de los casos cumple con la expresin, se puede definir un caso por
omisin, que tambin puede tener instrucciones; la computadora ejecutar la
sentencia caso contrario (default). El default es opcional, si no est presente no se
hace nada.
Hay tres puntos que debemos considerar en la sentencia segun_sea (switch):
32
1. Se diferencia del si (if) en que el primero slo puede comprobar por igualdad,
mientras que la expresin condicionada del si (if) puede ser de cualquier tipo.
2. No puede tener dos constantes en los casos con idnticos valores en el mismo
segun_sea (switch).
3. La sentencia segun_sea (switch) es ms eficiente que el si anidado si-si no-si
(if-else-if).
Notas:
Si cada caso tiene varias instrucciones no es necesario agruparlas con llaves, ya que
el salir (break) termina el caso.
Se utilizar segun_sea (switch) para manejar un men. Un men nos muestra en
pantalla todas las opciones que podemos realizar con nuestro algoritmo o programa.
Ejercicios resueltos de la estructura de control selectiva mltiple segun_sea
(switch)
Ejercicio 1. Imprimir a qu da de la semana corresponde en nmero
Este tipo de selectiva mltiple nos sirve para elegir una entre varias opciones. En el
ejercicio anterior el usuario introduce un nmero del 1 al 7 y se almacena en la
variable dia, posteriormente revisa si el da capturado pertenece a alguno de los siete
casos e imprimir a qu da de la semana pertenece; la instruccin salir (break) que
se escribe a un lado, le indica al programa que si ya entr en algn caso, no contine
con lo siguiente, es decir que se salga de la estructura segun_sea (switch), y el
programa pasar el control a la siguiente instruccin que se encuentre despus del fin
33
34
35
36
37
Existen algoritmos y programas que requieren que por lo menos se ejecute el ciclo
una vez y al final se revise la condicin; en este caso utilizamos la estructura
hacer_mientras. Es muy semejante al ciclo mientras, con la diferencia de que la
condicin se evala despus de ejecutar el cuerpo del bucle. Tanto el ciclo mientras
como el hacer_mientras pueden utilizarse cuando no se conoce de antemano el
nmero de veces que se repetir el ciclo.
38
39
40
Dnde:
expr_ini(s): expresin(es) de asignacin que se utilizan para iniciar la(s) variable(s)
de control del bucle.
cond: es una expresin relacional o lgica (booleana) que determina cundo
finalizar el ciclo o bucle. La condicin puede ser simple o compuesta (una o varias).
inc(s): define cmo cambiar(n) la(s) variable(s) de control cada vez que se repite el
bucle o ciclo.
Las tres componentes pueden tener una o varias instrucciones, las cuales deben ir
separadas por comas. La cond nos lleva al valor final.
Omisin de expresiones
Cualquiera de los componentes en los parntesis se puede omitir, incluso los tres,
pero los separadores coma (punto y coma) deben aparecer siempre.
Las tres expresiones del bucle desde (for) se pueden omitir, con el siguiente
resultado:
41
En el ejercicio 1 antes de entrar al ciclo desde, se declara la variable i, sta inicia con
el valor de 1, se evala la condicin (i<=10), es decir (1<=10), como es verdadera,
entra al ciclo e imprime el 1, en seguida la i se incrementa en 1 (ii+1)
convirtindose en 2; en la segunda vuelta se evala la condicin (2<=10), como es
verdadera entra al ciclo e imprime el 2, en seguida la i se incrementa en 1 y se
convierte en 3; de la tercera a la dcima vuelta todas las condiciones son verdaderas
(3<=10, 4<=10, 5<=10, 6<=10, 7<=10, 8<=10, 9<=10, 10<=10) y se imprime 3 4 5
6 7 8 9 y 10; en la dcima vuelta despus de imprimir el 10, cuando la i se incrementa
en 1 y vale 11, la condicin (11<=10) ser falsa y por lo tanto se rompe el ciclo (deja
de dar vueltas).
42
Unidad 5: Codificacin
5.1.Elementos del lenguaje Visual Basic
43
Qu es Visual Basic?
Visual Basic es un lenguaje de programacin que permite crear aplicaciones (programas)
para Windows. Usando Visual Basic se pueden construir en forma fcil, programas con una
interfaz grfica que puede incorporar elementos como ventanas, botones, cuadros de
dilogo, cuadros de texto, botones de opcin y de seleccin, barras de desplazamiento,
mens, etc., propios de cualquier aplicacin bajo Windows.
En una aplicacin Visual Basic, el programa est formado por una parte de cdigo puro, y
otras partes asociadas a los objetos que forman la interfaz grfica. Es por tanto, un trmino
medio entre la programacin tradicional, formada por una sucesin lineal de cdigo
estructurado, y la programacin orientada a objetos. Combina ambas tendencias sin
embargo, no puede decirse que Visual Basic pertenezca por completo a uno de esos dos
tipos de programacin.
En este captulo se especifican los fundamentos bsicos del lenguaje Visual Basic y la
sintaxis utilizada para crear el cdigo de los programas. Adems, se explican programas
muy sencillos que siguen el enfoque de programacin tradicional, es decir, programas
secuenciales donde el usuario introduce los datos, el programa hace los clculos y muestra
los resultados.
5.2.Tipos de datos
44
Declaracin de variables
En Visual Basic hay diferentes formas de declarar una variable. La Sentencia DIM
es la forma ms comn. Puede emplearse en un Procedimiento, Funcin, Formulario
o Mdulo. La sintaxis es la siguiente:
Dim nombre_variable As tipo
Donde:
Nombre_variable: es el nombre que el programador le da a la variable que
se est declarando.
Tipo: tipo de dato asociado a la variable.
Se le puede colocar cualquier nombre a una variable, siempre y cuando cumpla con
las siguientes reglas:
1. El nombre de una variable tiene que comenzar siempre por una letra y puede
contener hasta 255 caracteres.
2. El nombre slo puede contener letras, nmeros y el carcter de subrayado (_).
No se aceptan espacios en blanco.
3. No pueden utilizarse como nombres de variables las palabras reservadas de
Visual Basic, como por ejemplo: if, next, for, val, caption, etc. Para saber
cules son las palabras reservadas se puede consultar el Help de Visual Basic,
en la referencia Reserved Words. Las palabras reservadas aparecen en color
azul cuando se escribe el cdigo del programa.
Ejemplos de declaraciones de variables:
Dim Edad as byte
Dim Nom_Estudiante as string
Dim salario as single
Dim area as double, saldo as single
Dim X, Y as integer
Mediante estas declaraciones, el programa sabe de qu tipo de dato se trata y por
tanto cmo debe trabajar con l. Existen otras formas de declarar las variables en
Visual Basic, aqu slo se utilizar DIM.
Visual Basic no distingue entre maysculas y minsculas. Por ejemplo, las variables
SalarioTotal y salariototal son consideradas como una misma variable y no como
dos.
En Visual Basic no es necesario que se declaren todas las variables que se van a
utilizar. Cuando en el cdigo se escribe una variable nueva que no ha sido declarada,
45
Visual Basic asume que es una variable y que su tipo es el adecuado para el valor
que le est asignando en ese momento. Por ejemplo, si Visual Basic encuentra estas
instrucciones
Nombre ="Pedro Gonzlez"
CI = "1234567"
Nota=18
Entiende que Nombre, CI y Nota son variables, que Nombre y CI son cadenas de
caracteres (string) porque su valor est entre comillas, y que Nota es un nmero (su
valor no est entre comillas).
Esta particularidad de no necesitar declarar las variables hace que sea sencillo
introducir una variable nueva. Sin embargo, puede ser una fuente de errores.
Supngase que en un paso posterior del programa, se desea hacer una operacin con
la variable Nota, y que por error el programador escribe Nata en vez de Nota. Visual
Basic interpreta que Nata es una variable e ir a leer en memoria el valor que tiene.
No tendr ningn valor. Por lo tanto la operacin no se har en forma correcta y
adems no dar ningn aviso de que se ha cometido un error.
Para evitar este tipo de errores se recomienda declarar todas las variables que se van
a utilizar en el programa. Para que Visual Basic d un mensaje de error cuando se
utiliza una variable no declarada previamente se puede utilizar la instruccin Option
Explicit, la cual se explica a continuacin.
Option Explicit
Obliga a declarar previamente las variables que se vayan a usar. De no haberla
declarado antes de usarla, el programa dar una comunicacin de error.
Instruccin de asignacin
Una vez que se elige un nombre y un tipo de dato para una variable, se le debe dar
un valor. Existen tres mtodos principales para dar valores a una variable:
1. Asignarle un valor dentro del programa.
2. Pedir al usuario que teclee un valor.
3. Leer un valor de un archivo de datos.
En esta seccin se explicar la instruccin de asignacin. La introduccin de valores
con el teclado se tratar en el apartado 2.5 de este tema. La lectura de archivos no se
incluye en estos apuntes. La sintaxis de una instruccin de asignacin es:
Nombre_variable = valor o expresin
46
Ejemplos:
1) A = X+Y +2
El resultado de sumar las variables X y Y, se le asigna a la variable
A.
2) Salario = 1250000
A la variable salario se le asigna el valor 1250000
3) Nombre_ alumno = Jos Rodrguez
A la variable nombre_alumno se le asigna el valor Jos Rodrguez.
Obsrvese que cuando se asigna una cadena de caracteres, sta debe
ir entre comillas.
4) A=B
El contenido de la variable B se asigna a la variable A
Existen algunas reglas para instrucciones de asignacin que hay que tener presente:
1. Slo un nombre de variable puede ir a la izquierda del signo igual, porque
indica la ubicacin de memoria que cambiar.
2. El valor a la derecha del signo igual puede ser una constante (ejemplos b y
c), otra variable (ejemplo d) o una frmula o expresin que combine
constantes y variables (ejemplo a).
3. La variable y su valor deben ser del mismo tipo de datos.
5.3.Funciones
Funciones de Conversin
Asc
AscW
CBool (Funcin)
CByte (Funcin)
CChar (Funcin)
CDate (Funcin)
CDbl (Funcin)
CDec (Funcin)
Chr
ChrW
CInt (Funcin)
CLng (Funcin)
CObj (Funcin)
CSByte (Funcin)
CShort (Funcin)
CSng (Funcin)
CStr (Funcin)
CType (Funcin)
CUInt (Funcin)
CULng (Funcin)
CUShort (Funcin)
Format
Hex
Oct
Str
Val
47
Funciones Matemticas
Mtodo
Descripcin
Abs
Acos
Asin
Atan
Atan2
BigMul
Ceiling
Cos
Cosh
DivRem
Exp
Floor
IEEERemainder
Log
Log10
Max
Min
Pow
48
Round
Sign
Sin
Sinh
Sqrt
Tan
Tanh
Truncate
Funciones de Cadena
Mtodo
Asc
Chr
Filter
Format
FormatCurrency
FormatDateTime
FormatNumber
FormatPercent
InStr
InStrRev
LCase
Left
Descripcin
Devuelve un valor de tipo Integer que representa el cdigo de
carcter que corresponde a un carcter.
Devuelve el carcter asociado al cdigo de carcter especificado.
Devuelve una matriz basada en cero que contiene un subconjunto de
una matriz String basada en criterios de filtro especificados.
Devuelve una cadena con el formato que especifiquen las
instrucciones contenidas en una expresin String de formato.
Devuelve una expresin con formato de moneda en la que se utilizar
el smbolo de moneda que se haya definido en el panel de control del
sistema.
Devuelve una expresin de cadena que representa un valor de fecha u
hora.
Devuelve una expresin con formato de nmero.
Devuelve una expresin con formato de porcentaje (multiplicada por
100), acompaada del carcter final %.
Devuelve un entero que especifica la posicin inicial de la primera
aparicin de una cadena dentro de otra.
Devuelve la posicin de la primera aparicin de una cadena dentro de
otra, comenzando por el extremo derecho de la cadena.
Devuelve una cadena o un carcter convertidos en minscula.
Devuelve una cadena que contiene un nmero especificado de
caracteres a partir del lado izquierdo de una cadena.
49
Len
LSet
LTrim
Mid
Replace
Right
RTrim
Space
StrComp
StrConv
StrDup
StrReverse
Trim
UCase
50
Los cuadros de entrada o InputBox siempre incluyen los botones Aceptar y Cancelar.
Si el usuario hace clic en Aceptar (o presiona la tecla Enter), lo que haya escrito se
almacenar en la variable indicada (para el ejemplo, sera la variable edad). Si se
presiona cancelar, a la variable se le asigna una cadena vaca ( ).
Un InputBox tiene como ttulo predeterminado el nombre dado al proyecto Visual
Basic en el momento de guardar, por ejemplo, en la figura anterior se observa que el
ttulo es Proyecto1. Sin embargo, es posible colocarle un ttulo diferente, as como
tambin un valor predeterminado para la respuesta. En ese caso la sintaxis es:
Nombre_variable = InputBox (mensaje, ttulo, valor predeterminado)
51
Observe que el valor por defecto es Venezuela, esto significa que el mismo aparecer
como respuesta predeterminada. Si el usuario est de acuerdo hace clic en Aceptar.
Si no est de acuerdo puede escribir otro pas.
MsgBox
Un MsgBox o cuadro de mensaje es una ventana donde se puede dar informacin
al usuario. En la figura 2.3 se muestra un MsgBox.
Sintaxis
MsgBox (mensaje)
El MsgBox muestra el mensaje y luego espera que el usuario haga clic en Aceptar.
Ejemplo 3:
La instruccin
MsgBox ("lnea 1" & Chr(10) & "lnea 2")
Muestra el cuadro de mensaje:
53
54
Ejemplo 4:
Resp = MsgBox(El inventario ha finalizado,0,Sistema de Inventarios )
Ejemplo 5:
En el siguiente cdigo se utiliza una constante Visual Basic para mostrar los
botones S y No
R = Msgbox (Desea introducir nuevos datos? , vbYesNo, Estadstica 1.0)
Ejemplo 6:
El siguiente cdigo muestra un mensaje de error con un icono.
Resp = MsgBox (Error: ha introducido un dato invlido, 5 + 16, Clculos)
Ejemplo 7:
Para mostrar el cuadro de mensaje del ejemplo 5 con un icono de interrogacin, se
escribe la siguiente instruccin:
R = Msgbox (Desea introducir nuevos datos? , vbYesNo + 32, Estadstica 1.0 )
Ejemplo 8:
Resp = MsgBox (Faltan datos por introducir , vbexclamation, Advertencia)
Esta instruccin despliega el cuadro de mensaje de la figura 2.10. Obsrvese que el
MsgBox slo tiene el botn Aceptar, en ese caso no es necesario colocar 0 +
vbexclamation vbOkonly + vbexclamation, en el segundo parmetro.
5.5.Codificacin
Ya se conocen los elementos bsicos que permitirn escribir los primeros programas en Visual
Basic. Lo que falta es colocar todo entrada, proceso y salida en un programa completo que
la computadora pueda entender.
Ya que por ahora no se utilizan las herramientas visuales del lenguaje Visual Basic (formularios,
controles, etc.), el cdigo se coloca en una subrutina (seccin de cdigo) llamada Sub Main, la
cual es el punto de partida del programa.
Escritura de programas
Ejercicios
Ejemplo 1: Programa que eleva un nmero entero al cuadrado (el nmero debe ser
suministrado por el usuario).
Cdigo del programa:
Option explicit
Sub main()
Dim num As Integer, cuadrado As Integer
56
Ejemplo 3: programa que calcular el precio total a pagar por un artculo si se tiene como
dato el precio de venta y se sabe que el IVA es del 16%.
Option explicit
Sub main()
Dim pv As Single, iva As Single, pt As Single
pv = InputBox("Precio de venta")
iva = 0.16 * pv
pt = pv + iva
MsgBox (" Precio total a pagar" & pt )
End Sub
Estructuras de decisin simple
If expresin lgica Then
Una o varias instrucciones
End If
Ejemplo 1: programa que calcula el salario neto de un trabajador, teniendo como entrada
su salario base y el nmero de hijos. Al trabajador se le descuenta el 5% de su salario base
por concepto de seguro social, pero si tiene ms de dos hijos se le pagan 50.000 Bs.
adicionales.
57
Option Explicit
Sub main()
Dim sb As Single, nh As Byte, sn As Single
sb = InputBox("Salario base: ")
nh = InputBox("Nmero de hijos")
sn = sb - 0.05 * sb
If nh > 2 Then
sn = sn + 50000
End If
MsgBox ("Salario Neto = " & sn)
End Sub
Ejemplo 2: programa que calcula el precio total a pagar por la compra de un artculo,
considerando que el IVA es del 16%. Si el precio es mayor de 100.000 Bs. se realiza un
descuento del 1%.
Option explicit
Sub main()
Dim Pv As Single, Pt As Single
Pv = InputBox("Introduzca el precio de venta del artculo")
If Pv > 100000 then
Pv = Pv - 0.01 * Pv
End If
Pt = Pv + 0.16 * Pv
MsgBox (" El precio total a pagar es " & pt)
End Sub
Estructuras de decisin doble
Se utilizan cuando la computadora debe elegir entre dos alternativas dependiendo de
una condicin. Una estructura de decisin doble evala una expresin lgica, si sta
es verdadera se ejecuta un conjunto de instrucciones, y si es falsa se ejecuta otro
conjunto de instrucciones. En Visual Basic, una estructura de decisin doble se
escribe de la siguiente manera:
58
Ejemplo 4: Programa que calcula el valor de Y, el cual est dado por la siguiente ecuacin
3 +5
= . Si x = 0 debe dar un mensaje de error e indicar que no puede realizarse el
clculo.
Option Explicit
Sub main()
Dim X As Single, Y As Single, resp As Byte
59
60
Else
If expresin lgica then
Una o ms instrucciones
Else
If expresin lgica then
Una o ms instrucciones
End If
End If
End If
61
Esta sintaxis corresponde a un esquema de anidamiento.
Ejemplo 6: programa para clasificar una especie forestal de acuerdo a su resistencia. El
dato de entrada del programa es el porcentaje de prdida de peso de la especie y la salida es
uno de los siguientes mensajes.
Mensaje
Altamente resistente
Resistente
Moderadamente resistente
Muy poco resistente
No resistente
% Prdida de peso
[0 1]
(1 - 5]
(5 10]
(10- 30]
Ms de 30
Option Explicit
Sub main()
Dim pp as Single
Pp = InputBox ("Introduzca el porcentaje de prdida de peso")
If pp <=1 then
MsgBox ("Especie forestal altamente resistente")
Else
If pp <= 5 then
MsgBox ("Especie forestal resistente")
Else
If pp <= 10 then
MsgBox ("Especie forestal moderadamente resistente")
Else
If pp<= 30 then
MsgBox ("Especie forestal muy poco resistente")
Else
MsgBox ("Especie forestal resistente")
End If
End If
End If
End If
End Sub
Ejemplo 7: Programa para calcular el precio a pagar por la compra de madera. Los datos
de entrada son la cantidad de metros cbicos a comprar, el precio por metro cbico y el tipo
de madera. La madera est clasificada en tres tipos (A, B y C). Si la cantidad a comprar es
superior a 30 metros cbicos, se aplica el siguiente esquema de descuento:
Tipo de madera
A
B
C
Descuento
4%
8%
10 %
62
Else
Desc= 0.02 * pre_tot
End If
Pre_tot = pre_tot Desc
MsgBox (" El precio total a pagar es " & pre_tot)
End Sub
63
64
Case 7
MsgBox (Sbado)
Case Else
MsgBox (Nmero fuera de rango)
End Select
End Sub
Existen dos formatos adicionales del Select Case, que permiten utilizar esta
estructura cuando se desea hacer comparaciones o utilizar un rango de valores.
Ejemplo 9: Programa que clasifica a una persona de acuerdo a su edad, Las posibles
clasificaciones son: beb, nio, adolescente, adulto y anciano.
Option Explicit
Sub main()
Dim edad As Integer
Dim Tipo As String
edad = InputBox("Escriba la edad")
Select Case edad
Case Is < 2:
Tipo = "Beb"
Case 2 To 12:
Tipo = "Nio"
Case 13 To 18:
Tipo = "Adolescente"
Case 19 To 69:
Tipo = "Adulto"
Case Is >= 70:
Tipo = "Anciano"
End Select
MsgBox (Tipo)
End Sub
Como puede observarse en los ejemplos, un Select Case cumple la misma funcin
que una estructura de decisin anidada con If -Then -Else, pero de una forma ms
ordenada, la nica desventaja es que slo es posible evaluar una expresin, mientras
que con If pueden usarse tantas como sean necesarias. Por ejemplo, si en un
programa se quiere hacer un descuento a los clientes tipo A que compren un monto
superior a 200000 Bs, no puede usarse un Select Case ya que hay que considerar
dos criterios para tomar la decisin, uno referente al tipo de cliente y el otro al
monto de la compra. Es precisamente por eso que existen estas dos posibilidades,
estructuras de decisin anidadas y mltiple, cuando una no es vlida, se puede usar
la otra.
65
EJERCICIOS PROPUESTOS
1. Determinar la cantidad total a pagar por una llamada telefnica, teniendo en cuenta
lo siguiente:
- Toda llamada que dure tres minutos o menos tiene un costo de 300 Bs.
- Cada minuto adicional a partir de los tres primeros cuesta 150 Bs.
2. Se quiere un programa que permita calcular el precio a pagar por la compra de un
artculo. El IVA a pagar es del 15% y si el precio bruto (precio de venta + IVA) es
mayor de 150.000 Bs. se debe realizar un descuento del 1%.
3. Los empleados de una fbrica trabajan en uno de los siguientes turnos: diurno o
nocturno. Se desea calcular el salario de un trabajador de acuerdo con lo siguiente:
- La tarifa diurna es de 1.000 Bs./hora
- La tarifa nocturna es de 1.500 Bs./hora
4. Dado un nmero entero N, determinar si es par.
5. Escribir un programa que clasifique a un entero x en una de las siguientes
categoras y muestre un mensaje apropiado
- x<5
- 5 <= x <= 50
- x > 50
6. Hacer un programa que resuelva una ecuacin de segundo grado AX2 + BX + C =
0.
7. Calcular el salario total de un trabajador teniendo en cuenta su salario base y el
nmero de horas extra trabajadas. Para el pago de las horas extra se debe considerar
la categora del trabajador, de acuerdo a la siguiente tabla:
P
Categora
Precio de la hora extra
A
4000
B
3000
C
2500
D
1000
8. Escribir un programa que permita introducir el nmero de un mes (1 a 12) y
muestre el nmero de das que tiene ese mes.
9. Una compaa consultora requiere un programa calcule el precio que debe cobrar
por una asesora. El precio por hora viene dado por el tipo de asesora, tal como se
indica en la siguiente tabla:
Tipo de asesora
Costo ($/hora)
A
3000
B
2000
C
1000
D
500
En estos momentos, la compaa desea aplicar un descuento especial que depende
del nmero de horas de asesora:
66
Nmero de horas
<5
[5, 10)
[10, 15)
>= 15
Descuento
No hay descuento
5%
8%
10%
10. Escribir un programa que tenga como dato de entrada una calificacin alfabtica A,
B, C, D, E, o F, y muestre la correspondiente calificacin numrica: 20, 17, 14, 10,
5, 0, respectivamente.
11. Un negocio mayorista que vende tablas de madera de ciertas medidas y especie, tiene
clasificado a sus clientes en tres tipos: 1 (si paga a tiempo), 2 (si se retrasa con los
pagos) y 3 (si es un cliente nuevo). Este negocio necesita un programa que dado el
nmero de tablas que un cliente compra, el precio unitario (precio de una tabla) y el
tipo de cliente, calcule el precio total que dicho cliente debe pagar, considerando un
descuento. Si el cliente es tipo 1 el descuento es del 15%, si es tipo 2 tiene un
descuento del 5%, y si es tipo 3 tiene un descuento del 2%.
Estructuras de Repeticin
Las estructuras de repeticin permiten ejecutar un conjunto de instrucciones varias
veces, tantas como sea necesario. Tambin se conocen como bucles o lazos.
En general, existen tres tipos de repeticin: Para, Mientras y Hasta; en las prximas
secciones se explica la lgica de cada una de estas estructuras y la forma de utilizarlas
en Visual Basic
Repetir Para (Fornext)
Se utiliza cuando de antemano es posible conocer el nmero exacto de repeticiones,
el cual puede ser un dato de entrada o un valor dado en el planteamiento del
problema
For variable = Valor_Inicial to Valor_Final Step Incremento
Una o ms instrucciones (1)
Next variable
La instruccin For ejecutar las instrucciones (1) X veces, siendo X =Valor_final
Valor_inicial +1.
Step Incremento, permite especificar si se requiere un incremento diferente de uno.
Si el incremento es 1, no es necesario escribir Step.
Ejemplo 1: Programa que muestra 5 veces un mismo mensaje.
67
Option Explicit
Sub Main()
Dim i As Integer
For i = 1 To 5
MsgBox ("Hola Cmo estas?")
Next i
End Sub
Ejemplo 2: Programa que escribe los nmeros pares comprendidos entre 2 y 10 (ambos
inclusive).
Option explicit
Sub Main ( )
Dim num as integer
For num = 2 to 10 step 2
MsgBox(num)
Next num
End Sub
68
69
i=1
Do While i<= n
nota = InputBox("Nota del estudiante " & i)
suma = suma + nota
i=i+1
Loop
promedio = suma / n
MsgBox( "Promedio = " & promedio)
End Sub
Ejemplo 6: programa que recibe como datos de entrada las edades de los 50 empleados de
una empresa y calcula: a) el nmero de empleados que tienen menos de 30 aos, b) el nmero
de empleados que tienen entre 30 y 50 aos, c) el nmero de empleados que tienen ms de
50 aos, y d) la edad promedio de los empleados.
Option Explicit
Sub Main()
Dim i As Integer, edad As Byte, e1 As Byte, e2 As Byte, e3 As Byte
Dim prom As Single, sumaedad As Integer
i=1
sumaedad = 0
Do While i <= 5
edad = InputBox("Edad " & i)
sumaedad = sumaedad + edad
If edad < 30 Then
e1 = e1 + 1
Else
If edad <= 50 Then
e2 = e2 + 1
Else
e3 = e3 + 1
End If
End If
i=i+1
Loop
prom = sumaedad / 5
MsgBox ("Promedio = " & prom)
MsgBox ("Empleados con menos de 30 aos= " & e1)
MsgBox ("Empleados con que tienen entre 30 y 50 aos " & e2)
MsgBox ("Empleados con ms de 50 aos= " & e3)
End Sub
Las variables e1, e2 y e3 son contadores. Un contador es una variable que se utiliza
para determinar la cantidad de elementos que cumplen cierta condicin. En este
70
71
Ejemplo 9: Programa que permite obtener la siguiente informacin acerca de los estudiantes
de una Facultad
- Nmero de estudiantes del sexo masculino
- Nmero de estudiantes del sexo femenino
- Edad promedio
- Promedio de notas general de la Facultad
Para resolver este problema utilizando una estructura de repeticin, se requiere como primer
dato de entrada el nmero de estudiantes de la Facultad. Luego, para cada estudiante se
solicitan los siguientes datos: sexo, edad y promedio de notas.
Option Explicit
Sub Main()
Dim n As Integer, sexo As String, edad As Byte, prom As Single
Dim i As Integer, nm As Integer, nf As Integer, sumae As Single
Dim sumap As Single, prome As Single, promg As Single
n = InputBox("Nmero de estudiantes")
i=1
nm = 0
Do Until i > n
sexo = InputBox("Sexo:", "Estudiante " & i)
edad = InputBox("Edad:", "Estudiante " & i)
prom = InputBox("Promedio:", "Estudiante " & i)
If sexo = "M" Or sexo = "m" Then
nm = nm + 1
Else
If sexo = "F" Or sexo = "f" Then
nf = nf + 1
End If
End If
sumae = sumae + edad
sumap = sumap + prom
i=i+1
Loop
prome = sumae / n
promg = sumap / n
MsgBox("Edad Promedio=" & prome & Chr(10) & "Promedio
General= " & promg)
MsgBox ("No. de hombres= " & nm & Chr(10) & "No. de mujeres=
" & nf)
End Sub
Ejemplo 10: Este programa tiene un conjunto de instrucciones que permiten validar la
entrada de datos haciendo uso de una estructura Repetir Hasta. En el ejemplo el usuario
72
debe introducir la edad, pero se requiere que la edad est entre 5 y 100, es decir que una edad
menor que 5 se considera invlida, al igual que una edad superior a 100. El objetivo es que
el programa detecte el error y no acepte las edades que son invlidas.
Option Explicit
Sub main()
Dim edad As Byte, Resp As Integer
Do
edad = InputBox("Escriba su edad")
If edad < 5 Or edad > 100 Then
Resp = MsgBox("La edad debe estar entre 5 y 100",
vbExclamation, "Error!")
End If
Loop Until edad >= 5 And edad <= 100
End Sub
Ejemplo 11: Programa que calcula la suma y la media aritmtica de un conjunto de nmeros.
Cada vez que se introduce un nmero se muestra un MsgBox donde se pregunta si se desea
introducir un nuevo nmero, si la respuesta es s, aparece un InputBox para escribir el
siguiente nmero, si es no, entonces se muestran la suma, la media aritmtica y la cantidad
de nmeros procesados.
Option Explicit
Sub main()
Dim num As Single, suma As Single, media As Single, can_num As
Integer
Dim resp As Byte
suma = 0
can_num = 0
Do
num = InputBox("Escriba un nmero:")
suma = suma + num
can_num = can_num + 1
resp =MsgBox("Desea introducir otro nmero?", vbYesNo +
vbInformation, _
"ejemplo 11")
Loop Until resp = 7
media = suma / can_num
MsgBox ("Nmeros procesados = " & can_num & Chr(10) & "Suma
="&_
suma & Chr(10) & "Media = " & media)
End Sub
Nota: cuando una instruccin no cabe en una sola lnea, se coloca al final de sta el
smbolo ( _, ) y se contina en la siguiente lnea.
73
74
EJERCICIOS PROPUESTOS
1. Hacer de tres maneras diferentes: usando Repetir Para, Repetir Mientras y
Repetir Hasta.
a) Obtener la suma de n nmeros introducidos por el usuario.
b) Calcular la suma de los cuadrados de los 50 primeros nmeros naturales
(enteros positivos).
2. Calcular independientemente la suma de los nmeros pares e impares comprendidos
entre 1 y 50.
3. Se tienen las calificaciones de los alumnos de un curso de informtica, el cual consta
de tres materias: Visual Basic, Excel y Word. Calcular la nota definitiva de cada
alumno, nmero de estudiantes aplazados, nmero de estudiantes aprobados y el
promedio general del curso.
4. Se tienen como datos de entrada los salarios de 50 empleados de una empresa. Hacer
un programa para determinar: a) el nmero de empleados que ganan menos de
350000 Bs., b) el nmero de empleados que ganan entre 350000 y 600000 Bs. c) el
nmero de empleados que ganan ms de 600000 Bs. d) El valor de la nmina (suma
de todos los salarios).
5. En un centro meteorolgico se llevan las precipitaciones mensuales cadas en tres
zonas del pas: Occidente, Centro y Oriente. Se desea un programa que reciba como
datos de entrada las precipitaciones registradas en los 12 meses de un ao para cada
regin y determine: a) precipitacin anual en cada regin y b) regin con mayor
precipitacin anual.
6. Se quiere un programa que contabilice una cuenta de ahorros. Al inicio se le
introduce el nombre del titular de la cuenta y el saldo inicial. A continuacin se
permite hacer depsitos y retiros sucesivos, el usuario debe escribir una d si desea
depositar o una r si desea retirar. Cuando es depsito se incrementa al saldo y
cuando es retiro se resta, luego de cada operacin debe mostrarse el saldo. El
programa finalizar cuando ya no se desee hacer ms movimientos. Al terminar, el
Es un tipo de datos estructurado que est formado de una coleccin finita y ordenada
de datos del mismo tipo. Es la estructura natural para modelar listas de elementos
iguales.
75
76
Option Explicit
' Estructura de dato para el vector
Private Type agenda
nombre As String
apellido As String
cpostal As Integer
End Type
' Declaramos el vector
Dim personas(1 To 3) As agenda
78
Private Sub Form_Load()
' Llenamos con datos para el elemento 1 del arreglo
personas(1).nombre = "carlos"
personas(1).apellido = "Martnez"
personas(1).cpostal = 1900
' Llenamos con datos para el elemento 2 del arreglo
personas(2).nombre = "Hctor"
personas(2).apellido = "rosales"
personas(2).cpostal = 1898
' Llenamos con datos para el elemento 3 del arreglo
personas(3).nombre = "Albert"
personas(3).apellido = "Einstein"
personas(3).cpostal = 1324
End Sub
Para utilizar una estructura definida por nosotros en vectores o matrices, se hace de
la forma habitual, con la diferencia que debemos declarar el arreglo utilizando el tipo
de dato Type que hayamos creado, en este caso Dim personas(1 to 3) as agenda
Bidimensionales
Como se dijo anteriormente, las matrices son arreglos de
ms de 1 dimensin (2 o ms), a diferencia de los vectores
que poseen una sola dimensin. Podemos imaginar una
matriz bidimensional (2 dimensiones), como una
cuadrcula con filas y columnas, donde las filas
representaran las coordenadas x y las columnas las
coordenadas y.
cubo (2, 2 , 2) = 50
cubo (2, 2 , 3) = 50
cubo (2, 3 , 1) = 50
cubo (2, 3 , 2) = 50
cubo (2, 3 , 3) = 50
cubo (3, 1 , 1) = 50
cubo (3, 1 , 2) = 50
cubo (3, 1 , 3) = 50
cubo (3, 2 , 1) = 50
cubo (3, 2 , 2) = 50
cubo (3, 2 , 3) = 50
cubo (3, 3 , 1) = 50
cubo (3, 3 , 2) = 50
cubo (3, 3 , 3) = 50
En el ejemplo anterior, que es un poco extenso, es para que veas todos los posibles
valores que puedes almacenar en una matriz de 3 x 3 x 3, y que da como resultado
un arreglo de 27 valores posibles.
80
Referencia Bibliogrfica
Bibliografa Bsica:
Corona, M., Ancona, M. (2011). Diseo de algoritmos y su codificacin en
lenguaje C. McGrawHill. 2011
Bibliografa Complementara:
Mrquez, G., Osorio, S., Olvera, N. (2011). Introduccin a la Programacin
Estruturada en C. Pearson. 2011
Web
http://webdelprofesor.ula.ve/forestal/mariaq/archivos_guias_apuntes/IntroProgVB.
pdf
81