Anda di halaman 1dari 111

FUNDAMENTOS DE

PROGRAMACIN

Instituto Tecnolgico Superior Jos Ochoa Len


Modulo: Fundamentos de Programacin
Seccin: Vespertina Nocturna
Ciclo: Primero
Periodo: 2017 2018
Ing. Jos Manrique Luna

PASAJE - EL ORO - ECUADOR


Introduccin

En el mundo de los lenguajes de programacin se pueden dar un sin nmero de soluciones


informticas a los diferentes problemas que surgen en micro, medianas y grandes
empresas, por medio del anlisis diseo e implementacin de sistemas informticos, de
esta manera automatizando los diferentes procesos encontrados en entidades donde se
pondr en marcha la solucin generada.

A nivel mundial existen diferentes tipos de soluciones informticas, iniciando desde un


software de escritorio, pginas web, aplicaciones mviles, software electrnico hasta
sistemas robticos, todos los mencionados desarrollados en los correspondientes
lenguajes de programacin, dependiendo del tipo de solucin que se desea dar.

Para llevar a cabo y culminar de manera exitosa el desarrollo de sistemas informticos, se


debe de tomar en cuenta cuales son los pasos que se siguen para la creacin de un
software, es por eso que se est desarrollando el presente modulo, para tener muy claro
cules son los puntos importantes antes del desarrollo.

Con lo anterior mencionado se puede concretar que el objetivo de la creacin del presente
mdulo de fundamentos de programacin, es ensearle al estudiante cuales son todos los
pasos y cules son los mtodos que se deben de tomar en cuenta y aplicar antes de la
creacin de un software, como por ejemplo, el desarrollo de algoritmos, la utilizacin de
variables, cuales son y cmo se aplican las estructuras selectivas repetitivas, disear los
algoritmos en diagrama de flujo y pseudocdigo, dando como resultado la creacin exitosa
de un software para satisfacer las necesidades de los usuarios.

2
Ing. Marcelino Jos Manrique Luna - Docente
Antecedentes Institucionales

El Instituto Tecnolgico Superior Jos Ochoa Len es una entidad educativa localizada en
la ciudad de pasaje en las calles Avenida Quito y calle San Martin esquina.

Ilustracin: Localidad de la institucin.


Fuente: Google Maps

Misin

Formar profesionales de calidad y excelencia en las reas tcnicas y cientficas, lderes y


emprendedores sociales con amplia conciencia moral, social, critica y creativa, para
enfrentar los avances de la ciencia y la tecnologa, con eficiencia y eficacia, mejorando el
desarrollo de su entorno e insertndose activamente en el campo econmico, laboral del
cuidado del medio ambiente.

Visin

El Instituto Tecnolgico Superior Jos Ochoa Len, se constituir en una institucin de


excelencia acadmica en las especialidades tecnolgicas de: anlisis de sistemas,
mecnica industrial, electromecnica, mecatrnica y contabilidad tributaria, en la formacin
integral de bachilleres y profesionales competitivos, emprendedores, con criterios de
sustentabilidad y sostenibilidad, con conocimientos tcnicos, cientficos y sociales con
miras a buscar soluciones creativas a los problemas que forman el contexto, orientados a
la formacin de lderes que mejoren la calidad y calidez de vida de la comunidad y el pas,
convirtindose en la primera universidad pasajea.

3
Ing. Marcelino Jos Manrique Luna - Docente
El Instituto Tecnolgico Superior Jos Ochoa Len cuenta con tres carreras tecnolgicas
entre ellas mencionamos, Carrera de Anlisis de Sistemas, Carrera de Mecnica Industrial,
y carrera de Electromecnica, con el fin de formar y brindar profesionales de calidad a la
comunicad orense.

Carrera de Anlisis de Sistemas

Misin

La Carrera de Anlisis de Sistemas forma Tecnlogos competentes, crticos, humanistas,


