You are on page 1of 82

CARRERA DE ANLISIS DE SISTEMAS

Septiembre, 2015

Contenido
Unidad 1: Conceptos bsicos ..........................................................................................................4
1.1.

Conceptos de programacin ...........................................................................................4

Lenguaje de programacin ........................................................................................................4


Programa ...................................................................................................................................4
1.2.

Pasos en la creacin de un programa (Metodologa) ....................................................4

Definicin del problema ............................................................................................................5


Anlisis del problema ................................................................................................................5
Diseo y tcnicas para la formulacin de un algoritmo.............................................................5
Codificacin ...............................................................................................................................6
Prueba y depuracin .................................................................................................................6
Documentacin .........................................................................................................................6
Mantenimiento .........................................................................................................................6
1.3.

Algoritmos ........................................................................................................................7

Ejercicios ...................................................................................................................................7
1.4.

Entidades primitivas para el desarrollo de un programa .............................................9

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.

Diagramas de flujo ........................................................................................................18

Tcnicas de diseo ..................................................................................................................18


Caractersticas .........................................................................................................................18
Simbologa ...............................................................................................................................18
Ejercicios .................................................................................................................................19
Prueba de escritorio ................................................................................................................20
2.2.

Uso de software DFD .....................................................................................................21

2.3.

PSEUDOCDIGO ........................................................................................................21

Instrucciones algortmicas bsicas ..........................................................................................21


2.4.

Uso de software PSeInt..................................................................................................23

Unidad 3: Estructuras algortmicas I ..........................................................................................24


Diseo descendente (top-down) .............................................................................................24

Estructuras de datos ................................................................................................................24


Programacin modular ............................................................................................................24
3.1.

Estructura de control ....................................................................................................24

Estructura de Control Secuencial ............................................................................................24


Estructura de Control Selectiva o Alternativa ..........................................................................27
Toma de decisiones .................................................................................................................28
Estructura de control selectiva doble si/si-no (if/else) ............................................................30
Estructura de control selectiva mltiple segun_sea (switch) ..................................................32
Unidad 4: Estructuras algortmicas II .........................................................................................35
Estructura de Control repetitiva o de iteracin condicionada .................................................35
Estructura de control repetitiva mientras (while) ...................................................................35
Estructura de control repetitiva hacer_mientras (do while) ...................................................37
Estructura de control repetitiva desde (for) ............................................................................40
Omisin de expresiones ..........................................................................................................40
Caractersticas: ........................................................................................................................41
Unidad 5: Codificacin .................................................................................................................43
5.1.

Elementos del lenguaje Visual Basic ............................................................................43

Qu es Visual Basic? ..............................................................................................................43


5.2.

Tipos de datos ................................................................................................................44

Declaracin de variables y constantes.....................................................................................44


Declaracin de constantes ......................................................................................................44
Declaracin de variables .........................................................................................................45
Ejemplos de declaraciones de variables: .................................................................................45
Option Explicit .........................................................................................................................46
Instruccin de asignacin ........................................................................................................46
5.3.

Funciones .......................................................................................................................47

Funciones de Conversin.........................................................................................................47
Funciones Matemticas ..........................................................................................................48
Funciones de Cadena ..............................................................................................................49
5.4.

Operaciones de entrada y salida ...................................................................................50

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

Escritura de programas ...........................................................................................................56


Ejercicios .................................................................................................................................56
Estructuras de decisin simple ................................................................................................57
Estructuras de decisin doble .................................................................................................58
Estructuras de decisin anidadas ............................................................................................60
Estructuras de decisin mltiple .............................................................................................63
EJERCICIOS PROPUESTOS ........................................................................................................66
Estructuras de Repeticin .......................................................................................................67
Repetir Para (Fornext) ..........................................................................................................67
Repetir Mientras .....................................................................................................................69
Repetir Hasta ...........................................................................................................................71
EJERCICIOS PROPUESTOS ........................................................................................................74
5.6.

Arreglos ..........................................................................................................................75

Definicin de arreglo ...............................................................................................................75


Unidimensionales ....................................................................................................................75
Declaracin de los arreglos en el cdigo .................................................................................76
Bidimensionales ......................................................................................................................78
Referencia Bibliogrfica ...............................................................................................................81
Bibliografa Bsica: ..................................................................................................................81
Bibliografa Complementara: ..................................................................................................81
Web .........................................................................................................................................81

FUNDAMENTOS DE PROGRAMACIN

Unidad 1: Conceptos bsicos


1.1.

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.

Pasos en la creacin de un programa (Metodologa)

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.

Definicin del problema


Esta fase la proporciona el enunciado del problema, el cual requiere una definicin clara y
precisa (no debe ser ambiguo). Es importante que se entienda perfectamente lo que
pretendemos que haga la computadora para poder continuar con la siguiente etapa.
Anlisis del problema
Una vez que se ha comprendido lo que se desea que la computadora haga, la etapa de anlisis
es muy importante ya que en sta se identifican tres factores indispensables:
1. Qu informacin se necesita para obtener el resultado deseado (datos de entrada).
2. Qu informacin se desea producir (datos de salida).
3. Los mtodos y frmulas que se necesitan para procesar los datos y producir esa salida.
Diseo y tcnicas para la formulacin de un algoritmo
La etapa de diseo se centra en desarrollar el algoritmo basndonos en las especificaciones
de la etapa del anlisis; podemos representar un algoritmo mediante el diagrama de flujo o
el pseudocdigo.
Diagrama de flujo
Un diagrama de flujo es la representacin grfica de un algoritmo; dicha representacin
grfica se lleva acabo cuando varios smbolos (que indican diferentes procesos en la
computadora) se relacionan entre s mediante lneas que indican el orden en que se deben
ejecutar las instrucciones para obtener los resultados deseados.
Los smbolos utilizados han sido reglamentados por el Instituto Nacional de
Normalizacin Estadounidense (ANSI, American National Standards Institute).
Pseudocdigo
El pseudocdigo es la combinacin del lenguaje natural (espaol, ingls o cualquier otro
idioma), smbolos y trminos utilizados dentro de la programacin. Se puede definir
como un lenguaje de especificaciones de algoritmos.
El pseudocdigo se cre para superar las dos principales desventajas del diagrama de
flujo: es lento de crear y difcil de modificar sin un nuevo redibujo. Por otra parte, el
pseudocdigo es ms fcil de utilizar ya que es similar al lenguaje natural. Al contrario
de los lenguajes de programacin de alto nivel no tiene normas que definan con precisin
lo que es y lo que no es pseudocdigo, por lo tanto vara de un programador a otro.

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

Se denomina algoritmo al conjunto de pasos ordenados y finitos que permiten resolver un