lderes y emprendedores con responsabilidad social; genera, fomenta y ejecuta procesos
tecnolgicos, de conocimientos cientficos y de innovacin en el desarrollo de soluciones
informticas; se vincula con el medio con criterios de sustentabilidad para contribuir al
desarrollo social, econmico, cultural y ecolgico de la regin y el pas.

Visin

La Carrera de Anlisis de Sistemas, en el ao 2020, ser un referente regional y


nacional en la formacin de Tecnlogos en sistemas computacionales.

Perfil Profesional

Es un profesional capaz de usar herramientas y tcnicas para recolectar datos, analizar,


disear, desarrollar e implementar nuevos sistemas que permitan automatizar los
procedimientos de las empresas con fundamentos cientficos, tecnolgicos, humansticos
y de gestin, demostrando slidos valores ticos-morales.

Campo Ocupacional

Director de grupos de trabajo de sistemas


Programador de Computadoras
Administrador de Centros de Cmputo
Asistente de gerencia
Administrador de Bases de Datos
Asesor Organizacional de las empresas

4
Ing. Marcelino Jos Manrique Luna - Docente
Instructor de personal en el rea de informtica
Asesor en el rea de informtica

Malla Curricular

Ilustracin: Malla Curricular de la carrera de Anlisis de Sistemas


Fuente: Secretara del Institutito

5
Ing. Marcelino Jos Manrique Luna - Docente
Contenido
Unidad 1: Conceptos bsicos ........................................................................................................... 9
1.1. Conceptos de programacin ............................................................................................ 9
Lenguaje de programacin......................................................................................................... 9
Programa .................................................................................................................................... 9
1.2. Pasos en la creacin de un programa (Metodologa) .................................................. 10
Definicin del problema ........................................................................................................... 10
Anlisis del problema ............................................................................................................... 10
Diseo y tcnicas para la formulacin de un algoritmo ........................................................... 10
Codificacin .............................................................................................................................. 11
Prueba y depuracin ................................................................................................................ 11
Documentacin ........................................................................................................................ 12
Mantenimiento ........................................................................................................................ 12
1.3. Algoritmos ....................................................................................................................... 24
Ejercicios................................................................................................................................... 24
1.4. Entidades primitivas para el desarrollo de un programa........................................... 19
Identificador ............................................................................................................................. 19
Tipos de datos .......................................................................................................................... 13
Operadores relacionales, lgicos y matemticos..................................................................... 15
Prioridad de los operadores aritmticos .................................................................................. 16
Reglas para formar un Identificador ........................................................................................ 20
Expresiones .............................................................................................................................. 23
Unidad 2: Diagramas de flujo y pseudocdigo ............................................................................ 24
2.1. Diagramas de flujo ......................................................................................................... 26
Tcnicas de diseo ................................................................................................................... 27
Caractersticas .......................................................................................................................... 27
Simbologa ................................................................................................................................ 28
Ejercicios................................................................................................................................... 28
Prueba de escritorio ................................................................................................................. 28
2.2. Uso de software DFD...................................................................................................... 32
2.3. PSEUDOCDIGO ......................................................................................................... 33
Instrucciones algortmicas bsicas ........................................................................................... 33
2.4. Uso de software PSeInt .................................................................................................. 35
Unidad 3: Estructuras algortmicas I ........................................................................................... 37
Diseo descendente (top-down) .............................................................................................. 37
Estructuras de datos................................................................................................................. 37