problema o tarea especfica. Los algoritmos son independientes del lenguaje de
programacin y de la computadora que se vaya a emplear para ejecutarlo.
Todo algoritmo debe ser:
1. Finito en tamao o nmero de instrucciones (tiene un primer paso y un ltimo paso) y
tiempo de ejecucin (debe terminar en algn momento). Por lo tanto, debe tener un punto
particular de inicio y fin.
2. Preciso. Debe tener un orden entre los pasos.
3. Definido. No debe ser ambiguo (dobles interpretaciones); si se ejecuta el mismo
algoritmo el resultado siempre ser el mismo, sin importar las entradas proporcionadas.
4. General. Debe tolerar cambios que se puedan presentar en la definicin del problema.
Toda actividad que se realiza se la pude expresar en forma de algoritmo. Existen dos tipos
de algoritmos, los que se desarrollan para ser ejecutados por una computadora, llamados
algoritmos computacionales; y los que realiza el ser humano, es decir, algoritmos no
computacionales, como ejemplos de stos estn:
1. Cambiar un neumtico (llanta) de un automvil
2. Preparar unos huevos a la mexicana
3. Calcular el rea de un tringulo
o Tcnicas para la formulacin de algoritmos
Ejercicios
Algoritmo para cambiar el neumtico desinflado de un automvil.
1.
2.
3.
4.
5.
6.
7.
8.
1

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.

9. Fijar los birlos del neumtico de repuesto.


10. Bajar el automvil.
11. Apretar en forma definitiva los birlos del neumtico de repuesto.
12. Quitar el gato.
13. Guardar el neumtico desinflado y la herramienta.
14. Fin.
Este algoritmo es finito, tiene 12 pasos2 y tiene un orden.
Un algoritmo para preparar unos huevos a la mexicana.
1.
2.
3.
4.
5.
6.
7.
8.
9.

Poner la sartn en la estufa.


Poner aceite en la sartn.
Encender la estufa.
Cortar cebolla, tomate y chile en pedazos pequeos.
Poner la cebolla, el tomate y el chile en la sartn.
Abrir los huevos y verterlos en un recipiente.
Batir los huevos.
Poner los huevos batidos en la sartn.
Revolver la cebolla, tomate y el chile con los huevos hasta que queden estos
ltimos cocidos.
10. Vaciarlos en un plato.
Este algoritmo tambin es finito (tiene 10 pasos) y algunos pasos pueden estar en
otro orden, por ejemplo los cuatro primeros puntos pudieron estar en un orden
diferente y se seguira teniendo el mismo resultado.
Un algoritmo para calcular el rea de un tringulo.
1. Inicio.
2. Solicitar (leer) los datos (la base y la altura).
3. Multiplicar la base por la altura y el resultado dividirlo entre dos, y guardarlo en
una variable.
4. Mostrar (imprimir) el resultado almacenado en la variable.
5. Fin.
Al igual que en los dos ejemplos anteriores, se cumplen todas las caractersticas,
solamente que este ltimo algoritmo no es una situacin cotidiana de la vida sino un
clculo especfico el cual tiene un resultado exacto, o sea un valor.
A continuacin se describe un algoritmo, siempre que se tenga frmulas:

Sin considerar inicio y fin

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.

Entidades primitivas para el desarrollo de un programa

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.

totalAlumnos, areaCirculo, numeroPositivo


Identificadores vlidos: numero, year2008, Base_1, funcion, division
Identificadores no vlidos: nmero, ?precio, ao, 2007, 4semestre
En los tres primeros ejemplos de identificadores no vlidos, se utilizan caracteres
especiales; en los dos ltimos el primer caracter no es letra. Hay que recordar que la
en el cdigo ASCII, NO aparece con las dems letras.
Tipos de datos
Los diferentes objetos de informacin con los que un algoritmo o programa trabaja se
conocen colectivamente como datos. Un dato puede ser un simple carcter, tal como b, un
valor entero tal como 35.
Todos los datos tienen un tipo asociado con ellos; el tipo de un dato es el conjunto (rango)
de valores que puede tomar durante el programa. El tipo de un dato determina la naturaleza
del conjunto de valores que puede tomar una variable.
El tipo de dato asociado a una variable limita el conjunto de datos que puede almacenar, as
como las operaciones aplicables sobre esa variable. Por lo tanto, una variable que pertenece
a un tipo de dato entero no podr almacenar datos de tipo caracter; tampoco se podrn
calcular operaciones propias de otros tipos de datos.
Las computadoras pueden trabajar con varios tipos de datos; los algoritmos y programas
operan sobre stos.
La asignacin de tipos a los datos tiene dos objetivos principales:
1. Detectar errores de operaciones en programas.
2. Determinar cmo ejecutar las operaciones.
Los datos que utilizan los algoritmos y programas se los puede clasificar en simples o
compuestos. Un dato simple es indivisible, no se puede descomponer. Un dato compuesto
est integrado por varios datos.
Los tipos de datos simples son: numricos (enteros y reales), lgicos (booleanos) y caracteres
(alfanumricos).

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

Operadores Aritmticos: Los operadores aritmticos permiten la realizacin de


operaciones matemticas con los valores (variables y constantes).
Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales.
Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es
real.

+
*
/
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

Prioridad de los operadores aritmticos


Al orden en que la computadora realiza las diferentes operaciones se llama orden de
prioridad.
1. Parntesis ( ) Todas las expresiones entre parntesis se evalan primero. Las
expresiones con parntesis anidados se evalan de dentro hacia afuera.

12

2. Dentro de una misma expresin o subexpresin, se evalan en el siguiente orden:


Potencia (^ o **)
*, /, mod
+, Los operadores en una misma expresin con igual nivel de prioridad se evalan de
izquierda a derecha.
Ejemplos:

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

Unidad 2: Diagramas de flujo y pseudocdigo


2.1.Diagramas de flujo
Tcnicas de diseo
Caractersticas

Todo diagrama debe tener un inicio y un fin.


No se especifica la declaracin de variables.
Se deben usar solamente lneas de flujo horizontales y/o verticales.
Se debe evitar el cruce de lneas utilizando los conectores.
Se deben usar conectores slo cuando sea necesario.
No deben quedar lneas de flujo sin conectar.
Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
Se debe evitar la terminologa de un lenguaje de programacin o mquina.
Los comentarios se deben utilizar ya sea al margen o mediante el smbolo grfico
comentarios para que stos sean entendibles por cualquier persona que lo consulte.
Si el diagrama abarca ms de una hoja es conveniente enumerarlo e identificar de
dnde viene y a dnde se dirige.
Slo los smbolos de decisin pueden y deben tener ms de una lnea de flujo de
salida.

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

2.2.Uso de software DFD


Link de descarga: http://freedfd.googlecode.com/files/FreeDFD-1.1.zip
Deber: Realizar diagrama de los siguientes ejemplos:
https://www.youtube.com/watch?v=dO58-IfkhbM
https://www.youtube.com/watch?v=jLEvEmjTCCc
https://www.youtube.com/watch?v=lvSzW53_nhw
https://www.youtube.com/watch?v=yKshniLrSl0
2.3.PSEUDOCDIGO
Instrucciones algortmicas bsicas
Algunas de las instrucciones algortmicas bsicas son:
Entrada
Consiste en obtener un dato de un dispositivo de entrada, como el teclado, y almacenarlo en
una variable. En general, la accin de ingresar un dato a una variable se expresa en el
pseudocdigo mediante la palabra LEER, de la siguiente forma: LEER variable

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

2.4.Uso de software PSeInt


Link de descarga: http://pseint.sourceforge.net/
Visualizar el funcionamiento del software en el siguiente link:
https://www.youtube.com/watch?v=RAOYo5P31Po
Deber: Realizar un informe que incluya el enunciado del problema, diagrama de
flujo y la Codificacin en Seudocdigo
https://www.youtube.com/watch?v=dwFd4srugJs
https://www.youtube.com/watch?v=dts8Tn0PWmE