6
Ing. Marcelino Jos Manrique Luna - Docente
Programacin modular............................................................................................................. 37
3.1. Estructura de control ..................................................................................................... 37
Estructura de Control Secuencial ............................................................................................. 38
Estructura de Control Selectiva o Alternativa .......................................................................... 41
Toma de decisiones .................................................................................................................. 42
Estructura de control selectiva doble si/si-no (if/else) ............................................................ 44
Estructura de control selectiva mltiple segun_sea (switch) .................................................. 47
Unidad 4: Estructuras algortmicas II ......................................................................................... 51
Estructura de Control repetitiva o de iteracin condicionada ................................................. 51
Estructura de control repetitiva mientras (while).................................................................... 51
Estructura de control repetitiva hacer_mientras (do while) ................................................... 54
Estructura de control repetitiva desde (for) ............................................................................ 57
Omisin de expresiones ........................................................................................................... 58
Caractersticas: ......................................................................................................................... 58
Unidad 5: Codificacin .................................................................................................................. 61
5.1. Elementos del lenguaje Visual Basic............................................................................. 61
Qu es Visual Basic? ............................................................................................................... 61
5.2. Tipos de datos ................................................................................................................. 62
Declaracin de variables y constantes ..................................................................................... 62
Declaracin de constantes ....................................................................................................... 63
Declaracin de variables .......................................................................................................... 63
Ejemplos de declaraciones de variables: ................................................................................. 64
Option Explicit .......................................................................................................................... 65
Instruccin de asignacin ......................................................................................................... 65
5.3. Funciones ........................................................................................................................ 66
Funciones de Conversin ......................................................................................................... 67
Funciones Matemticas ........................................................................................................... 68
Funciones de Cadena ............................................................................................................... 69
5.4. Operaciones de entrada y salida ................................................................................... 71
Inputbox ................................................................................................................................... 71
MsgBox ..................................................................................................................................... 73
Valores de retorno de un MsgBox............................................................................................ 75
Botones que pueden mostrarse en un MsgBox ....................................................................... 76
Tipos de iconos para un MsgBox .............................................................................................. 76
5.5. Codificacin .................................................................................................................... 78
Escritura de programas ............................................................................................................ 78

7
Ing. Marcelino Jos Manrique Luna - Docente
Ejercicios................................................................................................................................... 78
Estructuras de decisin simple ................................................................................................. 80
Estructuras de decisin doble .................................................................................................. 81
Estructuras de decisin anidadas ............................................................................................. 83
Estructuras de decisin mltiple .............................................................................................. 87
EJERCICIOS PROPUESTOS ......................................................................................................... 90
Estructuras de Repeticin ........................................................................................................ 92
Repetir Para (Fornext) ........................................................................................................... 92
Repetir Mientras ...................................................................................................................... 94
Repetir Hasta ............................................................................................................................ 97
EJERCICIOS PROPUESTOS ....................................................................................................... 101
5.6. Arreglos ......................................................................................................................... 102
Definicin de arreglo .............................................................................................................. 102
Unidimensionales ................................................................................................................... 103
Declaracin de los arreglos en el cdigo ................................................................................ 104
Bidimensionales ..................................................................................................................... 108
Referencia Bibliogrfica .............................................................................................................. 111
Bibliografa Bsica: ................................................................................................................. 111
Bibliografa Complementara: ................................................................................................ 111
Web ........................................................................................................................................ 111

8
Ing. Marcelino Jos Manrique Luna - Docente
FUNDAMENTOS DE PROGRAMACIN

Unidad 1: Conceptos bsicos

1.1. Conceptos de programacin

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

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

9
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

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

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

10
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

1.2.7. Prueba y depuracin

11
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

1.2.9. Mantenimiento

12
Ing. Marcelino Jos Manrique Luna - Docente
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. Entidades primitivas para el desarrollo de un programa.

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

13
Ing. Marcelino Jos Manrique Luna - Docente
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).

Numricos

Simples Lgicos

Alfanumricos
(string)
Tipos de Arreglos
datos (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

14
Ing. Marcelino Jos Manrique Luna - Docente
hacer operaciones con ellos. Este tipo de datos se representan encerrados entre
comillas.
Ejemplo:
ITS JOL
2016

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

Aritmticos

Tipos de
Relacionales
operadores

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.

Operadores Aritmticos
+ Suma
- Resta

15
Ing. Marcelino Jos Manrique Luna - Docente
* Multiplicacin
/ Divisin
Mod Mdulo (residuo de la divisin entera)

Ejemplo:

Expresin Resultado
7/2 3.5
12 mod 7 5
4+2*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.
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:

23 * 2 / 5 = 9.2 46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 140 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

16
Ing. Marcelino Jos Manrique Luna - Docente
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 b = 20 c = 30

a+b>c Falso
a-b<c Verdadero
a - b == c Falso
a*b<>c Verdadero
Ejemplos no lgicos:

17
Ing. Marcelino Jos Manrique Luna - Docente
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 Y
Or O
Not Negociacin

18
Ing. Marcelino Jos Manrique Luna - Docente
1.4. Entidades primitivas para el desarrollo de un programa

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

19
Ing. Marcelino Jos Manrique Luna - Docente
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, 20ivisi, 20ivisin
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 carcter no es letra. Hay que recordar que la
en el cdigo ASCII, NO aparece con las dems letras.

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.

20
Ing. Marcelino Jos Manrique Luna - Docente
Constante: Una constante es un dato numrico o alfanumrico que no cambia
durante la ejecucin del programa.

Ejemplo:

pi = 3.1416

1.4.2. Variables y constantes

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

Numricas

Por su
Lgicas
contenido

Alfanumricas
(String)
Clasificacin
de variables
De trabajo

Por su uso Contadores

Acumuladores

21
Ing. Marcelino Jos Manrique Luna - Docente
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.

Ejemplo:

suma = a+b/c

22
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

23
Ing. Marcelino Jos Manrique Luna - Docente
Unidad 2: Diagramas de flujo y pseudocdigo

2.1.Algoritmos

2.1.1. Definicin

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.

2.1.2. Caractersticas.

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

2.1.3. Ejercicios

Algoritmo para cambiar el neumtico desinflado de un automvil.

24
Ing. Marcelino Jos Manrique Luna - Docente
1. Inicio
2. Bajar la herramienta y el neumtico (llanta) de repuesto del automvil.
3. Aflojar los birlos del neumtico pinchado.
4. Acomodar el gato.
5. Levantar el automvil.
6. Quitar los birlos del neumtico desinflado.
7. Quitar el neumtico desinflado.
8. Colocar el neumtico de repuesto.
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 pasos1 y tiene un orden.

Un algoritmo para preparar unos huevos a la mexicana.

1. Poner la sartn en la estufa.


2. Poner aceite en la sartn.
3. Encender la estufa.
4. Cortar cebolla, tomate y chile en pedazos pequeos.
5. Poner la cebolla, el tomate y el chile en la sartn.
6. Abrir los huevos y verterlos en un recipiente.
7. Batir los huevos.
8. Poner los huevos batidos en la sartn.
9. Revolver la cebolla, tomate y el chile con los huevos hasta que queden estos
ltimos cocidos.
10. Vaciarlos en un plato.

25
Ing. Marcelino Jos Manrique Luna - Docente
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:

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.

2.2.Diagramas de flujo
Los diagramas de flujo -tambin conocidos como fluxogramas- son una representacin
grfica mediante la cual se representan las distintas operaciones de que se compone un
procedimiento o parte de l, estableciendo su secuencia cronolgica. Clasificndolos
mediante smbolos segn la naturaleza de cada cual. Es decir, son una mezcla de smbolos
y explicaciones que expresan secuencialmente los pasos de un proceso, de forma tal que este
se comprenda ms fcilmente. Se les llama diagramas de flujo porque los smbolos utilizados

26
Ing. Marcelino Jos Manrique Luna - Docente
se conectan por medio de flechas para indicar la secuencia de la operacin, en pocas palabras
son la representacin simblica de los procedimientos administrativos.

2.2.1. Tcnicas de diseo


La construccin de los diagramas de flujo implica la consideracin de una serie de pasos,
mismos que sirven de gua para su diseo, estos se presentan a continuacin:
Conformar un grupo de trabajo donde participen aquellos que son responsables de la
ejecucin y el desarrollo de los procedimientos que se encuentran debidamente
interrelacionados y que constituyen un proceso.
Establecer el objetivo que se persigue con el diseo de los diagramas y la
identificacin de quin lo emplear, ya que esto permitir definir el grado de detalle
y tipo de diagrama a utilizar.
Definir los lmites de cada procedimiento mediante la identificacin del primer y
ltimo paso que lo conforman, considerando que en los procedimientos que estn
interrelacionados el comienzo de uno es la conclusin del proceso previo y su
trmino significa el inicio del proceso siguiente.
Una vez que se han delimitado los procedimientos, se procede a la identificacin de
los pasos que estn incluidos dentro de los lmites de cada procedimiento y su orden
cronolgico.

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

27
Ing. Marcelino Jos Manrique Luna - Docente
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.

2.2.3. Simbologa

2.2.4. Prueba de escritorio


Prueba de escritorio, la cual consiste en revisar el algoritmo y ejecutarlo de forma imaginaria
(prueba) a fin de observar si arroja el resultado esperado.

Consiste en dar valores a las variables que hemos definido y que siguen el flujo del programa
para comprobar si al final el resultado es el acertado.
Por ejemplo:
No ingresar un dato de nacimiento que sea mayor que la fecha actual.
No ingresar un nmero negativo donde deber ir uno positivo o sin decimales;
No ingresar un valor numrico donde solo debe ir texto;
No ingresar un valor fuera del rango establecido; etc.,

En casos de generar algn error, el programa tendr que enviar al usuario un mensaje
indicndole esto y dndole la oportunidad de corregir. En los casos en que deba ingresar una
clave de acceso, no se debe permitir que la ingrese ms de 3 veces. En este caso se supone

28
Ing. Marcelino Jos Manrique Luna - Docente
que no es la persona autorizada y el programa no debe permitirle seguir "probando" y
normalmente lo cerramos sin ms (luego de ponerle un cartelito en donde le indicamos de
tal circunstancia). Una vez todo haya funcionado bien en el papel, entonces ya podemos
escribir el pseudocdigo siguiendo el diagrama de flujo. Esta prueba es para no perder
tiempo escribiendo el programa y luego tener que buscar EN DONDE est el error y como
debemos corregirlo. Tambin sirve para optimizar un algoritmo viendo cmo podemos llegar
a un determinado resultado con menos pasos.

ENTRADA PROCESO SALIDA


x v=x+(0.13*x) v
2 V= 2+(0.13*2) 2.26
1 V= 1+(0.13*1) 1.13
5 V= 5+(0.13*5) 5.65
10 V= 10+(0.13*10) 11.13
8 V= 8+(0.13*8) 9,04
3 V= 3+(0.13*3) 3,39

2.3.Ejercicios de diagrama de flujo

2.3.1. Ejercicios

Ejercicio 1. Sume dos nmeros enteros

29
Ing. Marcelino Jos Manrique Luna - Docente
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).