Unidad 3: Estructuras algortmicas I


La programacin estructurada es un paradigma o forma de programar. Es un conjunto de
tcnicas que nos permiten desarrollar programas fciles de escribir, verificar, leer y mantener
e incluyen:
1. Diseo descendente (top-down).
2. Estructuras de datos.
3. Estructuras de control.
4. Programacin modular.
24
Diseo descendente (top-down)
En la programacin estructurada las instrucciones estn ordenadas u organizadas de arriba a
abajo, lo que facilita el diseo del algoritmo, el entendimiento del cdigo y por consiguiente
el mantenimiento del mismo.
Estructuras de datos
Son un conjunto de datos donde podemos almacenar y acceder a elementos individuales de
datos, por lo que pueden separarse en los elementos que la forman.
Programacin modular
Otra caracterstica que tiene la programacin estructurada es que el problema se puede
dividir en secciones o partes (mdulos). Este tipo de programacin permite resolverlo de
manera ms sencilla y en forma paralela si es necesario, es decir por un equipo de personas.
3.1.Estructura de control
Estas estructuras controlan cmo se ejecutan los programas, es decir el orden de las
instrucciones, ya que tienen un solo punto de entrada y un punto de salida. En la
programacin estructurada se mezclan las estructuras de control y las podemos clasificar en:

Estructuras de control

Secuencial
Selectiva
Repetitiva o de iteracin condicionada

Estructura de Control Secuencial


Las instrucciones se ejecutan en orden, una por una desde la primera hasta la ltima,
es decir el programa ejecuta todas las instrucciones del programa en el orden
establecido sin saltarse ninguna de ellas.
Es la estructura ms sencilla ya que el programador identifica los datos de entrada,
los procesa y muestra o imprime los datos de salida.
La estructura secuencial se puede representar de la siguiente forma:

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:

Ejercicios resueltos de la estructura de control secuencial


Ejercicio 1. Sume dos nmeros enteros.

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

Datos de salida: suma


Frmula: suma 5 n1 1 n2
3. Diseo del algoritmo.
Se desarrollaron el pseudocdigo y el diagrama de flujo arriba descritos.
Explicacin del diseo:
Como se aprecia en la siguiente tabla, el nombre de las variables las elige usted; se
recomienda que hagan referencia a lo solicitado o calculado.
26

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.

De acuerdo con lo que acabamos de ver en el ejercicio, a continuacin describimos


un algoritmo en pseudocdigo siempre que tengamos frmulas:
1. principal()
2. inicio
3. Declaracin de variables de entrada y salida.
4. Leer datos de entrada, los encontramos a la derecha del operador de
asignacin.
5. Procesar frmula.
6. Imprimir datos de salida, los encontramos a la izquierda del operador de
asignacin; por lo tanto por cada frmula slo abra un dato de salida.
7. fin.
El algoritmo presentado es para una frmula, pero tambin se puede implementar
para varias frmulas, respetando los pasos 1, 2 y 7. Se pueden repetir los pasos 4, 5
y 6 en secuencia para cada frmula o aplicando cada paso para todas las frmulas,
por ejemplo si se tienen tres frmulas en el paso 6 se imprimiran los 3 resultados.
Ejercicio 2. rea de un cuadrado

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

una accin segn el cumplimiento o no de una determinada condicin. La condicin


puede ser simple o compuesta.
Los programas, para un mejor funcionamiento y para poder realizar un nmero
mayor de tareas, deben permitir emplear acciones alternativas a fin de poder elegir
una de ellas cuando la situacin lo requiera. Por lo tanto, la ejecucin de una lnea o
grupos de lneas del programa depende de si cumplen o no una condicin.
Toma de decisiones
La instruccin si (if) nos permite tomar decisiones, podemos hacer una pregunta y la
contestacin slo puede ser verdadera o falsa, es decir, s o no.
Ejemplo:
Si llueve, llevar el paraguas.
La expresin condicional
La condicin es una expresin booleana. Si el resultado de la expresin:
Es cero, se considera una condicin falsa.
No es cero, se considera una condicin cierta
Ejemplo:
x = 9; if (x) //La condicin es verdadera.
if (5>7) //La condicin es falsa, comparamos dos valores.
El ltimo ejemplo es el ms utilizado.
Existen tres tipos de estructuras de control selectivas; stas se basan en una condicin
o en una opcin:
a) Simple if.

b) Doble if-else.

c) Mltiple switch-break.

Bloque de sentencias o instruccin compuesta


Se denomina bloque de sentencias a un conjunto de instrucciones delimitadas, por
ejemplo en lenguaje C, C11, Java se utilizan llaves que abren y cierran { }.
En lenguajes como Pascal, Modula, Delphi, Ada, se utiliza Begin y End. Estas
instrucciones se toman como una sola sentencia en las estructuras de control.
Estructura de control selectiva simple si (if)
Estructura de control que dirige a la computadora para ejecutar una o ms
instrucciones solamente si la condicin es verdadera. Si la condicin es falsa no
realiza ninguna accin. El trmino condicin lo utilizaremos a lo largo de este libro
para referirnos a una o ms condiciones.
Existen dos formas de representarlo, dependiendo del nmero de instrucciones que
se desean realizar si la condicin se cumple:

28

1. Si se requiere ejecutar una sola instruccin, cuando se cumpla la condicin se


representa de la siguiente forma:

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

Estructura de control selectiva doble si/si-no (if/else)


Estructura de control que dirige a la computadora para ejecutar una accin si la
condicin es verdadera, y otra accin en caso de que sea falsa. Cabe mencionar que
las instrucciones debern ser diferentes en cada caso, ya que si fueran iguales no se
requerira una estructura selectiva, con la estructura secuencial se resolvera el
problema.
Existen dos formas de representarlo, dependiendo del nmero de instrucciones que
se desean realizar si la condicin se cumple o no:
30

Si la condicin se cumple se realiza la instruccin 1, pero si la condicin no se cumple


se realiza la instruccin 2

Si la condicin se cumple se realizan las instrucciones 1 y 2, pero si no se cumple se


realizarn las instrucciones 3 y 4.
Ejercicios resueltos de la estructura de control selectiva simple si (if) y doble
si/si-no (if/else)
Ejercicio 1. Segn una calificacin, imprimir si sta es aprobada.

31

En el ejercicio 1 se utiliza la estructura selectiva simple. La condicin de este ejemplo


y la mayora que veremos en el presente curso consisten en comparar dos valores (la
variable cal y 60), y si dicha condicin es verdadera se realiza una determinada
accin. Se revisa la calificacin (cal), si es mayor o igual que 60, se imprime
aprobada, de lo contrario no imprime nada el programa, es decir slo pasa por parte
del programa dependiendo de una condicin. Ejemplo: si cal = 85 el programa
imprime Aprobada, pero si cal 5 59, el programa no imprime nada.
Ejercicio 2. Segn una calificacin, imprimir si es aprobada o reprobada.

A diferencia del ejercicio 1, el ejercicio 2 utiliza la selectiva doble, ya que revisa la


condicin; si sta se cumple (es verdadera) imprimir Aprobada, pero, si la
condicin no se cumple imprimir Reprobada, es decir el programa pasa por una u
otra instruccin pero no por ambas. Ejemplo: si cal = 85 el programa imprime