30
Ing. Marcelino Jos Manrique Luna - Docente
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.

31
Ing. Marcelino Jos Manrique Luna - Docente
2.3.2. Uso de software DFD
DFD es un programa que permite crear diagramas de flujo, editarlos, interpretarlos y
ejecutarlos. DFD ayuda a hacer estos diagramas fcilmente partiendo de plantillas y modelos
predeterminados, permitiendo agregar smbolos y flechas para establecer secuencias; se
dispone de una barra de herramientas en el que se deben seleccionar los distintos elementos
que se quieran ir agregando al modelo.

En el caso que el usuario quiera probar un algoritmo representado por el diagrama, el mismo
se puede ejecutar y depurar para verificar el comportamiento esperado a partir de ciertos
valores de entrada. Este algoritmo va a servir como pseudo-cdigo, siendo la etapa previa a
su codificacin en un determinado lenguaje de programacin.

Para descargar el programa y poder realizar las practicas correspondientes, puede


descargarlo de siguiente link.

Como tarea extra-clase debe realizar los ejercicios resueltos en el aula de clases.

32
Ing. Marcelino Jos Manrique Luna - Docente
2.4.PSEUDOCDIGO

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

33
Ing. Marcelino Jos Manrique Luna - Docente
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
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

34
Ing. Marcelino Jos Manrique Luna - Docente
Ejemplo:

2.4.2. Uso de software PSeInt

PSeInt es un software libre educativo multiplataforma dirigido a personas que se inician en


la programacin. PSeInt es la abreviatura de PSeudo Intrprete, una herramienta educativa
utilizada principalmente por estudiantes para aprender los fundamentos de la programacin
y el desarrollo de la lgica. Es un software muy popular de su tipo y es ampliamente utilizado
en universidades de Latinoamrica y Espaa.

Caractersticas.

Lenguaje Autocompletado
Ayudas Emergentes
Plantillas de Comandos
Soporta procedimientos y funciones
Indentado Inteligente

35
Ing. Marcelino Jos Manrique Luna - Docente
Exportacin a otros lenguajes (C, C++, C#, Java, PHP, JavaScript, Visual Basic
.NET, Python, Matlab)
Graficado, creacin y edicin de diagramas de flujo
Editor con coloreado de sintaxis
Foro oficial de PSeInt
Software multiplataforma2 sobre Microsoft Windows, GNU/Linux y Mac OS X, en
diciembre de 2016 empez un desarrollo independiente para Android3

Para comenzar

Es muy importante, aunque no obligatorio, documentar el cdigo (Comentar algunas lneas)


para que nos permita rpidamente identificar qu partes del mismo hace qu cosa, ya que a
medida que se avance en el desarrollo y aumente considerablemente la cantidad de lneas,
se har ms difcil encontrar en cul de ellas se encuentra la sentencia que hace algo
especfico. Esto se consigue utilizando la doble barra "//"

Para descargar el programa y poder realizar las practicas correspondientes, puede


descargarlo de siguiente link.

Como tarea extra-clase debe realizar un informe que incluya el enunciado del problema de
los ejercicios resueltos en el aula de clases, con diagrama de flujo y la Codificacin en
Seudocdigo. Para poder conocer ms de la herramienta puede ver el video enlazado en el
link.

36
Ing. Marcelino Jos Manrique Luna - Docente
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.

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:

Secuencial

37
Ing. Marcelino Jos Manrique Luna - Docente
Estructuras de control 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:

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:

38
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

39
Ing. Marcelino Jos Manrique Luna - Docente
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.

40
Ing. Marcelino Jos Manrique Luna - Docente
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).

41
Ing. Marcelino Jos Manrique Luna - Docente
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
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

42
Ing. Marcelino Jos Manrique Luna - Docente
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:
1. Si se requiere ejecutar una sola instruccin, cuando se cumpla la condicin se
representa de la siguiente forma:

2. Si se requiere ejecutar un bloque de instrucciones, cuando se cumpla la condicin


se representa de la siguiente forma:

43
Ing. Marcelino Jos Manrique Luna - Docente
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:

44
Ing. Marcelino Jos Manrique Luna - Docente
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)

45
Ing. Marcelino Jos Manrique Luna - Docente
Ejercicio 1. Segn una calificacin, imprimir si sta es aprobada.

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.

46
Ing. Marcelino Jos Manrique Luna - Docente
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.

47
Ing. Marcelino Jos Manrique Luna - Docente
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):
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:

48
Ing. Marcelino Jos Manrique Luna - Docente
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
del segun_sea (switch). Si el usuario introduce un valor menor a 1 o mayor que 7 no

49
Ing. Marcelino Jos Manrique Luna - Docente
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.

50
Ing. Marcelino Jos Manrique Luna - Docente
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).

51
Ing. Marcelino Jos Manrique Luna - Docente
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

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.

52
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

53
Ing. Marcelino Jos Manrique Luna - Docente
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.

54
Ing. Marcelino Jos Manrique Luna - Docente
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.

55
Ing. Marcelino Jos Manrique Luna - Docente
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.

56
Ing. Marcelino Jos Manrique Luna - Docente
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.

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.