Aprobada, pero si cal = 59, el programa imprime Reprobada. La alternativa


doble es ms rpida; en este ejemplo slo evala una condicin, a diferencia de la
simple, que evaluara dos.
Estructura de control selectiva mltiple segun_sea (switch)
Esta estructura selecciona entre varias posibilidades, dependiendo del valor de la
expresin. Cuando en la estructura si (if) todas las condiciones utilizan la igualdad
de una variable determinada con constantes predefinidas, se puede utilizar la
instruccin segun_sea (switch), en dicha instruccin existen ms de dos opciones.
La estructura segun_sea (switch) evala una expresin que puede tomar n valores
distintos; segn con cul de estos valores coincida, se ejecutarn ciertas acciones, es
decir, el programa o algoritmo seguir un determinado camino entre los n posibles.
Dicha expresin slo acepta valores enteros o caracteres para entrar a la opcin y el
operador de relacin es el igual.

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

del segun_sea (switch). Si el usuario introduce un valor menor a 1 o mayor que 7 no


entra a ninguno de los casos, sino que entrar a la parte caso contrario (default) e
imprimir El da no existe.
Si da = 3 el programa imprimir El da 3 es Mircoles, si da = 9 el programa
imprimir El da no existe. El formato para imprimir el da dentro de la expresin,
depende del lenguaje.
Si omitimos la instruccin salir (break) recorrer todos los casos siguientes al
capturado;
Si la variable dia fue 2, pasar por los casos 3, 4, 5, 6 y 7. Observamos que cada caso
no necesita inicio ni fin debido a que el break es el fin de cada uno de ellos.
Es importante recordar que la variable que utiliza el segun_sea (switch) slo puede
ser algn tipo entero o caracter (char); en nuestro ejemplo la variable dia es tipo int.
Si hubiramos elegido un tipo real.
float dia en lugar de int dia, el compilador nos enviara el siguiente mensaje: Error
Lnea 10: Switch selection expression must be of integral type.
Dos posibles salidas si ejecutamos el programa son:
Escriba el nmero de da:
2
El 2 corresponde a martes.
Escriba el nmero de da:
21
El da no existe.

34

Unidad 4: Estructuras algortmicas II


Estructura de Control repetitiva o de iteracin condicionada
Una accin se repite una cantidad definida o indefinida de veces mientras una
condicin sea verdadera.
La lgica de programacin se centra sobre todo en el cuerpo del programa, utilizando
las estructuras de datos y las de control, adems de la programacin modular. Para
disear los programas de computadora, comnmente se utilizan diferentes estructuras
de control a fin de poder llegar a la solucin de un problema, cules y cuntas
dependern del problema mismo.
Las computadoras estn diseadas primordialmente para aquellas aplicaciones en las
cuales una operacin o conjunto de ellas deben repetirse ms de una vez.
La repeticin de una accin (una o varias instrucciones) se lleva a cabo mientras se
cumpla cierta condicin; para que la accin termine, la accin misma debe modificar
la(s) variable(s) de control que interviene(n) en la condicin. Dicha condicin puede
estar predefinida como en el ciclo desde (for); o no predeterminada, como en los
bucles mientras (while) y hacer-mientras (do_while).
Bucles, ciclo o iteracin. Es un segmento de un algoritmo o programa, cuya(s)
instruccin(es) se repite(n) un nmero conocido o indefinido de veces mientras se
cumpla una determinada condicin. En cada vuelta del ciclo comprueba si la
condicin es verdadera, rompindose el ciclo cuando es falsa. La condicin en algn
momento tiene que ser falsa ya que en caso contrario el bucle se har infinito.
Estructura de control repetitiva mientras (while)
Al ejecutarse la instruccin mientras (while), se evaluar la expresin booleana
suministrada en los parntesis (condicin), y si su valor es verdadero (distinto de
cero) se realizar el ciclo o bucle (una o varias instrucciones).
Despus, la condicin es reevaluada y se procede de la misma manera. Cuando la
condicin se vuelve falsa (es decir, cero), en la siguiente evaluacin se dar por
terminado el ciclo mientras (while).
Si la condicin nunca se vuelve cero, el ciclo nunca terminar y, dependiendo de las
instrucciones incluidas en el bucle, se generara un error de ejecucin que detendra
el programa, o podra ser que el programa itere indefinidamente hasta ser detenido
en forma manual.
En esta estructura no se conoce necesariamente el nmero de veces que entrar al
ciclo, ya que esto depender de la condicin definida

35

36

Donde condicin es cualquier expresin numrica, relacional o lgica.


Caractersticas:
1. La condicin (expresin lgica) se evala antes del ciclo. Si la condicin es
verdadera se ejecuta el bucle, y si es falsa se sale y el control pasa a la
instruccin siguiente al ciclo.
2. Si la condicin es falsa cuando se revisa por primera vez el bucle no se ejecuta
nunca, es decir no entra ninguna vez.
3. Mientras la condicin sea verdadera el bloque de instrucciones se ejecutar
indefinidamente a menos que exista por lo menos una instruccin que
modifique el valor de un elemento de la condicin.
4. Si existe ms de una instruccin se necesitan las palabras reservadas inicio fin ({-}) para delimitar el bloque de instrucciones.
Nota: Existen algunos algoritmos y programas que se pueden efectuar con los tres
ciclos: desde, mientras y hacer_ mientras; aunque cada una tiene sus caractersticas
especficas.
Ejercicios resueltos de la estructura de control repetitiva mientras (while)
Ejercicio 1. Mostrar los 10 primeros nmeros enteros positivos.

37

El ejercicio 1 declara la variable i de tipo entero, luego se inicializa con el valor de 1


ya que es el primer nmero entero positivo; se revisa la condicin del mientras (1
<11); como la condicin se cumple entra al ciclo y se ejecutan las dos instrucciones
que estn delimitadas en el bloque entre inicio-fin ({-}). As que imprime el 1 y luego
ii+1 lo podemos interpretar como la nueva i recibe el valor de la i anterior ms 1,
incrementando en 1 a la variable i, de tal forma que i = 2, revisa la condicin del
mientras otra vez (2 < 11), como la condicin sigue siendo verdadera vuelve a entrar
al ciclo, y as sucesivamente hasta que el valor de i sea mayor o igual a 11; esto har
que se salga del ciclo y termine el programa. Si vemos la instruccin i i + 1, se
realiza cada vez que entra al ciclo, esto hace que se cumpla la caracterstica nmero
tres de la estructura repetitiva mientras, para que en un momento dado i tome un valor
mayor que 10 y se salga del ciclo.
El programa imprimir 1 2 3 4 5 6 7 8 9 10. El ltimo valor que toma i es 11, hace
que no se cumpla la condicin y por lo tanto se sale del ciclo mientras.
Nota: Como se ver ms adelante, este ejercicio es igual al ejercicio 1 de la estructura
repetitiva desde; la ventaja principal es que el ciclo desde el incremento de su
contador i lo hace de manera automtica, y en la estructura mientras se debe
realizar en una instruccin dentro del ciclo.
Estructura de control repetitiva hacer_mientras (do while)
Esta estructura le permite al programador especificar que se repita una accin en tanto
cierta condicin sea verdadera; cuando sta es falsa se sale del ciclo. La condicin la
revisa despus del ciclo o bucle.

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

Nota: No es usual que la estructura hacer_mientras (do_while) tenga una sola


instruccin, generalmente tiene por lo menos dos.
Caractersticas:
1. Siempre entra por lo menos una vez al ciclo, ya que la condicin est despus
del ciclo.
2. Si la condicin es verdadera entra de nuevo al ciclo y regresa a revisar la
condicin, hasta que sta sea falsa se sale del bucle.
3. Debe existir una instruccin dentro del ciclo que modifique la condicin, de
lo contrario se hace infinita.
4. Si tiene ms de una instruccin, necesita obligadamente del inicio-fin ({-}).
Ejercicios resueltos de la estructura de control repetitiva hacer_mientras
(do_while)
Ejercicio 1. Imprimir los 10 primeros nmeros enteros positivos.

39

El ejercicio anterior realiza la misma operacin que el ejercicio 1 de la estructura


mientras, pero ahora utilizando la estructura repetitiva hacer_mientras. Se declara la
variable i de tipo entero, se inicializa con el valor de 1 ya que es el primer nmero
entero positivo, se entra al ciclo hacer_mientras y se imprime el valor de la variable
i = 1, se incrementa la variable i en 1, es decir i = 2 y se revisa la condicin del
hacer_mientras (2 < 11). Como la condicin se cumple entra al ciclo y se ejecutan
las dos instrucciones que estn delimitadas en el bloque entre inicio-fin ({-}), se
imprime el valor de la variable i = 2, se incrementa la variable i en 1, es decir i = 3,
se revisa la condicin del hacer_mientras (3 < 11). Como la condicin se cumple
entra al ciclo y se ejecutan las dos instrucciones que estn delimitadas en el bloque
entre inicio-fin ({-}), se imprime el valor de la variable i = 3, se incrementa la
variable i en 1, es decir i = 4 y se revisa la condicin del hacer_ mientras (4 < 11).
Como la condicin se cumple entra al ciclo y se ejecutan las dos instrucciones que
estn delimitadas en el bloque entre inicio-fin ({-}) y as sucesivamente hasta que
i=11. Cuando se revisa la condicin, como sta no se cumple se sale del ciclo
hacer_mientras y termina el programa; esto hace que se cumpla la caracterstica 3 de
la estructura repetitiva hacer_mientras, para que en un momento dado i tome un valor
mayor a 10 y se salga del ciclo. El programa imprimir 1 2 3 4 5 6 7 8 9 10. El ltimo
valor que toma i es 11 y por lo tanto no se cumple la condicin y se sale del ciclo.
Nota: En el programa primero entra al ciclo y despus revisa si la condicin es
verdadera, hasta que sta se hace falsa se sale del ciclo e imprime el valor de la suma
S.

Estructura de control repetitiva desde (for)


El desde (for) es la estructura repetitiva ms utilizada y simple de manejar, ya que
repite un conjunto de instrucciones un nmero determinado de veces. Una de sus
aplicaciones principales son los arreglos.

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:

En la instruccin desde (for), primero se ejecutar la(s) inicializacin(es),


posteriormente se evaluar la condicin y, en caso de ser verdadera (no cero), se
ejecutar(n) la(s) instruccin(es) que compone(n) el ciclo.
Despus, se realizar el incremento(s) y se volver a verificar la condicin. Cuando
la condicin se vuelve falsa, en la siguiente evaluacin se terminar el desde (for). Si
la condicin nunca se vuelve cero, la estructura nunca terminar y el ciclo se repetir
indefinidamente hasta que se detenga en forma manual.
Caractersticas:
1. Se debe conocer por anticipado el valor de la variable inicial y final antes de
entrar al ciclo.
2. La condicin se evala antes del bloque de instrucciones. Si la condicin es
verdadera se ejecuta el bloque, y si es falsa se sale y pasa el control a la
instruccin siguiente al bloque.
3. No se debe cambiar el valor de la(s) variable(s) de control, del valor inicial ni
del valor final dentro del ciclo.
4. Se puede incrementar o decrementar la variable de control segn se requiera.
5. El incremento o decremento de la variable de control es automtico.
6. Slo si existe ms de una instruccin dentro del ciclo desde se necesita el
inicio-fin ({-}).
7. Puede tener una o varias expresiones de inicializacin, de condicin y de
incremento; estas expresiones se separan mediante comas en pseudocdigo y
con puntos y comas en lenguaje C.
8. Puede tener alguna o todas las expresiones vacas: desde (,,)-for (; ;).
9. Si la condicin est vaca, tenemos un bucle infinito.
Ejercicios resueltos de la estructura de control repetitiva desde (for)
Ejercicio 1. Imprimir en pantalla los primeros 10 nmeros enteros positivos.

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).

El programa anterior realiza exactamente lo mismo, la diferencia es que las


condiciones que revisa son: (1<11), (2<11), (3<11), (4<11), (5<11), (6<11), (7<11),
(8<11), (9<11), (10<11), todas ellas son verdaderas y se imprime: 1 2 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<11) ser falsa y por lo tanto se rompe el ciclo (deja de dar
vueltas).
En este programa la variable contador del ciclo es i. Las tres partes del for son:
La expresin de inicializacin es i=1, la condicin es (i<=10), dicha condicin nos
lleva al valor final 10, y el incremento es i++, es decir que a la i en cada vuelta se le
suma 1.
Nota: La instruccin for no debe llevar punto y coma al final del parntesis: for
(i=1;i<=10;i++) ya que no respetar la impresin de i dentro del ciclo, imprimir el
valor de i que rompi el ciclo, en este caso 11.

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 y constantes


La declaracin de variables o constantes implica decirle a la computadora cuntas
variables y/o constantes se utilizarn en el programa, cmo se llamarn y el tipo de
datos que contendrn.
Declaracin de constantes
Para declarar una constante en Visual Basic nicamente es necesario utilizar la
palabra CONST seguida del nombre de la constante y su correspondiente valor. La
sintaxis es:
Const nombre_constante = valor
Donde:
Nombre_constante: es el nombre que el programador le da a la constante
que se est declarando.
Valor: valor asignado a la constante.

Ejemplo de declaracin de constantes:


Const PI = 3.1416
Const Max = 350
Const Saludo = Hola

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

Devuelve el valor absoluto de un nmero.

Acos

Devuelve el ngulo cuyo coseno es el nmero especificado.

Asin

Devuelve el ngulo cuyo seno es el nmero especificado.

Atan

Devuelve el ngulo cuya tangente corresponde al nmero especificado.

Atan2

Devuelve el ngulo cuya tangente es el cociente de dos nmeros


especificados.

BigMul

Devuelve el producto completo de dos nmeros de 32 bits.

Ceiling

Devuelve el valor entero ms pequeo que es mayor o


igual Decimal especificado o Double.

Cos

Devuelve el coseno del ngulo especificado.

Cosh

Devuelve el coseno hiperblico del ngulo especificado.

DivRem

Devuelve el cociente de dos de 32 bits o de enteros con signo de 64 bits, y


tambin devuelve el resto de un parmetro de salida.

Exp

Devuelve e (base de los logaritmos naturales) se produce a la potencia


especificado.

Floor

Devuelve el entero ms grande que sea menor o igual que Decimal o el


nmero especificado de Double.

IEEERemainder

Devuelve el resto que es el resultado de la divisin de un nmero


especificado por otro nmero especificado.