57
Ing. Marcelino Jos Manrique Luna - Docente
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.

58
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

59
Ing. Marcelino Jos Manrique Luna - Docente
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.

60
Ing. Marcelino Jos Manrique Luna - Docente
Unidad 5: Codificacin
5.1.Elementos del lenguaje Visual Basic

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.

61
Ing. Marcelino Jos Manrique Luna - Docente
5.2.Tipos de datos

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.

62
Ing. Marcelino Jos Manrique Luna - Docente
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:

63
Ing. Marcelino Jos Manrique Luna - Docente
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,
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"

64
Ing. Marcelino Jos Manrique Luna - Docente
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.

65
Ing. Marcelino Jos Manrique Luna - Docente
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


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

66
Ing. Marcelino Jos Manrique Luna - Docente
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

67
Ing. Marcelino Jos Manrique Luna - Docente
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.

68
Ing. Marcelino Jos Manrique Luna - Docente
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.

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 Descripcin
Asc Devuelve un valor de tipo Integer que representa el cdigo de
carcter que corresponde a un carcter.
Chr Devuelve el carcter asociado al cdigo de carcter especificado.

69
Ing. Marcelino Jos Manrique Luna - Docente
Filter Devuelve una matriz basada en cero que contiene un subconjunto de
una matriz String basada en criterios de filtro especificados.
Format Devuelve una cadena con el formato que especifiquen las
instrucciones contenidas en una expresin String de formato.
FormatCurrency 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.
FormatDateTime Devuelve una expresin de cadena que representa un valor de fecha u
hora.
FormatNumber Devuelve una expresin con formato de nmero.
FormatPercent Devuelve una expresin con formato de porcentaje (multiplicada por
100), acompaada del carcter final %.
InStr Devuelve un entero que especifica la posicin inicial de la primera
aparicin de una cadena dentro de otra.
InStrRev Devuelve la posicin de la primera aparicin de una cadena dentro de
otra, comenzando por el extremo derecho de la cadena.
LCase Devuelve una cadena o un carcter convertidos en minscula.
Left Devuelve una cadena que contiene un nmero especificado de
caracteres a partir del lado izquierdo de una cadena.
Len Devuelve un entero que contiene el nmero de caracteres de una
cadena.
LSet Devuelve una cadena alineada a la izquierda que contiene la cadena
especificada ajustada a la longitud indicada.
LTrim Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios iniciales.
Mid Devuelve una cadena que a su vez contiene un nmero especificado
de caracteres de una cadena.
Replace Devuelve una cadena en la que la subcadena especificada se
reemplaza determinado nmero de veces por otra subcadena.
Right Devuelve una cadena que contiene un nmero especificado de
caracteres desde el lado derecho de una cadena.
RTrim Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios finales.

70
Ing. Marcelino Jos Manrique Luna - Docente
Space Devuelve una cadena que consta del nmero especificado de
espacios.
StrComp Devuelve un valor, -1, 0 1, que indica el resultado de una
comparacin de cadena.
StrConv Devuelve una cadena convertida segn se ha especificado.
StrDup Devuelve una cadena o un objeto que se compone del carcter
especificado repetido el nmero de veces especificado.
StrReverse Devuelve una cadena en la que se invierte el orden de los caracteres
de la cadena especificada.
Trim Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios iniciales o finales.
UCase 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:

71
Ing. Marcelino Jos Manrique Luna - Docente
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

72
Ing. Marcelino Jos Manrique Luna - Docente
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)

Esta instruccin despliega un cuadro de entrada como el siguiente:

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.

73
Ing. Marcelino Jos Manrique Luna - Docente
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:

74
Ing. Marcelino Jos Manrique Luna - Docente
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.
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

75
Ing. Marcelino Jos Manrique Luna - Docente
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.

Tipos de iconos para un MsgBox

76
Ing. Marcelino Jos Manrique Luna - Docente
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


)

77
Ing. Marcelino Jos Manrique Luna - Docente
jemplo 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