Log

Devuelve el logaritmo natural (de e base) de un nmero especificado o el


logaritmo de un nmero especificado en una base especificada.

Log10

Devuelve el logaritmo en base 10 de un nmero especificado.

Max

Devuelve el mayor de dos nmeros.

Min

Devuelve el menor de dos nmeros.

Pow

Devuelve un nmero especificado elevado a la potencia especificada.

48

Round

Devuelve un valor de Decimal o de Doubleredondeado al valor entero ms


cercano o a un nmero especificado de dgitos fraccionarios.

Sign

Devuelve un valor Integer que indica el signo de un nmero.

Sin

Devuelve el seno del ngulo especificado.

Sinh

Devuelve el seno hiperblico del ngulo especificado.

Sqrt

Devuelve la raz cuadrada de un nmero especificado.

Tan

Devuelve la tangente del ngulo especificado.

Tanh

Devuelve la tangente hiperblica del ngulo especificado.

Truncate

Calcula la parte entera de Decimal o un nmero especificado de Double.

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

Devuelve un entero que contiene el nmero de caracteres de una


cadena.
Devuelve una cadena alineada a la izquierda que contiene la cadena
especificada ajustada a la longitud indicada.
Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios iniciales.
Devuelve una cadena que a su vez contiene un nmero especificado
de caracteres de una cadena.
Devuelve una cadena en la que la subcadena especificada se
reemplaza determinado nmero de veces por otra subcadena.
Devuelve una cadena que contiene un nmero especificado de
caracteres desde el lado derecho de una cadena.
Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios finales.
Devuelve una cadena que consta del nmero especificado de
espacios.
Devuelve un valor, -1, 0 1, que indica el resultado de una
comparacin de cadena.
Devuelve una cadena convertida segn se ha especificado.
Devuelve una cadena o un objeto que se compone del carcter
especificado repetido el nmero de veces especificado.
Devuelve una cadena en la que se invierte el orden de los caracteres
de la cadena especificada.
Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios iniciales o finales.
Devuelve una cadena o un carcter que contiene la cadena
especificada convertida en maysculas.

5.4.Operaciones de entrada y salida


Recurdese que el flujo bsico del procesamiento por computadora es entrada,
proceso, salida. En los problemas que aqu se resuelven, se asume que hay un usuario
sentado frente a la computadora introduciendo datos con el teclado, el programa
acepta estos datos (entrada), los procesa y luego muestra el resultado en la pantalla
(salida).
En Visual Basic existen varias formas de gestionar las entradas y salidas. En este
captulo se explicarn las ms simples: cuadros de entrada (InputBox) y cuadros de
Mensaje (MsgBox).
Inputbox
Un InputBox es una ventana donde se le solicita informacin al usuario, tal como
puede verse en el siguiente ejemplo:

50

El InputBox escribe un mensaje que da informacin al usuario, en la figura 2.1 le


est indicando que escriba la edad. Adems presenta un cuadro donde el usuario
puede escribir lo que se le est solicitando.
Sintaxis:
Nombre_variable = InputBox (mensaje)
Donde:
Nombre_variable: corresponde al nombre de la variable en la cual se
almacenar el valor que escriba el usuario
Mensaje: es la frase que aparecer en el InputBox antes del cuadro donde el
usuario puede escribir su respuesta. El mensaje debe ir entre comillas.

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

Esta instruccin despliega un cuadro de entrada como el siguiente:


52

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.

Si se desea colocar mensajes y variables en un MsgBox, stos se concatenan con el


signo &. A continuacin se dan algunos ejemplos:
Ejemplo 2: Supngase que se tiene el siguiente cdigo:
a=7
num = 4*a
MsgBox ("El nmero seleccionado es" & num)
Estas instrucciones hacen que un programa muestre el siguiente cuadro de mensaje:

Ejemplo 3:
La instruccin
MsgBox ("lnea 1" & Chr(10) & "lnea 2")
Muestra el cuadro de mensaje:

Existen opciones que permiten cambiar la apariencia de un cuadro de mensaje,


mostrando otros botones adems del botn Aceptar, un ttulo especfico, un icono,
etc. As por ejemplo, si se desea colocar otros botones y/o un ttulo especfico en un
MsgBox, debe utilizarse la siguiente sintaxis:
Nombre_variable = Msgbox (mensaje, tipos_de_botones, ttulo)
Nombre_variable: se refiere a una variable donde se almacenar un nmero
entero entre 1 y 7, el cual indica el botn sobre el cual el usuario hizo clic. En
el cuadro 2.4 se muestra el significado de cada nmero.

53

Tipos_de_ botones: es un nmero entero entre 0 y 5, o una constante de Visual


Basic que indica la combinacin de botones que se desea para el MsgBox. En
el cuadro 2.5 se muestran los posibles valores.
Ttulo: texto que aparecer en la barra de ttulo del cuadro de mensaje.
Valores de retorno de un MsgBox

54

Botones que pueden mostrarse en un MsgBox

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)

Para incluir un icono en un cuadro de mensaje, se suma al parmetro


tipos_de_botones el valor o constante Visual Basic que representa a un determinado
icono. En el cuadro 2.6 se muestran los tipos de iconos disponibles.
55
Tipos de iconos para un MsgBox

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

num = InputBox("introduzca el nmero que desea elevar al cuadrado")


cuadrado = num * num
MsgBox (Str(num) + " elevado al cuadrado es" & cuadrado)
End Sub

Ejemplo 2: Programa que calcula el rea de un tringulo.


Option explicit
Sub main()
Dim b As Single, h As Single, area As Single
b = InputBox("Introduzca la base")
h = InputBox("Introduzca la altura")
area = b * h / 2
MsgBox (" El rea del tringulo es" & area )
End Sub

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

If expresin lgica Then


Una o varias instrucciones
Else
Una o varias instrucciones
End If
Si la expresin lgica es verdadera se ejecutan las instrucciones que estn a
continuacin de Then, y si la expresin es falsa, se ejecutan las instrucciones que
estn despus de Else.
Ejemplo 3: programa que calcula el promedio de un estudiante dadas tres calificaciones. Si
el promedio es mayor o igual que 9.5 se debe mostrar un mensaje que indique
APROBADO. En caso contrario, el mensaje debe ser REPROBADO.
Option explicit
Sub main()
Dim C1 As Single, C2 As Single, C3 As Single, prom As Single
C1 = InputBox("Introduzca la calificacin 1")
C2 = InputBox("Introduzca la calificacin 2")
C3 = InputBox("Introduzca la calificacin 3")
Prom = (C1 + C2 + C3) / 3
If Prom >= 9.5 then
MsgBox (" Promedio=" & prom & Chr(10) & Chr(10) &
"APROBADO")
Else
MsgBox (" Promedio=" & prom & Chr(10) & Chr(10) &
"REPROBADO")
End If
End Sub

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

X = InputBox("Escriba el valor de X")


If X = 0 Then
resp = MsgBox("No puede realizarse el clculo" & Chr(10) & "X debe
ser diferente de cero", vbCritical, "Error")
Else
Y = (X ^ 3 + 5) / X
MsgBox ("El valor de Y es " & y)
End If
End Sub

60

Ejemplo 5: Programa que calcula la comisin que le corresponde a un vendedor. Si vendi


ms de Bs. 1.000.000, la comisin es el 3% sobre las ventas. Si vendi Bs.1.000.000 o
menos, la comisin es del 1% de las ventas.
Option Explicit
Sub main()
Dim Ventas As Single, Com As Single
Ventas = InputBox("Introduzca el monto vendido (Bs.)")
If Ventas > 1000000 Then
Com = 0.03 * Ventas
Else
Com = 0.01 * Ventas
End If
MsgBox (" Comisin del vendedor=" & Com )
End Sub
Estructuras de decisin anidadas
Se utilizan cuando hay ms de dos alternativas entre las cuales se puede elegir.
Cuando en una estructura de decisin, alguna de sus instrucciones es otra estructura
de decisin, se dice que las estructuras estn anidadas. Visual Basic permite escribir
las estructuras anidadas haciendo uso de estructuras If then else, tal como se
muestra a continuacin.
If

expresin lgica then


Una o ms instrucciones

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 %

Si la cantidad comprada es inferior a 30 metros cbicos el descuento es del 2%,


independientemente del tipo de madera.
Option Explicit
Sub main()
Dim cant as Single, pre as Single, pre_tot as Single, desc as Single
Dim TipoM as String
TipoM = InputBox ("Introduzca el tipo de madera")
cant = InputBox ("Introduzca la cantidad en metros cbicos a comprar")
pre = InputBox ("Introduzca el precio por metro cbico")
pre_tot = cant * pre
If cant > 30 then
If TipoM= "A" then
Desc = 0.04 * pre_tot
Else
If TipoM = "B" then
Desc = 0.08 + pre_tot
Else
If tipoM = "C" then
Desc = 0.1 * pre_tot
End If
End If
End If

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

Ejemplo 8: programa que determina cul es el mayor de tres nmeros.


Option Explicit
Sub main()
Dim a As Single, b As Single, c As Single, mayor As Single
a = InputBox("Escriba el primer nmero")
b = InputBox("Escriba el segundo nmero")
c = InputBox("Escriba el tercer nmero")
If a > b Then
If a > c Then
mayor = a
Else
mayor = c
End If
Else
If b > c Then
mayor = b
Else
mayor = c
End If
End If
MsgBox (" El nmero mayor es = " & mayor)
End Sub

Estructuras de decisin mltiple


Al igual que las estructuras de decisin anidadas, las estructuras mltiples se utilizan
cuando se quiere elegir entre varias alternativas. En una estructura de decisin
mltiple se especifica una variable o expresin, la cual puede tomar diferentes
valores, dependiendo del valor que tenga se ejecutarn las instrucciones pertinentes.
Select Case Variable o Expresin
Case primer valor

63

Una o ms instrucciones (1)


Case segundo valor
Una o ms instrucciones (2)
Case tercer valor
Una o ms instrucciones (3)
.
.
.
Case Else
Una o ms instrucciones (4)
End Select
El Select Case funciona de la siguiente manera: si la variable o expresin toma el
primer valor se ejecuta el bloque de instrucciones (1), si es igual al segundo valor se
ejecutan las instrucciones (2), y as sucesivamente. En el caso de que la variable o
expresin no sea igual a ninguno de los valores especificados, se ejecutan las
instrucciones que estn despus del Else. Una vez que Visual Basic ejecuta el Case
que coincida, ignorar los Case restantes y continuar con el cdigo que est despus
del End Select.
La parte Case Else de la estructura Select Case es opcional, slo se coloca si es
necesario. Si no se utiliza Case Else y la variable no toma ninguno de los valores
especificados en los Case, se ejecuta el cdigo que sigue a End Select.
Ejemplo 8: Programa que recibe como dato de entrada un nmero entero entre 1 y 7, y
escribe el da de la semana correspondiente.
Option explicit
Sub main( )
Dim nmero as Integer
nmero = InputBox (Escriba un nmero entre 1 y 7 )
Select Case nmero
Case 1
MsgBox (Domingo)
Case 2
MsgBox (Lunes)
Case 3
MsgBox (Martes)
Case 4
MsgBox (Mircoles)
Case 5
MsgBox (Jueves)
Case 6
MsgBox (Viernes)

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

El siguiente ejemplo muestra un programa en el cual se utiliza una estructura de


repeticin para introducir los datos de entrada y calcular un resultado.
Ejemplo 3: Programa que calcula el promedio general de un curso de n estudiantes.
Option Explicit
Sub Main()
Dim nota As Single, suma As Single, i As Integer
Dim n As Integer, promedio As Single
Suma=0
n = InputBox ("Introduzca el nmero de estudiantes a procesar:")
For i = 1 To n
nota = InputBox("Nota del estudiante " & i)
suma = suma + nota
Next i
promedio = suma / n
MsgBox("Promedio = " & promedio)
End Sub

68

La variable suma de este ejemplo es un acumulador. Una variable acumuladora se


utiliza cuando se quiere sumar valores sucesivos de una variable, dentro de una
estructura de repeticin. Generalmente se inicializa en cero.
Repetir Mientras
Este tipo de estructura de programacin, repite la ejecucin de un conjunto de
instrucciones mientras que una expresin lgica es verdadera. Si la expresin lgica
es falsa, no se repiten las instrucciones.
Visual Basic proporciona tres formas distintas para definir una estructura Repetir
Mientras, la sintaxis de cada una de ellas se indica a continuacin.
a) Forma 1: expresin lgica al comienzo
Do While expresin lgica
Una o ms instrucciones (1)
Loop
b) Forma 2: expresin lgica al final
Do
Una o ms instrucciones (1)
Loop While expresin lgica
c) Forma 3
While expresin lgica
Una o ms instrucciones (1)
Wend
Esta manera de escribir un Repetir Mientras tiene la misma lgica de la forma es
simplemente otra alternativa

Ejemplo 5: programa que calcula el promedio general de un curso de n estudiantes. ste es


igual al ejemplo 3 pero en su solucin se utiliza Repetir Mientras.
Option Explicit
Sub Main()
Dim nota As Single, suma As Single, i As Integer
Dim n As Integer, promedio As Single
suma = 0
n = InputBox ("Introduzca el nmero de estudiantes a procesar:")

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

ejemplo, las variables e1, e2 y e3 almacenan la cantidad de empleados que tienen


menos de 30 aos, entre 30 y 50 aos, y ms de 50 aos, respectivamente.
Repetir Hasta
Esta estructura permite repetir un conjunto de instrucciones hasta que una expresin
lgica sea verdadera, o lo que es igual, repite mientras una expresin lgica es falsa.
Cuando la expresin lgica es verdadera, el bucle deja de ejecutarse y el programa
contina en la instruccin siguiente.
a) Expresin lgica al final
Do
Una o ms instrucciones (1)
Loop Until expresin lgica
b) Expresin lgica al comienzo
Do Until expresin lgica
Una o ms instrucciones (1)
Loop
Al comienzo del bucle se evala la expresin lgica y si sta es falsa se
ejecutan las instrucciones (1), si es verdadera no se ejecuta el Repetir Hasta.
Ejemplo 8: Programa que calcula el promedio general de un curso de n estudiantes. ste es
el mismo programa de los ejemplos 3 y 5, pero resuelto con la estructuraRepetir Hasta.
Option Explicit
Sub Main()
Dim nota As Single, suma As Single, i As Integer
Dim n As Integer, promedio As Single
suma = 0
n = InputBox ("Introduzca el nmero de estudiantes a procesar:")
i=1
Do Until i> n
nota = InputBox("Nota del estudiante " & i)
suma = suma + nota
i=i+1
Loop
promedio = suma / n
MsgBox ("Promedio = " & promedio)
End Sub

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