78
Ing. Marcelino Jos Manrique Luna - Docente
Sub main()
Dim num As Integer, cuadrado As Integer

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

79
Ing. Marcelino Jos Manrique Luna - Docente
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.
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()

80
Ing. Marcelino Jos Manrique Luna - Docente
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:

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.

81
Ing. Marcelino Jos Manrique Luna - Docente
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

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

82
Ing. Marcelino Jos Manrique Luna - Docente
Else
Y = (X ^ 3 + 5) / X
MsgBox ("El valor de Y es " & y)
End If

End Sub

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

83
Ing. Marcelino Jos Manrique Luna - Docente
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

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 % Prdida de peso


Altamente resistente [0 1]
Resistente (1 - 5]
Moderadamente resistente (5 10]
Muy poco resistente (10- 30]
No resistente Ms de 30

Option Explicit
Sub main()
Dim pp as Single

84
Ing. Marcelino Jos Manrique Luna - Docente
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 Descuento


A 4%
B 8%
C 10 %

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


independientemente del tipo de madera.

85
Ing. Marcelino Jos Manrique Luna - Docente
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

Else
Desc= 0.02 * pre_tot

End If

Pre_tot = pre_tot Desc


MsgBox (" El precio total a pagar es " & pre_tot)
End Sub

86
Ing. Marcelino Jos Manrique Luna - Docente
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

87
Ing. Marcelino Jos Manrique Luna - Docente
Case primer valor
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

88
Ing. Marcelino Jos Manrique Luna - Docente
MsgBox (Domingo)
Case 2
MsgBox (Lunes)
Case 3
MsgBox (Martes)
Case 4
MsgBox (Mircoles)
Case 5
MsgBox (Jueves)
Case 6
MsgBox (Viernes)
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:

89
Ing. Marcelino Jos Manrique Luna - Docente
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.
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

90
Ing. Marcelino Jos Manrique Luna - Docente
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 AX2P + 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:

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:

Nmero de horas Descuento


<5 No hay descuento
[5, 10) 5%

91
Ing. Marcelino Jos Manrique Luna - Docente
[10, 15) 8%
>= 15 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

92
Ing. Marcelino Jos Manrique Luna - Docente
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.

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.

93
Ing. Marcelino Jos Manrique Luna - Docente
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

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

94
Ing. Marcelino Jos Manrique Luna - Docente
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:")
i=1
Do While i<= n
nota = InputBox("Nota del estudiante " & i)
suma = suma + nota
i=i+1
Loop

95
Ing. Marcelino Jos Manrique Luna - Docente
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)

96
Ing. Marcelino Jos Manrique Luna - Docente
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
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()

97
Ing. Marcelino Jos Manrique Luna - Docente
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

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

98
Ing. Marcelino Jos Manrique Luna - Docente
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
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

99
Ing. Marcelino Jos Manrique Luna - Docente
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.

100
Ing. Marcelino Jos Manrique Luna - Docente
resp =MsgBox("Desea introducir otro nmero?", vbYesNo + vbInformation, _
"ejemplo 11")

Muestra el siguiente cuadro de mensaje:

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

101
Ing. Marcelino Jos Manrique Luna - Docente
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

102
Ing. Marcelino Jos Manrique Luna - Docente
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.

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

103
Ing. Marcelino Jos Manrique Luna - Docente
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.

104
Ing. Marcelino Jos Manrique Luna - Docente
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.

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:

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"

105
Ing. Marcelino Jos Manrique Luna - Docente
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

Private Sub Form_Load()

106
Ing. Marcelino Jos Manrique Luna - Docente
' 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

107
Ing. Marcelino Jos Manrique Luna - Docente
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).

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"

108
Ing. Marcelino Jos Manrique Luna - Docente
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

109
Ing. Marcelino Jos Manrique Luna - Docente
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.

110
Ing. Marcelino Jos Manrique Luna - Docente
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

111
Ing. Marcelino Jos Manrique Luna - Docente

Anda mungkin juga menyukai