resp =MsgBox("Desea introducir otro nmero?", vbYesNo + vbInformation, _


"ejemplo 11")
Muestra el siguiente cuadro de mensaje:

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

programa debe mostrar el saldo final. Sugerencia: utilizar una estructura de


repeticin con una condicin evaluada al final del bucle.
7. Calcular el promedio de un estudiante que presenta tres exmenes. El programa debe
validar los datos de entrada, es decir, slo debe aceptar notas entre 0 y 20.
5.6.Arreglos
Los arrays, arreglos o mejor conocidos como vectores (o matrices) que son conocidas
por algunos como vectores multidimensionales forman parte tambin de las cosas
que podamos usar en VB6.
Definicin de arreglo
Es un conjunto de datos o una estructura de datos homogneos que se encuentran
ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en
forma tempora) , son una coleccin de variables del mismo tipo que s referencia
utilizando un nombre comn.
Un arreglo puede definirse como un grupo o una coleccin finita, homognea y
ordenada de elementos. Los arreglos pueden ser de los siguientes tipos:
De una dimensin.
De dos dimensiones.
De tres o ms dimensiones
Unidimensionales

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

Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y


se debe proporcionar la direccin base del arreglo, la cota superior y la inferior.
Por ejemplo imaginemos que tenemos 20 variables de tipo String que almacenan
nombres (nombre1, nombre2, etc..). Si yo ahora quisiera pasar todas estas cadenas a
minsculas tendra que utilizar la funcin Lcase con cada variable: nombre1 =
Lcase(nombre1), nombre2 = Lcase(nombre2), etc.
En cambio si utilizara un arreglo solucionara mi problema solo a esto
Dim nombres(30) As String
For x = 0 To 30
nombres(x) = LCase(nombres(x))
Next
Siguiendo el ejemplo anterior: en vez de escribir la sentencia Lcase 30 veces para
cada variable, hemos utilizado un arreglo llamado nombres con un nmero de ndice
30 , es decir que almacena 30 datos de tipo String

Declaracin de los arreglos en el cdigo


Para crear un arreglo se debe en primer lugar declararlo como cualquier otra variable,
la nica diferencia es que debemos indicar la cantidad de elementos que contendr el
arreglo, colocando el nmero de ndice entre parntesis. Por ejemplo:
Lo siguiente crea un arreglo de 15 elementos o datos de tipo integer
Dim miArreglo (1 to 15) as integer
Esto crea un arreglo de 11 elementos o datos de tipo String
Dim empleados (10) as String
Como podemos ver en el primer ejemplo hemos declarado un arreglo
llamado miArreglo y entre parntesis hemos declarado el rango de capacidad del
mismo, es decir la cantidad de datos que podr contener
El primer nmero, el 1 , indica el lmite inferior del mismo, y el nmero 15 indica el
lmite mximo del arreglo, conformando de esta manera un arreglo que podr
almacenar 15 datos de tipo string.
En el segundo ejemplo, declaramos un arreglo de 11 elementos de tipo string. Como
pods ver hemos indicado solo un nmero que representa el valor mximo del
mismo. Cabe aclarar que hemos puesto de ndice el nmero 10, pero en realidad el
arreglo contiene 11 elementos ya que cuando NO indicamos el lmite inferior, se
asume que el mismo comienza desde el 0.
Importante: los arreglos se dividen en 2 grupos, los vectores y las matrices. Los
vectores son arreglos que contienen una sola dimensin y las matrices 2 o mas
dimensiones.

76

Acceder a los datos de un arreglo

Para acceder a los datos de un arreglo o vector, debemos hacerlo mediante


el ndice o nmero del elemento del mismo. Por ejemplo:
77
Dim alumnos(1 To 4) As String
alumnos(1) = "juan"
alumnos(2) = "micaela"
alumnos(3) = "mara"
alumnos(4) = "ignacio"
Primero declaramos un arreglo llamado alumnos, de tipo string y que contendr 4
elementos. Luego le asignamos un valor de cadena como a cualquier otra variable de
tipo string, pero con la diferencia que para referirnos al elemento utilizamos el n de
ndice del mismo.
Otro ejemplo
Dim paises(2) As String
' Llena el vector con datos
paises(0) = "Argentina"
paises(1) = "Per"
paises(2) = "Brasil"
' Recorre los elementos del vector
For x = 0 To 2
MsgBox "Nombre del pas : " & paises(x)
Next x
En este ltimo ejemplo, declaramos y creamos un vector de 3 elementos que
contendr el nombre de 3 pases. Luego en un bucle For utilizamos la funcin
MsgBox para mostrar los elementos del arreglo, pasndole como parmetro del
ndice la variable x del bucle For.
Utilizar una estructura Type o UDT en un arreglo
Como vimos, en un arreglo podemos almacenar datos de cualquier tipo pero no
mezclarlos, es decir podemos crear arreglos de tipo string, de tipo Integer etc., pero
sin duda que lo ms importante y de ms utilidad a la hora de programar es la
utilizacin de datos definidos por nosotros mediante una estructura Type
Por ejemplo:

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.

La representacin en memoria se realiza de dos formas: almacenamiento por


columnas o por renglones. Para manejar un arreglo, las operaciones a efectuarse son:

Declaracin del arreglo,


Creacin del arreglo,
Inicializacin de de los elementos del arreglo, y
Acceso a los elementos del arreglo.

Ejemplo de matriz de 2 dimensiones


Matriz bidimensionales de 6 x 8 (de 2 dimensiones).
79
Dim personas (1 to 6, 1 to 8) as string
Si luego quisiera acceder a los datos de la misma basta con referirnos a los subndices
Por ejemplo:
personas (1, 1) = "Natalia"
personas (2, 1) = "pedro"
personas (1, 7) = "valeria"
personas (1, 8) = "jos"
personas (2, 2) = "carolina"
personas (4, 1) = "raquel"
personas (6, 2) = "eustaquio"
personas (6, 5) = "maria"
personas (6, 8) = "mariana"
El total de ndices posibles para almacenar datos o valores en el ejemplo anterior es
de 48 datos, ya que si multiplicamos 6 x 8 nos da como total 48 valores posibles para
utilizar en la matriz bidimensional.
En este ejemplo creamos una matriz de 3 dimensiones de 3 x 3 x 3
Dim cubo (1 to 3, 1 to 3, 1 to 3) as integer
Para acceder a los datos sera exactamente de la misma manera pero debemos utilizar
un ndice ms.
Ejemplo:
cubo (1, 1 , 1) = 50
cubo (1, 1 , 2) = 50
cubo (1, 1 , 3) = 50
cubo (1, 2 , 1) = 50
cubo (1, 2 , 2) = 50
cubo (1, 2 , 3) = 50
cubo (1, 3 , 1) = 50
cubo (1, 3 , 2) = 50
cubo (1, 3 , 3) = 50
cubo (2, 1 , 1) = 50
cubo (2, 1 , 2) = 50
cubo (2, 1 , 3) = 50
cubo (2, 2 , 1) = 50

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

You might also like