PROGRAMACIÓN Fundamentos y Prácticas de Programación
INFORMÁTICA aprender haciendo Carlos Zepeda Chehaibar
Centro de Investigación
INFORMÁTICA aprender haciendo
PROGRAMACIÓN Fundamentos y Prácticas de Programación Autor
Carlos Zepeda Chehaibar Apoyo en desarrollo y actividades
José Alberto Cruz Espinosa Coordinación editorial y revisión
Elsa Lesser Carrillo Diseño editorial
María Goretti Fuentes García Apoyo editorial
Coordinación de ilustración
Ramón Salas Gil
José Agustín Pedraza Nieto Corrección de estilo
Armando Mendoza Hernández
Ilustración de portada
Elsa Lesser Carrillo Lorena Lara Manzano
Ilustración de Interiores
Coordinación de Módulos de Instrucción Digital
Said Emmanuel Dokins Milián
Sergio Jiménez Valenzuela
Revisión de Recursos Digitales
Desarrollo de Módulos de Instrucción Digital
Carlos Alberto León Rendón Resolución de actividades
Carlos Alberto León Rendón
Alma Rodríguez de Jesús Dennise López Font Luis Alfonso Jiménez Chávez Sergio Jiménez Valenzuela
DERECHOS RESERVADOS © 2007 MMVII por Grupo Educare S. A. de C. V. Ésta es una obra protegida por las leyes internacionales de derechos de autor. Prohibida la reproducción total o parcial de esta obra y/o los recursos que la acompañan, por cualquier medio, sin autorización escrita de Grupo Educare S. A. de C. V. Grupo Educare, el logotipo de Grupo Educare, el logotipo del Programa de Informática Educativa, son propiedad de Grupo Educare S. A. de C. V. El diseño editorial y contenidos gráficos son propiedad exclusiva de Grupo Educare S.A. de C.V. Todos los nombres de empresas, productos, direcciones y nombres propios contenidos en esta obra, forman parte de ejemplos ficticios, a menos que se indique lo contrario. Las citas, imágenes y videogramas utilizados en esta obra se utilizan únicamente con fines didácticos, y para la crítica e investigación científica o artística, por lo que el autor y Grupo Educare S. A. de C. V. no asumen ninguna responsabilidad por el uso que se dé a esta información, ni infringen derecho de marca alguno, en conformidad al Artículo 148 de la Ley Federal del Derecho de Autor. Microsoft Office, MS DOS, MS Windows, Word, PowerPoint, Excel, FrontPage y Access y sus logotipos son marcas comerciales de Microsoft Corporation. Microsoft y el logo de Microsoft Office son marcas registradas de Microsoft Corporation en los Estados Unidos y/o en otros países. Microsoft no patrocina, endosa o aprueba esta obra. Flash, Illustrator, Fireworks, Freehand, Dreamweaver, Photoshop y sus logotipos son marcas registradas de Adobe Inc. Adobe no patrocina o endosa esta obra.
CONTENIDO
Parte 1 Lógica computacional Actividad 01 Secuencias lógicas
1 2
Algoritmos Actividad 02 Algoritmos
3 4
Prueba de escritorio Características del algoritmo Actividad 03 Algoritmos
5 5 6
Clasificación de algoritmos Transcripción Compilación y errores Actividad 04 Identificando errores
8 8 8 9
Variables Actividad 05 Acerca de variables Asignación de valores Actividad 06 Asignación de variables
10 10 11 12
Operadores Actividad 07 Operadores Estructuras básicas Primera estructura: Secuencia de acciones Segunda estructura: Decisión de acción Actividad 08 Escribiendo algoritmos Tercera estructura: Ciclos de acciones Actividad 09 Escribe algoritmos computacionales
14 15
Técnicas para representar algoritmos Diagrama de flujo Actividad 10 Diagramas de flujo Pseudocódigo
28 28 31
Diagramas de Nassi – Schneiderman (N-S) Diagrama N-S de estructuras de decisión Actividad 11 Diagramas N-S
37 38 39
17 17 18 18 22 24
36
CONTENIDO
Pseudocódigos de la Estructura Si-Entonces – Si no Actividad 12 Decisiones simples
42 43
Decisiones en secuencia Actividad 13 Decisiones en secuencia
45 46
Decisiones en cascada o anidadas Actividad 14 Decisiones anidadas Ciclos Ciclo Mientras (While) Actividad 15 Ciclo mientras Ciclo Para (For) Actividad 16 Ciclo para Ciclo Hacer-Mientras (Repeat while) Actividad 17 Ciclo Hacer-Mientras Ciclo Hacer-Hasta (Repeat Until) Actividad 18 Ciclo Hacer-Hasta Ciclos anidados Actividad 19 Ciclos anidados
50 51
Pseudocódigos con varias estructuras Actividad 20 Prueba de escritorio Actividad 21 Repaso de pseudocódigos Actividad 22 Escribiendo pseudocódigos matemáticos
70 71 71 74
Arreglos Actividad 23 Arreglos Matrices Actividad 24 Arreglos Lámina de apoyo 01 Glosario de conceptos algoritmos
76 78
Parte 2 Visual Basic ¿Por qué Visual Basic? Lámina de apoyo 02 ¿Por qué Visual Basic? (historia de Visual Basic) Propiedades, Métodos y Eventos Actividad 25 Propiedades, métodos y eventos Programación por Eventos vs. Programación Estructurada
55 55 56 58 58 61 61 64 65 67 69
81 82 85 86 87 87 87 88 89
CONTENIDO
Actividad 26 Tipos de programación ¿Cómo se programa en Visual Basic? MID 01 Nuevo Proyecto
89 90 91
El entorno de Visual Basic Formulario Cuadro de herramientas Ventana de propiedades La ventana de proyectos Añadir controles al formulario MID 02 El entorno de Visual Basic Actividad 27 Identificando el entorno de trabajo
91 91 91 92 93 94 94 95
Preparando el formulario para la programación Convenciones para nombrar los objetos Actividad 28 Identificando los objetos por su nombre Cambiar el tamaño y posición de los controles MID 03 Cambiar el tamaño y posición de los controles Actividad 29 Creando una interfaz gráfica La notación Punto Código MID 04 Código Actividad 30 Haciendo que funcione el programa
95 95 96 96 98 98 99 100 101 102
Variables Tipos de datos Actividad 31 Declarando variables Asignaciones Variables locales Variables globales Actividad 32 Declaración y asignación de variables Actividad 33 La importancia de las variables Actividad 34 Programas para Ciencias exactas
103 103 105 105 106 106 107 109 109
Constantes Actividad 35 Declaración de Constantes
110 110
Operadores MID 05 Prioridad en las operaciones Actividad 36 Calculadora simple Expresiones Lógicas Actividad 37 Reconociendo expresiones
111 112 113 114 114
CONTENIDO
Operadores lógicos Actividad 38 Uniendo expresiones
115 115
Estructuras de Decisiones Decisión IF… Then Actividad 39 Comprendiendo condicionales Actividad 40 La importancia de las decisiones Actividad 41 Estructura de Decisión 1 MsgBox Actividad 42 Estructura de Decisión 2 Estructura de decisión SELECT CASE Actividad 43 Estructura de Decisión 3
116 116 117 118 118 120 121 123 124
Creación de un archivo ejecutable MID 06 Creación de un archivo ejecutable Actividad 44 Cotizaciones de autos Actividad 45 Fórmula General Actividad 46 Repaso
127 129 129 130 132
Estructura de bucle FOR … NEXT Actividad 47 Ciclo FOR
132 133
Estructura de bucle DO Actividad 48 Ciclo DO
133 134
Procedimientos y funciones Actividad 49 Procedimientos y funciones
135 136
Manejo de menús Actividad 50 Menús
137 137
Colecciones Actividad 51 Colecciones
141 142
Matrices o Arreglos (Array) Actividad 52 Arrays
143 144
Gestión de Base de Datos Access Actividad 53 Base de Datos
145 146
RECURSOS
Material Impreso Este material forma parte de un conjunto de recursos que conforman el Programa de Informática Educativa (PIE). Está organizado en bloques integrales que incluyen todo lo necesario para aprender, practicar y evaluar habilidades o competencias. Las explicaciones, imágenes, tablas, actividades, notas y tips, apoyadas con las láminas y tutoriales, permiten integrar la experiencia de aprendizaje desde múltiples perspectivas. Así, podemos afirmar que el PIE de Grupo Educare es la mejor manera de aprender haciendo.
El CD El CD que acompaña al material impreso contiene los Módulos de Instrucción Digital (MID’s) que te ayudarán a comprender los conceptos y a poner en práctica las habilidades adquiridas. Los MID’s incluyen una sección de aprendizaje y una sección de refuerzo interactivo. Adicionalmente encontrarás los archivos que se requieren para realizar las actividades, algunos documentos y aplicaciones útiles. No olvides que el CD es parte integral del programa, por lo que es muy importante que lo conozcas y utilices en el curso.
Explicación Iconográfica Actividad
Este icono nos indica un ejercicio que refuerza de manera práctica e inmediata la parte teórica de este material.
MID. Módulo de Instrucción Digital
Es el material digital de los recursos del programa. La representación en video de la parte teórica de este volumen.
Nota
Las notas que verás dentro de tu texto, puntualizan la teoría o los aspectos más importantes de un tema.
Lámina de apoyo
La lámina es un recurso del profesor, que sirve como refuerzo dinámico e interactivo a un tema denso, que complementa la teoría del material impreso.
TIP
Es una sugerencia que complementa un tema del material impreso, dando un panorama más amplio al alumno sobre cómo ejecutar una actividad de manera más sencilla y práctica.
Propuesta Didáctica
TEMAS
TIEMPO EN SEMANAS
SUBTEMAS
COMPETENCIA
C o n o ce lo s fu n d a m e n to s y p rá ctica s d e p ro gra m a ció n .
1 /2 S e m a n a
In tro d u cció n
1 /2 S e m a n a
Lógica co m p u ta cio n a l
S e cu e n cia s ló gica s
A p lica se cu e n cia s ló gica s d e n tro d e la p ro gra m a ció n .
1 /2 S e m a n a
A lgo ritm o s
A lgo ritm o s
D ise ñ a a lgo ritm o s d e n tro d e la p ro gra m a ció n .
1 /2 S e m a n a
P ru e b a d e e scrito rio
C a ra cte rística s d e l a lgo ritm o
M e m o riza la s d ife re n te s form a s d e cre a r a lgo ritm o s.
1 /2 S e m a n a
C la sifica ció n d e a lgo ritm o s
T ra n scrip ció n C o m p ila ció n y e rro re s Id e n tifica n d o e rro re s
Id e n tifica lo s e rro re s que se p u e d e n cre a r e n la cla sifica ció n d e a lgo ritm o s.
1 Sem ana
V a ria b le s
A ce rca d e va ria b le s A sign a ció n d e va lo re s A sign a ció n d e va ria b le s
Id e n tifica y a p lica la s va ria b le s co rre sp o n d ie n te s d e a cu e rd o a su va lo r.
1 /2 S e m a n a
O p e ra d o re s
O p e ra d o re s
E n cu e n tra va lo re s a la s va ria b le s p a ra la reso lu ció n d e la s o p e ra cio n e s.
1 Sem ana
E stru ctu ra s B á sica s
S e cu e n cia d e a ccio n e s D e cisió n d e a cció n E scrib ie n d o a lgo ritm o s C iclo s d e a ccio n e s E scrib e a lgo ritm o s co m p u ta cio n a le s
1 Sem ana
T é cn ica s p a ra rep re se n ta r a lgo ritm o s
D ia gra m a d e flu jo
E je cu ta a lgo ritm o s p a rtie n d o d e l d ia gra m a d e flu jo .
1 Sem ana
P se u d o có d igo D ia gra m a s d e N a ssi – S ch n e id e rm a n (N -S )
D ia gra m a N -S d e e stru ctu ra s d e d e cisió n
R e p ro d u ce a lgunos a lgo ritm o s d e n tro d e l d ia gra m a d e N -S .
1 Sem ana
P se u d o có d igos d e la E stru ctu ra
D e cisio n e s sim p le s
U tiliza d e cisio n e s sim p le s e n la e je cu ció n d e a lgo ritm o s.
1 Sem ana
D e cisio n e s e n se cu e n cia
D e cisio n e s e n se cu e n cia
In te rp re ta d e cisio n e s e n se cu e n cia e n la e je cu ció n d e a lgo ritm o s.
1 Sem ana
D e cisio n e s e n ca sca d a o a n id a d a s
D e cisio n e s a n id a d a s
O p e ra d e cisio n e s a n id a d a s o d e ca sca d a e n la e je cu ció n d e a lgo ritm o s.
4 Sem anas
C iclo s
C iclo M ie n tra s (W h ile ) C iclo P a ra (F o r) C iclo H a ce r-M ie n tra s (R e p e a t w h ile ) C iclo H a ce r-H a sta (R e p e a t U n til) C iclo s a n id a d o s
E n u m e ra la s ca ra cte rística s d e lo s ciclo s. D istin gue la a p lica ció n d e lo s d ife re n te s ciclo s e n la a p lica ció n d e lo s a lgo ritm o s.
1 Sem ana
P se u d o có d igos co n va ria s e stru ctu ra s
P ru e b a d e e scrito rio R e p a so d e p se u d o có d igo s E scrib ie n d o p se u d o có d igos m a te m á tico s
D ife re n cia la s e stru ctu ra s d e lo s p se u d o có d igo s, y p la n e a su a p ro p ia d a a p lica ció n .
1 Sem ana
A rre glo s
A rre glo s
E n cu e n tra co n lo s p se u d o có d igo s la s so lu cio n e s p e rtin e n te s p a ra a rre gla r lo s p ro b le m a s.
M a trice s
A rre glo s L á m in a d e a p o yo G lo sa rio d e co n ce p to s a lgo ritm o s
A p lica la s h e rra m ie n ta s d e la s M a trice s p a ra la so lu ció n d e p ro b le m a s.
1 Sem ana
A p lica a lgo ritm o s e m p le a n d o la e stru ctu ra b á sica d e p ro gra m a ció n .
INDICADOR
OBJETIVOS
E la b o ra u n cu a d ro sin ó p tico co n lo s fu n d a m e n to s y p rá ctica s d e p ro gra m a ció n .
A tra ve s d e l m a te ria l d e a p o yo d e l a lu m n o y d e l in te rn e t, co n o ce lo s fu n d a m e n to s y p rá ctica s d e p ro gra m a ció n .
D e scrib e d e ta lla d a m e n te la s se cu e n cia s ló gica s d e n tro d e la co m p u ta ció n .
C o m p re n d e cu a le s so n la s se cu e n cia s ló gica s que se u tiliza n e n p ro gra m a ció n a sí co m o su fin a lid a d .
D e sa rro lla a lgo ritm o s p a ra cre a r o b je to s. Id e n tifica e l p ro ce so p a ra C o n stru ye u n a lgo ritm o p a ra d e sa rro lla r la co n stru cció n d e a lgo ritm o s. a lgo ritm o s.
ACTIVIDADES SUGERIDAS PARA EL ALUMNO (CONTENIDAS EN EL MATERIAL DE TRABAJO)
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o e in te rn e t
A ctivid a d 0 1 S e cu e n cia s ló gica s
A ctivid a d 0 2 A lgo ritm o s
E n lista lo s p a so s a se gu ir p a ra la cre a ció n d e a lgo ritm o s.
E va lúa e l p ro ce so p a ra cre a r n u e vo s a lgo ritm o s
A ctivid a d 0 3 A lgo ritm o s
M e n cio n a e je m p lo s d e e rro re s d e sin ta xis y e rro re s ló gico s.
C la sifica a lo s a lgo ritm o s p a rtie n d o d e lo s e rro re s e n la s se cu e n cia s.
A ctivid a d 0 4 Id e n tifica n d o e rro re s
P re p a ra u n fo rm a to co n in fo rm a ció n co m p le ta so b re la s va ria b le s y su E stim a e l va lo r d e u n a va ria b le . a sign a ció n . R e su e lve u n a p ru e b a d e e scrito rio , co n te sta n d o co n la s va ria b le s a d e cu a d a s. E scrib e u n a o p e ra ció n a lgebra ica . E va lúa e l va lo r d e la s va ria b le s e n C a m b ia lo s va lo re s a la s va ria b le s que d ife re n te s o p e ra cio n e s. se te in d ica n .
A ctivid a d 0 5 A ce rca d e va ria b le s A ctivid a d 0 6 A sign a ció n d e va ria b le s
A ctivid a d 0 7 O p e ra d o re s
D ise ñ a a lgo ritm o s e m p le a n d o la M a n e ja la s e stru ctu ra s b á sica s d e se cu e n cia , d e cisió n , y ciclo s d e a ccio n e s. lo s a lgo ritm o s. E scrib e a lgo ritm o s co m p u ta cio n a le s.
A ctivid a d 0 8 E scrib ie n d o a lgo ritm o s A ctivid a d 0 9 E scrib e a lgo ritm o s co m p u ta cio n a le s
R e p re se n ta e n u n d ia gra m a d e flu jo a lgunos a lgo ritm o s.
C o n o ce la s té cn ica s p a ra re p re se n ta r a lgoritm o s.
A ctivid a d 1 0 D ia gra m a s d e flu jo
E m p le a a lgu n o s a lgo ritm o s e n e l d ia gra m a N -S .
Id e n tifica e l D ia gra m a (N -S ) y su a p lica ció n e n lo s a lgo ritm o s.
A ctivid a d 1 1 D ia gra m a s N -S
E stim a la s d e cisio n e s sim p le s a l R e a liza a lgunos a lgo ritm o s e n d ive rso s tra b a ja r co n a lgo ritm o s e n e l e je rcicio s, u tiliza n d o d e cisio n e s sim p le s. P se u d o có d igo d e la e stru ctu ra . P ro gra m a a lgo ritm o s e n d ive rso s E m p le a d e n tro d e la e je cu ción d e e je rcicio s, u tiliza n d o d e cisio n e s e n a lgo ritm o s, la s d e cisio n e s e n se cu e n cia . se cu e n cia co rre sp o n d ie n te s. D e scrib e la s d ife re n cia s e n tre la s d e cisio n e s e n ca sca d a y la s d e cisio n e s D ife re n cía la s d e cisio n e s e n a n id a d a s. ca sca d a y la s d e cisio n e s a n id a d a s O rganiza a lgo ritm o s e n d ive rso s e n u n a p ro gra m a ció n . e je rcicio s, u tiliza n d o d e cisio n e s d e ca sca d a o a n id a d a s. C o n stru ye d ife re n te s a lgo ritm o s E lige e l tip o d e ciclo a d e cu a d o e n u tiliza n d o la s fu n cio n e s d e lo s ciclo s (m ie n tra s, p a ra , h a ce r - m ie n tra s, h a ce r - la cre a ció n d e a lgo ritm o s. h a sta , y ciclo s a n id a d o s) C re a u n m a p a co n ce p tu a l co n la s e stru ctu ra s d e lo s P se u d o có d igo . R e a liza u n a p ru e b a d e e scrito rio co n u n P se u d o có d igo . C o n stru ye e l P se u d o có d igos d e u n p ro gra m a m a te m á tico . E scrib e co n u n P se u d o có d igo u n p ro gra m a que d e so lu ció n a d ife re n te s e je rcicio s. P la n e a u n p ro gra m a , e n fo rm a to d e P se u d o có d igo , p a ra ca d a e je rcicio m a te m á tico .
RECURSOS
A ctivid a d 1 2 D e cisio n e s sim p le s A ctivid a d 1 3 D e cisio n e s e n se cu e n cia
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l
A ctivid a d 1 4 D e cisio n e s a n id a d a s
a lu m n o y cd d e l a lu m n o
A ctivid a d A ctivid a d A ctivid a d A ctivid a d A ctivid a d
a lu m n o y cd d e l a lu m n o
15 16 17 18 19
C iclo Mie n tra s C iclo Pa ra C iclo H a ce r-M ie n tra s C iclo H a ce r-H a sta C iclo s An id a d o s
E va lúa la s fu n cio n e s qu e se p u e d e n a p lica r co n lo s P su d o có d igo s e n d ife re n te s e stru cu tu ra s.
A ctivid a d 2 0 P ru e b a d e e scrito rio A ctivid a d 2 1 R e p a so d e p se u d o có d igos A ctivid a d 2 2 E scrib ie n d o p se u d o có d igos m a te m á tico s
A p lica lo s p se u d o có d igo s p a ra la so lu ció n d e p ro b le m a s.
A ctivid a d 2 3 A rre glo s
R e su e lve p ro b le m a s m a te m á tico s u tiliza n d o la lá m in a d e a p o yo y e l glo sa rio d e co n ce p to s a lgo ritm o s.
A ctivid a d 2 4 A rre glo s
C o m p u ta d o ra , m a te ria l d e a p o yo d e l
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
TEMAS
TIEMPO EN SEMANAS
1 Sem ana
1 Sem ana
1 Sem ana
SUBTEMAS
V isu a l B a sic
¿ P o r qué V isu a l B a sic? L á m in a d e a p o yo H isto ria d e V isu a l B a sic P ro p ie d a d e s, M é to d o s y E ve n to s P ro gra m a ció n p o r E ve n to s vs. P ro gra m a ció n E stru ctu ra d a T ip o s d e p ro gra m a ció n ¿ C ó m o se p ro gra m a e n V isu a l B a sic?
E l e n to rn o d e V isu a l B a sic
F o rm u la rio C u a d ro d e h e rra m ie n ta s V e n ta n a d e p ro p ie d a d e s L a ve n ta n a d e p ro ye cto s A ñ a d ir co n tro le s a l form u la rio E l e n to rn o d e V isu a l B a sic Id e n tifica n d o e l e n to rn o d e tra b a jo
P re p a ra n d o e l form u la rio p a ra la p ro gra m a ció n
C o n ve n cio n e s p a ra n o m b ra r lo s o b je to s Id e n tifica n d o lo s o b je to s p o r su n o m b re C a m b ia r e l ta m a ñ o y p o sició n d e lo s co n tro le s C re a n d o u n a in te rfa z grá fica L a n o ta ció n P u n to C ó d igo H a cie n d o que fu n cio n e e l p ro gra m a
COMPETENCIA
Id e n tifica ca d a u n a d e la s h e rra m ie n ta s d e Visu a l Ba sic p a ra e m p le a rla s e n e l tip o d e p ro gra m a ció n que co rre sp o n d a .
O rd e n a ca d a u n a d e la s p a rte s que co n fo rm a n e l e n to rn o d e Visu a l Ba sic.
Id e n tifica y a p lica la s h e rra m ie n ta s n e ce sa ria s p a ra cre a r in te rfa z grá fica e n p ro gra m a ció n .
2 Sem anas
V a ria b le s
T ip o s d e d a to s D e cla ra n d o va ria b le s A sign a cio n e s V a ria b le s lo ca le s V a ria b le s glo b a le s D e cla ra ció n y a sign a ció n d e va ria b le s L a im p o rta n cia d e la s va ria b le s P ro gra m a s p a ra C ie n cia s e xa cta s
1 Sem ana
C o n sta n te s
D e cla ra ció n d e C o n sta n te s
P re p a ra u n n u e vo d o cu m e n to y a p lica la s co n sta n te s n e ce sa ria s.
P rio rid a d e n la s o p e ra cio n e s C a lcu la d o ra sim p le E xp re sio n e s Lógica s R e co n o cie n d o e xp re sio n e s O p e ra d o re s ló gico s U n ie n d o e xp re sio n e s
A p re n d e a u tiliza r la ca lcu la d o ra sim p le p a ra reso lve r o p e ra cio n e s y e xp re sio n e s ló gica s.
1 Sem ana
5 Sem anas
O p e ra d o re s
E stru ctu ra s d e D e cisio n e s
D e cisió n IF … T h e n C o m p re n d ie n d o co n d icio n a le s L a im p o rta n cia d e la s d e cisio n e s M sgB o x E stru ctu ra d e D e cisió n E stru ctu ra d e De cisió n S E L E C T CASE
2 Sem anas
C re a ció n d e u n a rch ivo e je cu ta b le
C re a ció n d e u n a rch ivo e je cu ta b le C o tiza cio n e s d e a u to s F ó rm u la G e n e ra l R e p a so
1 Sem ana
E stru ctu ra d e b u cle F O R … N E X T
C iclo F O R
Id e n tifica la im p o rta n cia d e la s va ria b le s y su s d e n o m in a cio n e s d e n tro d e p ro gra m a ció n .
D e scrib e y a p lica la s h e rra m ie n ta s, se gún se a e l ca so la s e stru ctu ra s d e d e cisio n e s.
R e co p ila la s fu n cio n e s d e p ro gra m a ció n y a p líca la s e n u n a rch ivo e je cu ta b le .
Id e n tifica la s fu n cio n e s d e la e stru ctu ra d e b u cle F O R … N E X T .
INDICADOR
D e fin e e l co n ce p to d e V isu a l B a sic. D e scrib e a m p lia m e n te la s p ro p ie d a d e s, m é to d o s y e ve n to s que se e m p le a n e n Visu a l Ba sic. In ve stiga lo s tip o s d e p ro gra m a ció n que e xiste n .
E n lista ca d a u n a d e la s p a rte s d e l e n to rn o d e tra b a jo que a p a re ce e n la p la n tilla .
E xp lica a m p lia m e n te e l u so d e lo s co n tro le s que se u tiliza n e n p ro gra m a ció n . D ise ñ a u n a in te rfa z grá fica u tiliza n d o lo s co n tro le s, p a ra h a ce r fun cio n a r e l p ro gra m a .
ACTIVIDADES SUGERIDAS PARA EL ALUMNO (CONTENIDAS EN EL MATERIAL DE TRABAJO)
RECURSOS
R e co n o ce a m p lia m e n te e l sign ifica d o d e Visu a l Ba sic y to d a s la s p ro p ie d a d e s qu e se p u e d e n gene ra r.
A ctivid a d 2 5 P ro p ie d a d e s, m é to d o s y e ve n to s A ctivid a d 2 6 T ip o s d e p ro gra m a ció n
C o m p u ta d o ra , in te rn e t, m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
D istin gu e ca d a u n a d e la s p a rte s que fo rm a n e l e n to rn o d e tra b a jo d e V isu a l B a sic.
A ctivid a d 2 7 Id e n tifica n d o e l e n to rn o d e tra b a jo
a lu m n o y cd d e l a lu m n o
OBJETIVOS
R e co n o ce e l form u la rio p a ra la p ro gra m a ció n .
D e scrib e a m p lia m e n te e l co n ce p to d e va ria b le s y su s d e n o m in a cio n e s. E va lu a a m p lia m e n te e l u so d e la s A sign a va ria b le s e n e l u so d e p ro gra m a s va ria b le s y su s d e n o m in a cio n e s. p a ra la s cie n cia s e xa cta s. C o n stru ye p ro ye cto s n u e vo s a p lica n d o va ria b le s lo ca le s y glo b a le s.
C re a u n n u e vo d o cu m e n to y a p lica n u e va s co n sta n te s.
V a lo ra la s co n sta n te s que se p u e d e n u tiliza r e n u n n u e vo d o cu m e n to .
A ctivid a d 2 8 Id e n tifica n d o lo s o b je to s p o r su n o m b re A ctivid a d 2 9 C re a n d o u n a in te rfa z grá fica A ctivid a d 3 0 H a cie n d o que fu n cio n e e l p ro gra m a
A ctivid a d 3 1 A ctivid a d 3 2 d e va ria b le s A ctivid a d 3 3 va ria b le s A ctivid a d 3 4 e xa cta s
C o m p u ta d o ra , m a te ria l d e a p o yo d e l
L a im p o rta n cia d e la s
a lu m n o y cd d e l a lu m n o
P ro gra m a s p a ra C ie n cia s
A ctivid a d 3 5 D e cla ra ció n d e C o n sta n te s
A ctivid a d 3 6 C a lcu la d o ra sim p le A ctivid a d 3 7 R e co n o cie n d o e xp re sio n e s A ctivid a d 3 8 U n ie n d o e xp re sio n e s
E la b o ra u n cu a d ro sin óp tico d e sa rro lla n d o la s e stru ctu ra s d e d e cisio n e s. R e a liza u n a p ru e b la d e e scrito rio Id e n tifica ca d a u n a d e la s u tiliza n d o va lo re s d ife re n te s a la s e stru ctu ra s d e d e cisio n e s y va ria b le s. a p re n d e a a p lica rla s e n ca d a ca so . C o n stru ye va rio s e je m p lo s d e e stru ctu ra s d e d e cisio n e s y a p lica la s h a b ilid a d e s adqu irid a s e n e l m a n e jo d e Visu a l Ba sic. A ctiva u n a fó rm u la gene ra l p a ra reso lve r e cu a cio n e s.
A ctivid a d 3 9 C o m p re n d ie n d o co n d icio n a le s A ctivid a d 4 0 L a im p o rta n cia d e la s d e cisio n e s A ctivid a d 4 1 E stru ctu ra d e D e cisió n 1 A ctivid a d 4 2 E stru ctu ra d e D e cisió n 2 A ctivid a d 4 3 E stru ctu ra d e D e cisió n 3 A ctivid a d 4 4 C o tiza cio n e s d e a u to s A ctivid a d 4 5 F ó rm u la G e n e ra l A ctivid a d 4 6 R e p a so
C re a u n a rch ivo e je cu ta b le d o n d e u tilice s R e p a sa lo s fu n d a m e n to s genera le s to d a s la s fu n cio n e s a n te rio re s. y la s p rá ctica s d e p ro gra m a ció n .
V a lo ra la s fu n cio n e s d e la e stru ctu ra b u cle F O R … N E X T .
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
D e cla ra n d o va ria b le s D e cla ra ció n y a sign a ció n
R e su e lve o p e ra cio n e s u tiliza n d o la A rgu m e n ta ca d a u n a d e la s ca lcu la d o ra sim p le . h e rra m ie n ta s qu e a yu d a n a N a rra d e ta lla d a m e n te e l co n ce p to d e la s re so lve r la s o p e ra cio n e s ló gica s. e xp re sio n e s ló gica s.
Im p rim e la ta b la d e m u ltip lica r d e u n n ú m e ro ca p tu ra d o .
C o m p u ta d o ra , m a te ria l d e a p o yo d e l
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra y m a te ria l d e a p o yo d e l a lu m n o
A ctivid a d 4 7 C iclo F O R
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
TIEMPO EN SEMANAS
TEMAS
SUBTEMAS
COMPETENCIA
1 Sem ana
E stru ctu ra d e b u cle D O
C iclo D O
U b ica la s fu n cio n e s d e e stru ctu ra d e b u cle D O .
1 Sem ana
P ro ce d im ie n to s y fu n cio n e s
P ro ce d im ie n to s y fu n cio n e s
E je cu ta lo s p ro ce d im ie n to s y fu n cio n e s n e ce sa rio s d e n tro d e p ro gra m a ció n .
1 Sem ana
M a n e jo d e m e n ú s
M enús
P re p a ra u n fo rm a to a l te xto d e u n a e tiqu e ta u tiiza n d o la s h e rra m ie n ta s qu e a p a re ce n e n e l m e n ú .
1 Sem ana
C o le ccio n e s
C o le ccio n e s
C a m b ia d e sd e u n a p ro p ie d a d a u n a co le cció n d e o b je to s.
1 Sem ana
M a trice s o A rre glo s
A rra ys
1 Sem ana
G e stió n d e B a se d e D a to s A cce ss
B a se d e D a to s
Total 38 semanas
S e le ccio n a lo s m a trice s y a rre glo s a d e cu a d o s, d e n tro d e u n n u e vo p ro gra m a . V isu a liza , a gre ga y e lim in a re gistro s e n u n a b a se d e d a to s.
INDICADOR
OBJETIVOS
ACTIVIDADES SUGERIDAS PARA EL ALUMNO (CONTENIDAS EN EL MATERIAL DE TRABAJO)
RECURSOS
In icia u n n u e vo p ro ye cto y so licita u n a co n tra se ñ a a l u su a rio h a sta qu e se in tro d u zca la co rre cta .
E va lúa la s fu n cio n e s d e la e stru ctu ra b u cle D O .
A ctivid a d 4 8 C iclo D O
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
T ra b a ja d e sd e u n n u e vo d o cu m e n to lo s p ro ce d im ie n to s y fu n cio n e s b á sico s d e p ro gra m a ció n .
In ve n ta ria lo s p ro ce d im ie n to s y fu n cio n e s e n p ro gra m a ció n .
A ctivid a d 4 9 P ro ce d im ie n to s y fu n cio n e s
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
A ctivid a d 5 0 M e n ú s
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
A p lica e l m a n e jo d e m e n ú s d e sd e u n A n a liza la s a p lica cio n e s d e l m a n e jo n u e vo d o cu m e n to p a ra d a rle fo rm a to a l d e m e n ú s. te xto d e u n a e tiqu e ta . M o d ifica d e sd e u n cu a d ro d e te xto la s p ro p ie d a d e s p a ra d a r p a so a la co le cció n d e o b je to s.
R e co n o ce la s p ro p ie d a d e s qu e se e n cu e n tra n e n la s co le ccio n e s.
A ctivid a d 5 1 C o le ccio n e s
D e sa rro lla a m p lia m e n te la a p lica ció n d e lo s m a trice s o a rre glo s.
M e m o riza y u tiliza lo s a rra ys.
A ctivid a d 5 2 A rra ys
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
A p lica fun cio n e s d e n tro d e u n a b a se d e d a to s.
C o m p a ra la b a se d e d a to s d e a cce ss co n o tro s p ro gra m a s.
A ctivid a d 5 3 B a se d e D a to s
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
C o m p u ta d o ra , m a te ria l d e a p o yo d e l a lu m n o y cd d e l a lu m n o
Programación Lógica computacional La lógica es la capacidad de pensar en soluciones alternativas. Se remonta a la época de Aristóteles en la que desarrolló reglas para establecer un razonamiento encadenado. La lógica es una rama del conocimiento que nos permite determinar que algo está aprobado por la razón como bien deducido o bien pensado. En pocas palabras en la forma más obvia y más fácil de hacer algo. La lógica es muy importante, ya que determina la manera en que se puede resolver un problema. Es un nivel de abstracción sin el cual no es posible estructurar los pasos que generen lo que esperamos obtener.
La computadora trabaja con una lógica especial, exacta y matemática. Aunque tal vez no te hayas dado cuenta, todas las acciones que realizas en la computadora están haciendo uso de esta lógica en la forma de procedimientos o secuencias de pasos que hay que realizar para lograr lo que se quiere.
Secuencias lógicas Como ejemplo, contesta detalladamente las siguientes cuestiones: 1.
¿Cuáles son los pasos para entrar a la calculadora de Windows?
1. Dar clic en el botón Inicio. 2. Seleccionar el menú Todos los programas. 3. Seleccionar el menú Accesorios. 4. Dar clic en la opción Calculadora.
2.
¿Hay formas alternativas para entrar a este programa? Describe una:
1. Dar clic en el menú Inicio. 2. Seleccionar la opción Ejecutar. 3. Escribir la palabra “calc”. 4. Presionar la tecla Enter.
3.
¿Qué ocurre si con cualquiera de las formas, no sigues los pasos o los realizas en desorden?
No podría abrir el programa ya que cada paso subsecuente requiere que el anterior esté completo.
De forma similar la computadora realiza internamente secuencias de pasos para realizar las tareas que nos son útiles.
2
01 Actividad
Algoritmos ¿Has pensado quién hizo los programas que conoces? y más aún ¿tienes idea de cómo los hicieron? La computadora permite solucionar una gran cantidad de problemas. El primer paso que debes dar para la solución de un problema es tener muy claro cuál es el problema a resolver, en otras palabras, cuál es el objetivo. Parece una cosa muy obvia, pero la mayoría de las personas que no pueden resolver un problema es porque no lo han identificado y comprendido. Tener claro el objetivo te va a permitir saber hacia dónde vas y a dónde quieres llegar. Cuando el objetivo es lo suficientemente claro podemos vislumbrar un camino lógico para llegar hasta él. A ese camino lógico se le llama Algoritmo. Una vez identificado el problema es necesario diseñar una solución. Una forma sencilla de aproximarse a una solución, que después pueda implementarse en la computadora, es por medio de un algoritmo. Un algoritmo es un conjunto de pasos que permiten alcanzar un objetivo. Los pasos deben ser secuenciales y ordenados, es decir, deben ser ejecutados uno después de otro, en un orden definido, teniendo un inicio y un fin. Ejemplo: Objetivo. Tenemos como objetivo adquirir el paquete de Microsoft Office 2007. Queremos solamente adquirirlo: no instalarlo, no usarlo. El objetivo solamente es adquirirlo. Algoritmo. Salimos del lugar donde nos encontremos y nos dirigimos hacia una tienda de software. Al llegar al lugar hay que solicitar el programa. Si lo tienen disponible, lo compramos y si no lo tienen, nos dirigimos hacia otra tienda repitiendo el proceso. Si explicamos el algoritmo así es simplemente un texto. Ahora podemos organizar el algoritmo para que sea más estético y entendible. Asignándole un nombre al algoritmo lo generalizamos para cualquier adquisición de software. Algoritmo para adquisición de software Inicio 1. Determinar qué software se desea adquirir 2. Desplazarnos hacia la tienda de software 3. Preguntar si tienen el software requerido 4. Si lo tienen Comprar el software Terminar con el algoritmo Si no lo tienen Repetir desde el paso 2 Fin Observa el algoritmo anterior. Casi todas las líneas van enumeradas, pero no todas. Se debe cumplir con la orden de la línea 1 para continuar con el resto del algoritmo, realizando cada tarea indicada. Si se siguen los pasos, siempre funciona, sin importar el software que se quiera adquirir ni el lugar donde se va a comprar. El algoritmo es genérico.
Programación
3
Algoritmos
02 Actividad
A continuación escribirás algunos algoritmos. No olvides ponerles un título e indicar claramente el principio y el fin. 1.
Desarrolla un algoritmo que te permita encender un vehículo.
Algoritmo para encender un vehículo Inicio 1. Abrir la puerta del vehículo 2. Entrar al vehículo 3. Si el vehículo es estándar Pisar el clutch Si no es estándar Verificar que esté en Parking 4. Insertar la llave en la ranura 5. Girar la llave Fin 2.
Desarrolla un algoritmo que te permita hacer un pastel.
Algoritmo para hacer un pastel Inicio 1. Comprar los ingredientes 2. Mezclar los ingredientes 3. Vaciar la mezcla en un molde para pastel 4. Prender el horno 5. Si el horno está caliente Meter el pastel al horno Si no - regresar al paso 5 6. Si el pastel está listo Sacar el pastel del horno Si no - regresar al paso 6 Fin 3.
Crea un algoritmo para crear algoritmos.
Algoritmo para crear algoritmos Inicio 1. Determinar el problema a resolver
4
2. Elegir una posible solución al problema 3. Indicar los pasos a seguir 4. Realizar una prueba del algoritmo 5. Si la prueba marca errores Corregir las fallas y regresar al paso 4 6. Si la solución es satisfactoria Terminar algoritmo Si no - regresar al paso 2 Fin
Existen problemas que pueden resultar tan complejos que podríamos requerir de cientos o hasta miles de líneas para resolverlos. Además, sabemos que un problema se puede resolver de varias maneras diferentes. El análisis de algoritmos busca que las soluciones sean lo más sencillas posibles, aún para problemas muy complejos. La manera en que buscamos esta solución óptima está fundamentada en la lógica. Es más, sin la lógica no podríamos decidir entre cuál de dos soluciones es más sencilla, simplemente porque esta decisión requiere también del pensamiento lógico.
Prueba de escritorio Todo algoritmo debe ser probado antes de ser ejecutado para tener la certeza de que lograremos el objetivo. La forma de probarlo es siguiendo cada uno de los pasos que indica el algoritmo. A esto es a lo que llamaremos prueba de escritorio. En la prueba de escritorio, un algoritmo bien hecho siempre debe funcionar. Al poner en marcha los pasos del algoritmo para determinar si logrará o no el objetivo, tal vez tengas que hacer algunas modificaciones hasta lograr el objetivo esperado. El algoritmo debe ser lo suficientemente detallado para que no exista duda alguna al ejecutarse.
Características del algoritmo
Un algoritmo debe tener al menos las siguientes características: Ser preciso. Las actividades o pasos del algoritmo deben desarrollarse en orden estricto, ya que el desarrollo de cada paso debe seguir un orden lógico. Ser definido. Esto quiere decir que siempre que se ejecute con los mismos datos, el resultado será el mismo. No puede improvisar, inventar o adivinar la información que necesita para poder realizar un proceso. Ser finito. Esto indica que el número de pasos de un algoritmo debe ser limitado, es decir, los pasos a seguir deben tener un fin.
Programación
5
Presentación. El algoritmo debe ser entendible para cualquier persona, no sólo para la persona que lo diseñó. Más adelante veremos otras formas de presentar un algoritmo, como por ejemplo en pseudocódigo, en un diagrama de flujo o en diagramas de Nassi/Schneiderman, entre otras.
Algoritmos 1.
Desarrolla un algoritmo que te permita determinar si un número es par o impar.
Inicio 1. Ingresar número a evaluar 2. Si el residuo del número/2 = 0 es par Si no es impar Fin
2. Pide a un compañero que realice a tu algoritmo tres pruebas de escritorio utilizando tres diferentes números enteros. Utiliza este espacio para las pruebas. a.
número
60 número/2 = 30 residuo = 0 Es par
b.
número
15 número/2 = 7 residuo = 1 Es impar
6
03 Actividad
c.
número
2 número/2 = 1 residuo = 0 Es par
3.
Desarrolla un algoritmo que te permita saber si un número es primo.
Inicio 1. Ingresar número a evaluar 2. Si número < 0 Terminar algoritmo 3. Dividir el número por todos los números entre 1 y número/2 4. Si el número sólo es divisible por sí mismo y la unidad Es primo Si no No es primo Fin 4. Pide a un compañero que realice a tu algoritmo cinco pruebas de escritorio utilizando los números 0, 4, 7, 11 y 23. Utiliza este espacio para las pruebas. a.
b.
Número = 0 el número es menor o igual a 0
Número = 4 4/1 = 4 4/2 = 2
no es primo
no es primo
Programación
7
c.
d.
e.
Número = 7 7/1 = 7 7/2 = 3.5 7/3 = 2.33
Es primo
Número = 11 11/1 = 11 11/4 = 2.75 11/2 = 5.5 11/5 = 2.2 11/3 = 3.66
Es primo
Número = 23 23/1 = 23 23/4 = 5.75 23/7 = 3.28 23/10 = 2.3 23/2 = 11.5 23/5 = 4.6 23/8 = 2.87 23/11 = 2.09 23/3 = 7.66 23/6 = 3.83 23/9 = 2.55 Es primo
Clasificación de algoritmos Hay dos clasificaciones para los algoritmos:
Algoritmos informales Algoritmos computacionales
Los algoritmos informales son aquellos que no se realizan para una computadora, sino se diseñan para ser ejecutados por el ser humano. Todos los días ejecutas algoritmos informales en todas tus actividades: al prepararte para tus clases, al vestirte, al cocinar, al regresar a casa, entre otros. Los algoritmos computacionales son los que se crean para que una computadora sea quien ejecute los pasos y obtener el resultado esperado. Se aprovecha la velocidad de procesamiento del ordenador para darnos un resultado mucho más confiable.
Transcripción
Los algoritmos computacionales no pueden ser ejecutados directamente. La transcripción es el proceso a través del cual convertimos un algoritmo en un listado de instrucciones entendibles para la computadora. Estas instrucciones deben ajustarse a las reglas sintácticas de un lenguaje de programación. Las reglas sintácticas de un lenguaje de programación son las restricciones técnicas sobre las cuales está construido el lenguaje. Así, un programa computacional es un algoritmo escrito con las instrucciones, restricciones y reglas de un lenguaje de programación.
Compilación y errores
Una vez que has identificado el objetivo a cumplir, has realizado un algoritmo que te permita obtener el resultado deseado y lo has transcrito en un lenguaje de programación, necesitas hacer una compilación.
8
La compilación es el proceso mediante el cual la computadora revisa que el programa que has escrito cumpla con las reglas sintácticas del lenguaje de programación que estés utilizando. El compilador es el encargado de hacer esta revisión y te ayuda a detectar los errores de sintaxis y de precaución. Errores de sintaxis. Son errores representados en la omisión de alguna o algunas reglas sintácticas del lenguaje de programación. Es como un error ortográfico en el lenguaje que estés programando. Por ejemplo, si en algún lenguaje hay una instrucción “print” y por error tú escribes “prant”, el programa no funcionará, pues hay un error de sintaxis y la computadora no puede adivinar que en realidad querías escribir “print”. Algunas veces se requiere utilizar paréntesis, comas, puntos o corchetes. Si no se cumple con esas reglas de lenguaje, el programa no puede funcionar. Los errores de compilación son los más fáciles de detectar y corregir. Errores de precaución. Algunos compiladores hacen sugerencias para el mejoramiento o aseguramiento del programa. Cada lenguaje de programación cuenta con su propio compilador que te ayudará a escribir tu programa correctamente y a detectar estos errores. Errores lógicos. Este tipo de errores no pueden ser detectados por el compilador. Ocurren cuando el programa se compila perfectamente, no tiene errores de sintaxis, sin embargo no hace lo que se supone que debería hacer. Por ejemplo, si escribo un programa para calcular el área de un triángulo y utilizo la fórmula Área=(base*altura)/3, cometería un error lógico. El compilador no detecta ningún error en la fórmula, el programa funciona, pero el resultado está mal. Estos errores son los más difíciles de corregir y se pueden evitar si se diseña y analiza correctamente el problema antes de comenzar a programar en la computadora. Unos minutos de trabajo previo en papel, te pueden ahorrar muchas horas de trabajo en la computadora. Estos errores los tenemos que detectar nosotros mismos al hacer las pruebas de escritorio, ya que ahí es donde determinamos si el algoritmo logrará o no el objetivo esperado.
Identificando errores
04 Actividad
1.
Da un ejemplo (diferente a los de este libro) de un error de sintaxis.
Escribir una instrucción “Si no” sin haber escrito antes la instrucción “Sí”
Programación
9
2.
Da un ejemplo (diferente a los de este libro) de un error lógico.
Si quiero obtener el promedio de dos números A y B y escribo promedio = A+B/2 el resultado sería incorrecto.
Variables En programación, una variable es un campo de memoria que almacena información, la cual puede cambiar en cualquier momento.
Acerca de variables
05 Actividad
Reflexión previa: 1.
¿Qué significa la palabra variable?
Que puede cambiar (un valor, una propiedad, un atributo, entre otros).
2.
En álgebra ¿qué es una incógnita o variable?
Una literal de la cual se desconoce su valor o una literal que puede cambiar su valor.
3.
En la fórmula para calcular el área de un rectángulo (Área=base x altura) ¿cuáles son las variables? ¿Cómo las puedes identificar?
Las tres, si yo cambio los valores de la base o la altura, el área cambiará también su valor.
4. ¿Todas las fórmulas matemáticas tienen variables? ¿Por qué?
Sí, las fórmulas son para casos generales. Así se pueden obtener los valores
10
correctos para cualquier caso específico que exista. 5.
¿Qué es lo opuesto de una variable?
Una constante que no puede cambiar su valor.
Para poder utilizar variables en un programa deberás especificar primero qué tipo de información va a almacenar. A esto se le conoce como declaración de variables. Existen diferentes tipos de datos que una variable puede almacenar, a continuación se describen: Tipo entero. Una variable de tipo entero solamente puede almacenar valores numéricos sin punto decimal, por lo tanto sus operaciones jamás van a generar valores decimales, ya que operan con un juego de reglas llamado Aritmética Entera. Tipo real. Una variable de tipo real puede almacenar números que tienen punto decimal y en sus operaciones puede generar decimales, ya que opera con un juego de reglas llamado Aritmética Real. Tipo caracter. Una variable de tipo caracter puede almacenar valores equivalentes del código ASCII (American Standar Code for Infomation Interchange). ASCII es un código internacional de equivalencias internas en el sistema binario, por lo que una variable caracter puede almacenar cualquier cadena de caracteres que hayan sido tecleados.
Asignación de valores
Para asignar un valor a una variable (cargar una variable), en la mayoría de los lenguajes de programación se utiliza el signo = (igual a), que indica a la computadora que va a almacenar el valor que se encuentre a la derecha del símbolo, dentro de la variable que se encuentre a la izquierda. Por ejemplo: A=8 Indica que almacenará el número 8 en la variable A. B=A Indica que almacenará el contenido de la variable A en la variable B. C=A+B Indica que almacenará en la variable C, la expresión que resulte de la suma de los valores que contengan las variables A y B. Una variable sólo puede guardar un valor a la vez: si volviéramos a asignarle otro valor a la variable A, ésta cambiaría el valor 8 por el nuevo valor asignado. Entonces concluimos que: Sólo puede haber una variable del lado izquierdo del signo igual. Del lado derecho del signo puede haber una constante, una expresión u otra variable.
Programación
11
Cada vez que se asigna un nuevo valor a una variable, se pierde el valor anterior. Ejemplos de asignación de variables. Observa cómo las variables van adquiriendo nuevos valores conforme se ejecutan las operaciones: Valor después de cada instrucción
A
B
C
A= 10
10
B= 15
10
15
C= 20
10
15
20
Se asigna el valor 20 a la variable C. A y B mantienen su valor.
A=A+B
25
15
20
La variable A que valía 10 se suma con la variable B con valor a 15 y el resultado ahora se asigna a la variable A, cambiando su valor de 10 por 25. Las variables B y C mantienen su valor.
B=B-10
25
5
20
La variable B que valía 15 se resta en 10 y el resultado se almacena en B, cambiando su valor de 15 por 5. Las variables A y C mantienen su valor.
Se asigna el valor 10 a la variable A. Se asigna el valor 15 a la variable B y A mantiene su valor.
En este ejercicio se ejemplifica claramente lo que es una prueba de escritorio. Es muy útil ya que puedes verificar qué valores adquieren las variables durante la ejecución de un algoritmo o programa. Asignación de variables Realiza una prueba de escritorio para cada uno de los siguientes programas. Anota el valor de las tres variables después de ejecutar cada línea o instrucción. 1. a=3 b=8 c=1 a=5 b=9 c=7 a=a+1 b=b-2 c=c+3
12
a
b
c
3 3 3 5 5 5 6 6 6
?
?
8 8 8 9 9 9 7 7
?
1 1 1 7 7 7 10
06 Actividad
2. a = 10 b=1 c=4 a=a+c b=a+c c=a+c a=c+5 b=c+b c=a+b+c
3. a=1 b=2 c=3 a=a+b b=a–b c=a*b a=a/b b=a+b c=a*b
4. a=5 b=5 c=5 a=a+a b=b+b c=c+c a=a+b+c b=a+b+c c=a+b+c
a
b
c
10 10 10 14 14 14 23 23 23
1 1 1 18 18 18 36 36
4 4 4 18 18 18 77
a
b
c
1 1 1 3 3 3 3 3 3
2 2 2 1 1 1 4 4
3 3 3 3 3 3 12
a
b
c
5 5 5 10 10 10 30 30 30
5 5 5 10 10 10 50 50
5 5 5 10 10 10 90
Programación
13
5. a = 10 b = 10 c = 10 a=a+5 b=a+3 c=a+2 a=b+4 b=b+5 c=c+8
a
b
c
10 10 10 15 15 15 22 22 22
10 10 10 18 18 18 23 23
10 10 10 17 17 17 25
Operadores Los operadores son signos que expresan relaciones entre variables y/o constantes de las cuales se obtiene un resultado. La acción que realice un operador depende mucho del lenguaje de programación que estemos utilizando. Los operadores más conocidos son:
Para Para Para Para Para
expresar expresar expresar expresar expresar
una suma: + resta: una potencia: ^ una multiplicación: * una división: /
Si más de un operador se usa en una expresión, las acciones se ejecutan de acuerdo a una jerarquía: a) La computadora evalúa y realiza las potencias, dando prioridad de derecha a izquierda. b) Después se calculan las multiplicaciones y divisiones c) Por último se realizan las sumas y restas.
Ejemplo 1: x =a+b/c+d
Primero se ejecutaría la división (b/c), posteriormente la suma del resultado de la división con a y el resultado se sumaría con d. Asignemos algunos valores: a=2 b=8 c=4 d=3
x = 2 + 8/4 + 3 El valor que tomará x es 7.
14
Nota
Cuando utilizamos paréntesis se altera la jerarquía de los operadores, ya que la computadora realiza primero las operaciones de los paréntesis más internos. Dentro de los paréntesis se respeta la jerarquía de los operadores. Ejemplo 2: x = (a + b) / (c + d) Asignemos algunos valores: a=2 b=8 c=4 d=3 x = (2 + 8)/(4 - 1) El valor que tomará x es 10/3 ó 3.333333.
Operadores
07 Actividad
Evalúa las siguientes expresiones. Escribe en una sola línea la expresión algebraica, tal y como se debe escribir en la computadora, usando paréntesis y los operadores adecuados. Después evalúa cada expresión obteniendo el valor final de x, suponiendo en todos los casos que: a = 3, b = 4, c = 2 y d = 1
b
1.
a + x=
a b
Expresión:
x=(a+b/c) / (a/b+c)
x=
x=(3+4/2) / (3/4+2)= 20/11
c + c
Programación
15
b
2.
a +
b
a + b + x= a + Expresión:
x=
b c
+ a
x=(a+b/(a+b+b/c))/(a+b/(c+a))
(3+4/(3+4+4/2))/(3+4/(2+3))= 155/171
3.
a + b + x=
c d * a c
a + b * Expresión:
x=
(3+4+2/1*3)/(3+4*2/1)= 23/33 a x=
x=
16
d
x=(a+b+c/d*a)/(a+b*c/d)
4.
Expresión:
c
+
b
b
c
a
b
b
c
x=(a/b+b/c)/(a/b - b/c)
(3/4+4/2)/(3/4 - 4/2)= -11/5
5.
a + x=
a
+
a Expresión:
x=
a + b c +
+ d
a b
x=a+(a+(a+b)/(c+d))/(a+a/b)
3+(3+(3+4)/(2+1))/(3+3/4)= 199/45
Estructuras básicas Una estructura se define como un esquema que nos permite representar una idea de manera más simplificada, además de restringir un poco la lógica algorítmica. Por ejemplo cada persona puede tener su propia manera de hacer un pastel, por esta razón es que una estructura puede restringir a que sólo se realice de ciertas formas convenientes. Existen tres estructuras básicas del razonamiento en las que nos basamos para realizar una acción o varias acciones:
Primera estructura: Secuencia de acciones
Todos los días mientras realizamos nuestras actividades planeamos, consciente o inconscientemente, lo que vamos a hacer y decidimos un orden para que se realicen las actividades. Para preparar un pastel, por ejemplo, tenemos que hacerlo paso por paso siguiendo la secuencia de la receta para prepararlo. En otras palabras la secuencia nos indica el orden de ejecución. Para escribir una secuencia de acciones lo único que tienes que hacer es escribir una instrucción después de otra, de manera que se entienda la secuencia y el orden de ejecución. Por ejemplo, si deseáramos hacer una secuencia que nos permita observar a través de una ventana abierta, el algoritmo sería: Algoritmo para observar a través de una ventana abierta. Inicio Fin
1. 2. 3. 4.
Ubicar la ventana por la que deseamos observar. Dirigirnos hacia la ventana que escogimos. Acercarnos lo suficiente para observar a través de ella. Observar a través de la ventana abierta.
Notarás que para utilizar una estructura de secuencia sólo tenemos que indicar en qué orden se ejecutará cada paso y lo que se tiene que hacer.
Programación
17
Segunda estructura: Decisión de acción
Durante la ejecución de una secuencia a menudo se tienen que tomar decisiones, ya sea para escoger la mejor alternativa o simplemente porque tenemos que escoger entre dos caminos lógicos dependiendo de alguna variable. La vida cotidiana está llena de decisiones: tendremos que escoger si el pastel será de chocolate o preferimos que sea de vainilla, o hay que elegir ropa diferente si está lloviendo o si hace calor. Siempre que se debe tomar una decisión, ésta depende de una condición. La condición es una expresión lógica que nos permite decidir cuál es el camino a tomar. Vamos a complementar el ejemplo de la estructura anterior: Algoritmo para observar a través de una ventana. Inicio 1. 2. 3. 3. 4. 5.
Ubicar la ventana por la que deseamos observar Si nos encontramos sentados Levantarnos del lugar donde nos encontremos Si no estamos sentados Nos orientamos hacia la ventana Dirigirnos hacia la ventana que escogimos Acercarnos lo suficiente para observar a través de ella. Si está cerrada Abrir la ventana Observar a través de la ventana abierta.
Fin Conforme utilizas las estructuras de secuencias junto con las estructuras de decisiones, el algoritmo se aproxima más a la realidad. Observa que en las estructuras de decisión siempre se debe indicar el camino que se debe tomar cuando se cumpla la condición, pero no forzosamente tienes que indicar qué acción tomar en caso de no cumplir la condición.
Escribiendo algoritmos
08 Actividad
Para cada uno de los siguientes problemas, escribe un algoritmo que lo solucione. Después pide a un compañero que ejecute una prueba de escritorio a tu algoritmo para asegurarse de que, sin importar los datos que se usen, el algoritmo no falla. 1.
Algoritmo para elegir la ropa adecuada para salir a cualquier tipo de restaurante.
Inicio 1. Decidir qué tipo de restaurante es 2. Si el restaurante es elegante
18
3. Si es para hombre Elegir traje Si no Elegir vestido 4. Si el restaurante es casual 5. Si es para hombre Elegir pantalón de vestir Elegir camisa Si no Elegir blusa Elegir pantalón o falda de vestir 6. Si el restaurante es informal Elegir jeans Elegir T-shirt Fin Prueba de escritorio:
restaurante = casual ¿El restaurante es elegante? = no ¿El restaurante es casual? = sí ¿Es para hombre? = sí Elegir pantalón de vestir Elegir camisa ¿El restaurante es informal? =no Fin
2.
Algoritmo que requiere hacer una empresa que se dedica a pintar casas, antes de presentarse con el cliente a realizar el trabajo.
Inicio 1. Reunirse con el cliente 2. Mostrar un color al cliente 3. Si al cliente no le gusta regresar al paso 2 4.Calcular la pintura necesaria 5. Cotizar el trabajo 6. Si al cliente no le agrada la cotización
Programación
19
regresar al paso 2 7. Asignar a los trabajadores para el trabajo 8. Llevar a los trabajadores y la pintura al lugar de trabajo
Prueba de escritorio:
Color azul ¿Es de su agrado? = no Color blanco ¿Es de su agrado? = sí costo = $1000 ¿Es de su agrado? = sí Fin 3.
Una tienda hace un descuento de $10 si el total de la compra es mayor a $500. El algoritmo debe calcular el precio a pagar, basado en el valor de la compra.
Inicio 1. Variable total = 0 2. Sumar el precio del artículo al total 3. Si es el último artículo Si total > 500 total = total - 10 Si no regresar al paso 2 Fin
20
Prueba de escritorio:
total 0 150 200 450 510
4.
artículo 150 50 250 60
¿total es mayor a 500? si total = 510 - 10 total = 500
Una tienda hace un descuento de $10 si el total de la compra está entre $100 y $200 y hace un descuento de $20 si el total de la compra es mayor de $200. Si la compra es menor de $100, no hay descuento. El algoritmo debe calcular el precio a pagar, basado en el valor de la compra.
Inicio 1. variable total = 0 2. total = total + precio del artículo 3. si hay más artículos regresar al paso 2 4. si total > 100 y total < 200 total = total -10 5. si total > 200
Programación
21
total = total -20 6. Imprimir “El total es $” total Fin
Prueba de escritorio:
total 0 20 50 65 150
precio 20 30 15 85
¿100 < total < 200? = sí Total = 150 - 10 El total es $ 140
Tercera estructura: Ciclos de acciones
Un ciclo es una estructura que nos permite repetir una o varias acciones. ¿Recuerdas el algoritmo para crear un pastel? Tal vez queremos hacer varios pasteles y tendremos que repetir el mismo procedimiento cierto número de veces. Vamos a suponer que eres un supervisor y cada hora, durante tu jornada de trabajo, tienes que vigilar a través de una ventana. El resto del tiempo debes permanecer en tu lugar de trabajo y sólo cada hora levantarte y observar a través de la ventana. Algoritmo para vigilar desde una ventana
22
Inicio Llegar puntual a la jornada laboral Ubicarse en el lugar de trabajo Mientras no termine la jornada de trabajo Ubicar la ventana por la que nos queremos asomar Si estamos sentados Levantarnos del lugar en donde estemos sentados Orientarnos hacia la ventana Si no Orientarnos hacia la ventana Fin Si Dirigirnos hacia la ventana Si está cerrada Abrirla Fin Si Observar por la ventana Regresar al lugar de trabajo Mientras no haya pasado una hora Permanecer en el lugar de trabajo Fin Mientras Fin Mientras Fin Analiza con detalle los cambios en nuestro algoritmo: La palabra Mientras establece una condición que determina el número de veces que se repite un conjunto de acciones. El ciclo debe tener algún tipo de finalizador que detenga la repetición de acciones. El uso de sangrías te ayuda a identificar mejor cada una de las condiciones y los ciclos. Cada bloque de instrucciones dentro de una condición o un ciclo debe indicar el inicio y fin.
Estructuras Algorítmicas
Secuenciales
- Asignación - Entrada - Salida
Condicionales
- Simples - Dobles - Múltiples
Cíclicas
- Para - Mientras Que - Repita Hasta
Programación
23
Escribe algoritmos computacionales Para cada uno de los siguientes problemas, escribe un algoritmo que lo solucione. Después pide a un compañero que ejecute una prueba de escritorio a tu algoritmo para asegurarse de que, sin importar los datos que se usen, el algoritmo no falla. Debes cuidar que haya siempre un inicio y un fin, tanto para todo el algoritmo como para cada bloque de instrucciones en condiciones o ciclos. 1.
Un vendedor de arena tiene que despachar 2 kg. de producto a un cliente. Para pesar el producto el vendedor tiene una báscula. Escribe el algoritmo más adecuado que puedas pensar para despachar la cantidad exacta de arena.
Inicio 1. Mientras la báscula no pase de 2 kg. Agregar un puño de arena Fin mientras 2.Si la báscula pasa de 2 kg. Mientras la báscula no baje de 2 kg. Quitar un poco de arena Fin mientras Fin si Fin
Prueba de escritorio Problema 1:
báscula 0 200 g 500 g 750 g 1150 g 1500 g 1800 g 2100 g 2050 g 2000 g
24
puño 200 g 300 g 250 g 400 g 350 g 300 g 300 g -50 g -50 g
09 Actividad
2.
El guardia de un estadio tiene que verificar los boletos de los espectadores. Sólo podrán entrar quienes tengan boleto azul. No se sabe cuántos espectadores asistirán al evento. Escribe el algoritmo que debe seguir el guardia para cumplir con las reglas.
Inicio 1. Mientras la fila no se acabe 2. Revisar boleto del primer espectador 3. Si es azul Aceptar 4. Si no Rechazar 5. Recorrer fila Fin Mientras Fin
Prueba de escritorio Problema 2:
Personas en la fila 5 4 3 2 1 0
Boleto Azul Rojo Azul Azul Rojo
¿Aceptar? Sí No Sí Sí No
Programación
25
3.
Analiza el siguiente algoritmo y contesta las preguntas. X = 10 Mientras X>0, Repetir: Mostrar el valor actual de X X = X-1 Fin Mientras a. ¿Qué es lo que hace este programa?
Muestra los números del 10 al 1 utilizando a x como variable.
b. ¿Cuántas veces se repite el ciclo?
10
c. Realiza una prueba de escritorio y anota el valor de x en cada repetición. Prueba de escritorio:
26
Repetición
x
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
Salida de pantalla
4.
Analiza el siguiente algoritmo y contesta las preguntas. Pedir el valor de X, y pedir el valor de Y Mientras X>Y, Repetir: Y = Y+1 Fin del ciclo Mostrar el valor actual de Y a. ¿Qué es lo que hace este programa?
Si X es mayor a Y va a aumentar el valor de Y hasta que sea igual a X y lo muestra en pantalla.
b. Realiza una prueba de escritorio asignando valores a X y Y, donde X>Y Prueba de escritorio:
Repetición
x
y
Salida de pantalla
0 1 2 3 4 5 6
16
10 11 12 13 14 15 16
16
Programación
27
c. Realiza una prueba de escritorio asignando valores a X y Y, donde X
Repetición
x
y
0
10
11
Salida de pantalla
11
d. Suponiendo que al inicio X>Y ¿cuántas veces se repite el ciclo, en términos de X y de Y?
(y - x) veces
e. Suponiendo que al inicio X>Y ¿qué valor tiene Y al final del programa?
el valor de x
Técnicas para representar algoritmos Diagramas de flujo
Un diagrama de flujo es la forma de representar algoritmos de forma gráfica. El diagrama permite que la secuencia a seguir sea más entendible, especialmente cuando hay condiciones y ciclos. Se basa en la utilización de diversos símbolos universales que representan operaciones específicas. Se les llaman diagramas de flujo por que los símbolos se conectan por medio de flechas para indicar
28
la secuencia de una operación. A continuación se describen algunos símbolos utilizados para hacer diagramas de flujo.
El uso del rectángulo representa un proceso o acción a realizarse, como por ejemplo la asignación de un valor a una variable. El rombo se utiliza para representar una condición o decisión. Normalmente el flujo de información entra por arriba y sale por un lado si la condición se cumple o por el lado opuesto si la condición no se cumple. En el interior del rombo se escribe la condición que hay que evaluar. El paralelogramo indica un proceso de entrada o salida, en otras palabras, indica un proceso donde se recibe o donde se entrega información. El óvalo representa el inicio o el fin de un algoritmo. Todas las acciones a realizarse en el algoritmo se encuentran entre el inicio y fin del diagrama de flujo. Este símbolo representa una entrada de datos utilizando el teclado y describe la asignación de un valor a una variable. En su interior se debe escribir el nombre de la variable en la que queremos que se almacene el dato tecleado. Estos símbolos se conocen como conectores. Representan la continuación de un diagrama cuando éste no cabe en una sola hoja. El círculo hace referencia a la continuación de un diagrama dentro de la misma hoja, mientras que el pentágono hace referencia hacia la continuación de un diagrama en otra página. Este símbolo representa una salida de datos en un dispositivo electrónico, por ejemplo en una impresora. Este símbolo representa una salida de datos pero sólo en el monitor.
Las flechas representan la forma de conexión entre los demás símbolos. La dirección de la flecha determina el flujo de ejecución.
Programación
29
¿Recuerdas el algoritmo para vigilar a través de una ventana? Observa cómo se ve mucho más claro en un diagrama de flujo. Inicio Llegar puntual a la jornada laboral Ubicarnos en nuestro lugar de trabajo 1 ¿Estamos sentados?
Falso
Verdadero Levantarnos del lugar donde estamos sentados
Orientarnos hacia la ventana
Orientarnos hacia la ventana Dirigirnos hacia la ventana
¿Está cerrada? Verdadero
Falso
Abrirla Observar por la ventana Regresar a nuestro lugar de trabajo Falso ¿Ha pasado una hora? Verdadero ¿Ha terminado la jornada laboral?
Verdadero Fin
30
Falso
1
Recuerda que para cada problema puede haber una gran variedad de algoritmos, ya que todos utilizamos nuestra propia lógica. Probablemente tú tengas en mente otro proceso para lograr el objetivo de vigilar por una ventana. Lo importante es que se logre el objetivo de la mejor manera posible. Diagramas de flujo
10 Actividad
Representa en diagrama de flujo los siguientes algoritmos. La calidad de los diagramas es importante, por lo que debes utilizar reglas o plantillas para que los diagramas se vean ordenados y limpios. 1.
Utiliza el algoritmo para encender un vehículo que realizaste anteriormente y dibuja el diagrama de flujo.
Inicio Abrir la puerta del vehículo Entrar al vehículo Es vehículo estándar
Falso
Verdadero
Verificar que esté en parking
Pisar el clutch Insertar la llave en la ranura Girar la llave Fin
Programación
31
2.
Utiliza el algoritmo que te permite hacer un pastel y dibuja el diagrama de flujo.
Inicio Comprar los ingredientes Mezclar los ingredientes Vaciar la mezcla en un molde Prender el horno El horno está caliente
Falso
Verdadero Meter el pastel Abrir el horno Está listo el pastel Verdadero Sacar el pastel del horno Fin
32
Falso
3.
Utiliza el algoritmo para determinar si un número entero X es par o impar y dibuja el diagrama de flujo.
Inicio numero
numero MOD 2 = 0 Verdadero
Falso Es impar
Es par Fin
Programación
33
4.
Dibuja un diagrama de flujo del algoritmo que te permita desarrollar algoritmos.
Inicio Determinar el problema Elegir una posible solución Indicar los pasos a seguir Realizar una prueba del algoritmo La prueba encontró errores
Falso
Verdadero Corregir los errores
La solución fue satisfactoria Verdadero Fin
34
Falso
5.
Dibuja un diagrama de flujo del algoritmo que te permita saber si un número entero X es primo.
A
Inicio
Bandera = 0 Verdadero El número es primo
Bandera = 0
Falso
El número no es primo
numero Fin
numero < 1
Verdadero
Falso numero = 2
Verdadero
A
Falso i=2 Bandera = o e i < numero/2
Falso
A
Verdadero numero MOD i = 0
Falso
Verdadero Bandera = 1 i=i+1
Programación
35
Pseudocódigo El pseudocódigo es un lenguaje de especificación de algoritmos, de uso fácil y sintaxis similar al lenguaje de programación. Es un paso más cercano a los lenguajes de computadora, pero te permite concentrarte en las estructuras y acciones, en vez de preocuparte por la sintaxis del lenguaje en el que se va a programar. Cuando un algoritmo se escribe en pseudocódigo, en vez de en palabras comunes, su traducción a cualquier lenguaje de programación será muy sencilla. Para escribir pseudocódigos hay que cumplir algunos requisitos que facilitarán la posterior transcripción del algoritmo a un lenguaje de computadora: Asignar un nombre. Se debe poner un título al algoritmo que haga referencia a su contenido o función. Declarar variables. Es necesario especificar los nombres de las variables y el tipo de dato que van a almacenar. Delimitar estructuras. Todas las estructuras deben delimitarse entre un Inicio y un Fin. Identificar mensajes. Los mensajes que deseas que se muestren al usuario deberán escribirse entre comillas. Declarar una variable consiste en escribir el tipo de dato que puede guardar, seguido del nombre de la variable. Para separar el tipo de dato del nombre de la variable se utilizan dos puntos (:). Puedes declarar dos o más variables del mismo tipo, separando sus nombres con comas, por ejemplo:
Entero: edad Real: estatura, peso, sueldo Cadena: nombre, dirección
Para asignar un valor a una variable primero se escribe el nombre de la variable, luego el signo de igualdad (=) y después el valor que se va a asignar a la variable. Por ejemplo:
edad = 14 estatura = 1.76 sueldo = 750.80 nombre = “Alejandra”
Antes de analizar a detalle la forma correcta de escribir las estructuras en forma de pseudocódigo, veamos un ejemplo simple que sólo utiliza una secuencia de instrucciones. ¿Puedes comprender su funcionamiento? Realiza una prueba de escritorio. Programa Identificar usuario Inicio Cadena: nom Escribir “Bienvenido. Teclea tu nombre” Leer nom Escribir “Hola”, nom Fin
36
Diagramas de Nassi – Schneiderman (N-S) El diagrama N-S, también conocido como diagrama de Chapin, es una técnica que combina la descripción textual del pseudocódigo, con la representación gráfica del diagrama de flujo. Cuenta con un conjunto limitado de símbolos para representar los pasos del algoritmo, por lo que se apoya en expresiones del lenguaje natural utilizando un conjunto de palabras reservadas. Las palabras reservadas más utilizadas son: Inicio, Fin, Leer, Escribir, Mientras, Repetir, Hasta, Para, Incrementar, Decrementar, Hacer Función, Entero Real, Caracter, Cadena, Lógico, Retornar. Veamos como ejemplo un algoritmo que sirve para calcular el área y perímetro de cualquier rectángulo. El usuario debe proporcionar los valores de la base y la altura. Algoritmo para calcular el área y perímetro de un rectángulo. Inicio 1. 2. 3. 4. 5.
Pedir al usuario el valor de la base (b) Pedir al usuario el valor de la altura (h) Calcular el área con la fórmula A=b*h Calcular el perímetro con la fórmula P= 2*(b+h) Mostrar al usuario los valores de A y P
Fin Este simple algoritmo se puede representar con un diagrama de flujo, como se muestra a continuación:
Inicio
b,h
A= b * h
P= 2* (b+h)
A, P
Fin
Programación
37
También sabemos que, para que la traducción posterior a un lenguaje de programación sea más sencilla, es conveniente escribirlo en forma de pseudocódigo, por ejemplo así: Pseudocódigo para calcular el área y perímetro de un rectángulo. Inicio Fin
Entero: b, h, A, P Pedir b Pedir h A = b*h P=2*(b+h) Mostrar A Mostrar P
Para realizar el diagrama N-S tenemos que hacer el siguiente análisis. Datos de entrada: b y h (base y altura) Datos de salida: A y P (área y perímetro) Procesos: A = b * h , P = 2 * (b + h) Diagrama N-S: Inicio Entero: b, h, A, P Leer b, h A=b*h P = 2 * (b + h) Escribir “El área es:”, A Escribir “El perímetro es:”, P Fin Hasta este punto parece que el diagrama N-S no tiene diferencia alguna con el pseudocódigo, con la excepción de que está dentro de una especie de recuadro con filas. Empezarás a notar cambios cuando tengas que representar estructuras.
Diagrama N-S de estructuras de decisión
Considera ahora el siguiente caso. Queremos diseñar un programa para encontrar el valor absoluto de un número entero. Recuerda que para los enteros positivos el valor absoluto es el mismo número, mientras que para los negativos, basta cambiar el signo para encontrar el valor absoluto. Datos de entrada: num (cualquier número entero positivo o negativo) Datos de salida: absnum (valor absoluto de num) Proceso: absnum = num * (-1) Recuerda que este proceso sólo se realiza si num es menor que cero.
38
Diagrama N-S:
Para ejemplificar un algoritmo de decisión múltiple, considera un algoritmo para identificar el mayor y menor de dos números enteros dados. Datos de entrada: num1, num2 Datos salida: mayor, menor Proceso: comparación Diseño de la solución
Diagramas N-S
11 Actividad
Representa en diagrama N-S (diagrama de Chapin) los siguientes algoritmos. Recuerda que la claridad es importante, por lo que debes utilizar regla para tener una máxima limpieza.
Programación
39
1. Algoritmo que te permita encender un vehículo
Inicio Abrir la puerta del vehículo Entrar al vehículo Es estándar Si No Verificar que esté Pisar el clutch en parking Insertar la llave en la ranura Girar la llave Fin del algoritmo
2. Algoritmo que te permita hacer un pastel
Inicio Comprar los ingredientes Mezclar los ingredientes Vaciar la mezcla en un molde para pastel Prender el horno Esperar unos minutos Abrir el horno El horno está caliente Meter el pastel al horno Esperar unos minutos Abrir el horno El pastel está listo Sacar el pastel del horno Fin del algoritmo
40
3. Algoritmo que te permita determinar si un número es par o impar
Inicio Entero: n Entrar al vehículo n MOD2 = 0 Si Mostrar: “Es par” Fin del algoritmo
No
Mostrar: “Es impar”
4. Algoritmo que te permita desarrollar algoritmos
Inicio Determinar el problema Elegir una posible solución Indicar los pasos a seguir ¿Hay posibles errores? Corregir fallas Realizar prueba del algoritmo ¿La solución fue satisfactoria? Fin del algoritmo
Programación
41
5. Algoritmo que te permita saber si un número es primo
Inicio Entero: bandera, numero, i = 0 Leer numero numero > 1 numero = 2 o numero = 1 Si i=2 bandera = 0 e i < numero/2 Si
No
numero MODi= 0
bandera = 1 i=i+1
Bandera = 0 No Si Mostrar: Mostrar: “El número “El número no es primo” es primo” Fin del algoritmo
No
Pseudocódigos de la estructura Si-Entonces- Si no Ya hemos estudiado que cuando en un algoritmo hay que tomar una decisión, se utiliza el condicional Si. Ya has escrito varios algoritmos utilizando esta estructura de decisión. Ahora verás la forma correcta de escribir esta estructura en forma de pseudocódigo. En la toma de decisiones que dependen de una condición, la o las instrucciones que formen parte de la estructura sólo se ejecutan si se cumple una condición. Adicionalmente se pueden incluir una o varias instrucciones que se ejecuten sólo en caso de que no se cumpla la condición. Un ejemplo en nuestro propio lenguaje sería algo así: Si hace Si no Fin_Si
frío entonces usar un abrigo ir al cine usar ropa fresca ir a la playa
Su estructura general es la siguiente:
Si (Condición) entonces
Si no
Fin_Si
42
Instrucciones a ejecutar en caso de que la condición sea Verdadera
Instrucciones a ejecutar en caso de que la condición sea Falsa
Veamos un algoritmo de ejemplo. Se debe leer un número y determinar si éste es negativo o positivo. Programa Decisiones en Secuencia Inicio Entero: num Escribir “Digite un número entero” Leer num Si num < 0 Escribir “El número digitado es negativo” Si no Escribir “El número digitado es positivo” Fin_Si Fin
Decisiones simples
12 Actividad
Realiza un algoritmo para cada uno de los ejercicios, utilizando decisiones simples. 1.
Determinar si un alumno aprueba o reprueba una materia, basado en el promedio de 5 calificaciones. Escríbelo en pseudocódigo.
Inicio Entero: total = 0, i = 0, calificacion = 0 Mientras i < 5 Leer calificacion total = total + calificacion i=i+1 Fin mientras Si total /5 > 5 Mostrar “Aprobado” Si no Mostrar “Reprobado” Fin si Fin 2.
Realiza un algoritmo para determinar si una persona es mayor de edad. Escríbelo en pseudocódigo.
Inicio Entero: Edad = 0 Leer Edad
Programación
43
Si Edad > 18 Mostrar “Mayor de edad” Si no Mostrar “Menor de edad” Fin si Fin 3.
Leer un número y determinar si es un número primo. Escríbelo en pseudocódigo.
Inicio Entero: bandera = numero = i = 0 Repetir Leer numero Hasta que numero > 1 Si numero <> 2 i=2 Mientras bandera = 0 e i < numero/2 Si numero MOD 2 = 0 Bandera = 1 Fin si i=i+1 Fin mientras Fin si Si bandera = 0 Mostrar “Es primo” Si no Mostrar “No es primo” Fin si Fin 4.
Leer un número y determinar si es número par. Escríbelo en pseudocódigo.
Inicio Entero: numero Leer numero Si numero MOD 2 = 0 Mostrar “El número es par”
44
Fin
5.
Fin si
Leer un número y determinar si es número impar. Escríbelo en pseudocódigo.
Inicio Entero numero Leer numero Si numero MOD 2 <> 0 Mostrar “Es impar” Fin si Fin
Decisiones en secuencia Este tipo de estructura se utiliza cuando se deben realizar varias preguntas (condiciones) en las que no es importante el “Si no” de cada decisión. Su esquema general es el siguiente: Si condición1 Instrucciones a ejecutar en caso de que la condición1 sea Verdadera Si condición2 Instrucciones a ejecutar en caso de que la condición2 sea Verdadera Si condición3 Instrucciones a ejecutar en caso de que la condición3 sea Verdadera
Programación
45
Si condición4 Instrucciones a ejecutar en caso de que la condición4 sea Verdadera Realiza una prueba de escritorio del siguiente ejemplo. Inicio Entero: numero Escribir “Digite un numero” Leer numero Si numero =0 Llamar a recepción Si numero =1 Llamar a vigilancia Si numero =2 Llamar a mantenimiento Si numero >2 Mensaje “Error, número invalido” Fin
Decisiones en secuencia
13 Actividad
Realiza un algoritmo para cada uno de los ejercicios, utilizando decisiones en secuencia. 1.
Realiza un algoritmo para un buzón de voz de al menos 4 opciones. Escríbelo como pseudocódigo.
Inicio Entero: numero Mostrar “Elija una opción” Leer numero Si numero = 0 Escuchar mensajes nuevos Si numero = 1 Escuchar mensajes antiguos Si numero = 2 Borrar mensaje Si numero = 3 Mandar un mensaje a otro usuario Si numero > 3 Mostrar “Opción no válida” Fin
46
2.
Leer una calificación numérica y determinar si es Deficiente, Regular, Bien, Muy bien o Excelente. Escríbelo como pseudocódigo.
Inicio Entero: calificacion Si calificacion < 5 Mostrar “Deficiente” Si calificacion = 6 o calificacion = 7 Mostrar “Regular” Si calificacion = 8 Mostrar “Bien” Si calificacion = 9 Mostrar “Muy bien” Si calificacion = 10 Mostrar “Excelente” Fin 3.
Realizar un algoritmo que indique, según el número, el nombre del mes. Escríbelo como pseudocódigo.
Inicio Entero: mes Leer mes Si mes < 0 o mes > 12 Mostrar “Número no válido” Si mes = 1 Mostrar “Enero” Si mes = 2 Mostrar “Febrero” Si mes = 3 Mostrar “Marzo” Si mes = 4 Mostrar “Abril” Si mes = 5 Mostrar “Mayo” Si mes = 6 Mostrar “Junio” Si mes = 7 Mostrar “Julio” Si mes = 8 Mostrar “Agosto” Si mes = 9
Programación
47
Mostrar “Septiembre” Si mes = 10 Mostrar “Octubre” Si mes = 11 Mostrar “Noviembre” Si mes = 12 Mostrar “Diciembre” Fin 4.
Realizar un algoritmo que permita indicar el número de un día y el número de un mes y muestre la estación del año que corresponde a esa fecha.
Inicio Entero: dia, mes Leer dia Leer mes Mientras dia < 1 o dia > 31 Leer dia Mientras mes < 1 o mes > 12 Leer mes Si mes = 4 o mes = 5 Mostrar “Primavera” Si mes = 7 o mes = 8 Mostrar “Verano” Si mes = 10 o mes = 11 Mostrar “Otoño” Si mes = 1 o mes = 2 Mostrar “Invierno” Si mes = 3 y dia > 20 Mostrar “Primavera” Si mes = 3 y dia < 21 Mostrar “Invierno” Si mes = 6 y dia > 21 Mostrar “Verano” Si mes = 6 y dia < 22 Mostrar “Primavera” Si mes = 9 y dia > 23 Mostrar “Otoño” Si mes = 9 y dia < 24 Mostrar “Verano”
48
Si mes = 12 y dia > 21 Mostrar “Invierno” Si mes = 12 y dia < 22 Mostrar “Otoño” Fin 5.
Realizar un algoritmo que indique el tipo de un triángulo, dependiendo de las medidas de sus tres ángulos.
Inicio Entero: a1, a2, a3 Leer a1, a2, a3 Mientras a1+a2+a3 <> 180 Leer a1, a2, a3 Si a1=a2 y a1=a3 y a2=a3 Mostrar “Triángulo equilátero” Si (a1=a2 y a3<> a1) o (a1=a3 y a2<> a1) o (a2=a3 y a1<> a2) Mostrar “Triángulo isóceles” Si a1=90 o a2=90 o a3=90 Mostrar “Triángulo rectángulo” Si a1>90 o a2>90 o a3>90 Mostrar “Triángulo obtusángulo” Si a1<90 o a2<90 o a3<90 Mostrar “Triángulo acutángulo” Fin
Programación
49
Decisiones en cascada o anidadas En este tipo de decisiones, un nuevo condicional completo se coloca dentro de la opción Si o de la opción Si no de otro condicional. A veces es muy conveniente utilizar esta estructura porque permite optimizar el programa y escribir menos instrucciones. Por ejemplo, analiza este caso: Si llueve entonces no salir de casa Si no Si hace frío
Si no Fin_Si
usar abrigo ir al cine usar ropa fresca ir a la playa
Fin_Si
Observa que el grupo de instrucciones en letra cursiva (el condicional interno) sólo se ejecuta en el caso de que la primera condición sea falsa. Si la primera condición es verdadera (si llueve), todo el segundo condicional es ignorado. El esquema general es el siguiente. Si condición1 entonces Instrucciones a ejecutar en caso de que la condición1 sea Verdadera Si no Si condición2 entonces
Si no Fin_si
Instrucciones a ejecutar en caso de que la condición2 sea Verdadera Instrucciones a ejecutar en caso de que la condición2 sea Falsa
Fin_si
También es posible tener un esquema como éste: Si condición1 entonces Si condición2 entonces
Si no Fin_si
Si no Fin_si
Instrucciones a ejecutar en caso de que la condición2 sea Verdadera Instrucciones a ejecutar en caso de que la condición2 sea Falsa
Instrucciones a ejecutar en caso de que la condición1 sea Falsa
De acuerdo a las necesidades de cada algoritmo, se pueden anidar dos, tres o más decisiones. Realiza una prueba de escritorio de este ejemplo: se debe leer un número entero y determinar si es de uno, dos, tres, cuatro o más dígitos. Además hay que verificar que el número no sea negativo.
50
Programa Decisión en Cascada
Decisiones anidadas
14 Actividad
Realiza un algoritmo para cada uno de los siguientes ejercicios, utilizando decisiones anidadas o en cascada. 1.
Leer un número entero de dos dígitos y determinar si un dígito es múltiplo del otro.
Inicio Entero: num, aux1, aux2 Leer num Mientras num<10 o num >99 Leer num aux1= num/10 aux2= num MOD 10 Si aux1< aux2 Si aux2 MOD aux1 = 0
Programación
51
Mostrar “El segundo dígito es múltiplo del primero” Fin si Si no Si aux1 MOD aux2 = 0 Mostrar “El primer dígito es múltiplo del segundo” Fin si Fin si Fin
2.
Leer dos números enteros. Si la diferencia entre los dos es menor o igual a 10, entonces mostrar en pantalla todos los enteros comprendidos entre el menor y el mayor de los números leídos.
Inicio Entero: num1, num2, cont, aux Leer num1, num2 Si num1< num2 aux=num1 num1=num2 num2=aux Fin si cont=num1-num2 Si cont < 10 Mientras cont > 0 Mostrar num1 - cont cont = cont - 1 Fin mientras Fin si Fin
52
3.
Leer dos números enteros de 2 dígitos. Si la diferencia entre los dos números es par mostrar en pantalla la suma de los dos números; si dicha diferencia es un número menor que 10 entonces mostrar en pantalla el producto de los dos números; y si la diferencia entre los números leídos termina en 4 mostrar en pantalla la diferencia.
Inicio Entero: num1, num2, aux Leer num1 Mientras num1<10 y num1 >99 Leer num1 Leer num2 Mientras num2<10 y num2 >99 Leer num2 Si num2 > num1 aux=num1 num1=num2 num2=aux Fin si aux=num1-num2 Si aux MOD 2 = 0 Mostrar num1+num2 Si aux < 10 Mostrar num1*num2 Si aux MOD 10 = 4 Mostrar aux
Programación
53
4.
Leer un número entero de 2 dígitos. Si el número termina en 1 mostrar en pantalla su primer dígito, si termina en 2 mostrar en pantalla la suma de sus dígitos y si termina en 3 mostrar en pantalla el producto de sus dos dígitos.
Inicio Entero: num Leer num Mientras num<10 y num>99 Leer num Fin mientras Si num MOD 10 = 1 Mostrar num/10 Si num MOD 10 = 2 Mostrar num MOD 10 + num/10 Si num MOD 10 = 3 Mostrar num MOD 10 * num/10 Fin
54
Ciclos Un ciclo es una estructura que permite repetir o iterar un conjunto de acciones la cantidad de veces que determine una condición. El ciclo siempre debe tener un inicio y un final. Para facilitar la escritura de algoritmos se utilizan tres formas de ciclos. Aunque siempre que necesites repetir instrucciones puedes usar cualquiera de los tres ciclos, siempre hay alguno que resulta más conveniente o que permite escribir menos instrucciones. Veamos los tipos de ciclos:
Ciclo Mientras (While)
En esta estructura hay una condición al inicio del ciclo. Mientras la condición se cumpla (sea verdadera), se ejecutan las instrucciones especificadas dentro de la estructura. Se utiliza cuando queremos que se repitan ciertas instrucciones un número definido de veces. Antes de iniciar el ciclo, el programa verifica la condición y, si esta se cumple, se ejecuta el ciclo. Si no se cumple la condición, el programa hace caso omiso de cualquier instrucción dentro del ciclo y continúa con las demás instrucciones del programa. Su estructura es: Mientras (condición) Acciones a ejecutar Fin Mientras Por ejemplo, imagina que deseamos que la computadora muestre los números pares entre el 0 y el 1000. Si no utilizas ciclos tendrías que escribir algo así: Inicio Fin
Entero: num num=2 Escribir num num=num+2 Escribir num num=num+2 Escribir num num=num+2 ... … y así hasta que num tenga el valor de 1,000
Queda claro que hay instrucciones que se repiten una y otra vez, por lo que conviene usar un ciclo que podría quedar como sigue. Realiza una prueba de escritorio del algoritmo para entenderlo mejor. Inicio Entero: numero numero = 2 Mientras numero <= 1000 Escriba numero numero = numero + 2 Fin Mientras Fin
Programación
55
Ciclo Mientras Ciclo Mientras Realiza un algoritmo para cada uno de los siguientes problemas, utilizando la estructura del ciclo Mientras. 1.
Leer un número entero y mostrar todos los pares comprendidos entre 1 y el número leído. Escríbe el pseudocódigo.
Inicio Entero num, cont = 2 Leer num Mientras num < 1 Leer num Fin mientras Mientras cont < num Mostrar cont cont =cont + 2 Fin mientras Fin 2.
Mostrar en pantalla todos los enteros impares comprendidos entre 20 y 150.
Inicio Entero cont = 21 Mientras cont < 150 Mostrar cont cont =cont + 2 Fin mientras Fin
56
15 Actividad
3.
Leer un número entero y determinar si es un número primo.
Inicio Entero: bandera = i = 0, numero Leer numero Mientras numero < 0 Leer numero Si numero <> 0 y numero <> 1 i=2 Mientras bandera = 0 e i < numero/2 Si numero MOD i = 0 Bandera = 1 i=i+1 Fin si Fin mientras Fin si Si bandera = 0 Mostrar “Es primo” Fin si Fin 4.
Mostrar en pantalla la tabla de multiplicar del número 6, desde 6 X 1 hasta 6 X 12.
Inicio Entero i = 1 Mientras i < 12 Mostrar “6x” i i=i+1 Fin mientras Fin
Programación
57
5.
Leer cualquier número entero y mostrar en pantalla su tabla de multiplicar. Escribe el pseudocódigo y dibuja un diagrama N-S. o diagrama de flujo.
Inicio Entero num, i = 1 Leer num Mientras i < 12 Mostrar num “*” i i++ Fin mientras Fin
Inicio Entero: num, i = 1 Leer num i < 12 Mostrar num “*” i i++ Fin
Ciclo Para (For)
Este ciclo ejecuta una serie de instrucciones, el número de veces definidas en un rango. Utiliza una variable que almacena el valor de inicio del ciclo y se incrementa o decrementa en cada repetición hasta que la variable es igual al valor final del ciclo. Analiza este ejemplo que muestra los números consecutivos del 1 al 25: Inicio Entero: N Para N= 1 hasta 25 Escriba N Fin_Para Fin En el ejemplo anterior se utilizó la variable N, de tipo entero, para llevar la cuenta del ciclo. El ciclo se repite desde que N tiene el valor de 1 (valor inicial), hasta que N tiene el valor de 25 (valor final). No hay restricciones en cuanto a los valores iniciales y finales, siempre y cuando el ciclo tenga un inicio y un fin. Así, todas las líneas siguientes son válidas: Para N= 7 hasta 9 Para N= 1 hasta 25 Paso 2 (para incrementar N de 2 en 2) Para N= 10 hasta 0 Paso -1 (para decrementar N de 1 en 1) Ciclo Para Realiza un algoritmo para cada uno de los ejercicios, utilizando la estructura del ciclo Para. 1. Mostrar en pantalla todos los enteros comprendidos entre 1 y 15
Inicio Entero: i Para i = 1 hasta 15 Mostrar i
58
16 Actividad
Fin
2.
Fin para
Generar en orden los números del 1 al 10, utilizando un ciclo que vaya de 10 a 1.
Inicio Entero: i Para i = 10 hasta 1 Mostrar 11 - i Fin para Fin
3.
Mostrar en pantalla los primeros 20 múltiplos de 4.
Inicio Entero: num Para num = 1 hasta 20 Mostrar 4* num Fin para Fin
Programación
59
4.
Sumar los números primos comprendidos entre el 1 y el 22.
Inicio Entero: total = 0, num Para num = 1 hasta 22 Si num es primo total = total + num Fin si Fin para Mostrar total Fin
5.
Mostrar en pantalla los números pares comprendidos entre el 20 y el 30.
Inicio Entero: i Para i = 20 hasta 30 Mostrar i i=i+1 Fin para Fin
60
Ciclo Hacer-Mientras (Repeat While)
Esta estructura se utiliza generalmente cuando no sabemos de antemano cuántas veces se ha de ejecutar el ciclo y tenemos que esperar a que cierta condición se cumpla. A diferencia del ciclo Mientras, el ciclo Hacer-Mientras se ejecuta siempre por lo menos una vez, ya que la condición se valida al final del ciclo en vez de al principio. Si la condición es verdadera, el ciclo se repite y se termina cuando la condición es falsa. Su estructura es: Hacer Acciones a ejecutar Mientras (Condición) Por ejemplo, este algoritmo muestra los números pares entre el 2 y el 1000 Inicio Entero: numero numero = 2 Hacer Escriba numero numero = numero + 2 Mientras numero <= 1000 Fin
Ciclo Hacer-Mientras
17 Actividad
Realiza un algoritmo para cada uno de los ejercicios, utilizando la estructura del ciclo Hacer-Mientras. 1. Leer un número y calcular su factorial.
Inicio Entero: num, prod = 1, fact = 1 Leer num Mientras num < 1 Leer num Hacer fact* = prod prod + = 1 Mientras prod < num Mostrar fact Fin
Programación
61
2.
Mostrar en pantalla todos los impares comprendidos entre 1 y 100.
Inicio Entero: num = 1 Hacer Mostrar num num + = 2 Mientras num < 99 Fin
3.
Leer dos números enteros y mostrar todos los múltiplos de 4 comprendidos entre el menor y el mayor.
Inicio Entero: a, b, i = 1, aux Leer a, b Si b > a aux = a a=b b = aux Fin si Mientras a MOD 4 <> 0 y a < b a+=1 Fin mientras Hacer Mostrar a a=a+4 Mientras a < b Fin
62
4.
Leer dos números enteros y sumar todos los valores enteros que haya entre el menor y el mayor.
Inicio Entero: a, b, suma, aux Leer a, b Si b < a aux = a a=b Fin si Hacer suma + = a a+=1 Mientras a < b Fin
5.
Sumar números leídos uno a uno, hasta que el usuario ingrese un 9. Al final debe mostrarse la suma. Escribe el pseudocódigo y dibuja el diagrama de flujo.
Inicio Entero: suma, num Hacer Leer num suma + = num Mientras num <> 9 Mostrar suma Fin
Programación
63
Inicio Entero = suma, num num suma + = num num <>a
Verdadero
Falso suma Fin Ciclo Hacer-Hasta (Repeat Until)
Algunos lenguajes de programación incluyen un ciclo muy parecido al Ciclo Hacer-Mientras, con una diferencia: el ciclo se repite hasta que la condición a validar sea verdadera. Ciclo Hacer-Mientras. Se repite Mientras la condición final sea verdadera, es decir, termina cuando la condición es falsa. Ciclo Hacer-Hasta. Se repite mientras la condición final sea falsa, es decir, termina hasta que la condición es verdadera. La estructura del Ciclo Hacer Hasta es: Hacer Acciones a ejecutar Hasta (Condición) Por ejemplo, este algoritmo muestra los números pares entre el 2 y el 1000 Inicio Entero: numero numero = 2 Hacer Escriba numero numero = numero + 2 Hasta numero > 1000 Fin
64
Ciclo Hacer-Hasta
18 Actividad
Realiza un algoritmo para cada uno de los ejercicios, utilizando la estructura del ciclo Hacer-Hasta 1.
Leer un número entero y mostrar todos los pares comprendidos entre 1 y el número leído.
Inicio Entero: num, i = 2 Leer num Si num > i Hacer Mostrar i i+=2 Hasta i < num Fin si Fin
2.
Mostrar en pantalla todos los pares comprendidos entre 20 y 100.
Inicio Entero: num = 20 Hacer Mostrar num num + = 2 Hasta num > 100 Fin
Programación
65
3.
Leer dos números enteros y mostrar todos los múltiplos de 4 comprendidos entre el menor y el mayor.
Inicio Entero: a, b, aux Leer a,b Si b > a aux = a a=b b = aux Fin si Mientras a MOD 4 <> 0 y a < b a+=1 Fin mientras Hacer Si a < b Mostrar a a+=4 Hasta a > b Fin 4.
Leer dos números enteros y sumar los valores enteros que estén entre el menor y el mayor.
Inicio Entero: a, b, aux, suma Leer a, b Si b > a aux = a a=b b = aux Fin si Hacer suma + = a a++ Hasta a > b Fin
66
5.
Sumar números leídos uno a uno, hasta que el usuario ingrese un 9. Al final debe mostrarse la suma. Escribe el pseudocódigo y dibuja el diagrama de flujo.
Inicio Entero: num, suma Hacer Leer num suma + = num Hasta num = 9 Mostrar suma Fin
Ciclos anidados
Un ciclo anidado es una estructura en la que un ciclo está dentro de otro. Es posible crear ciclos anidados de cualquiera de los tipos de ciclo que hemos analizado o incluso anidar dos o más ciclos de diferente tipo. Considerando el ciclo Mientras, la estructura sería la siguiente: Mientras Condición1 Acciones a repetir en el ciclo externo -
Mientras Condición2 Acciones a repetir en el ciclo interno Fin_Mientras Interno Fin_Mientras Externo
Analicemos esta estructura con un ejemplo. Imagina que deseamos mostrar en pantalla las siguientes parejas de enteros x, y:
x
y
1 1 1 2 2 2 3 3 3
1 2 3 1 2 3 1 2 3
Programación
67
Primero analiza la lógica de estos números. Observa que para cada dígito x, el dígito y cambia su valor tres veces. Sólo cuando el dígito y ha llegado a 3, se incrementa el valor del dígito x. Este algoritmo logra generar las parejas en cuestión. Realiza una prueba de escritorio para comprenderlo bien: Inicio Entero: x, y x=1 Mientras x <= 3 y=1 Mientras y <= 3
Escribe x Escribe y y=y+1 Fin_Mientras Interno
x=x+1 Fin_Mientras Externo Fin
x
y
1 1 1 2 2 2 3 3 3
1 2 3 1 2 3 1 2 3
El mismo algoritmo puede simplificarse mucho anidando dos ciclos Para. Realiza la prueba de escritorio de esta nueva solución: Inicio Entero: x, y Para x = 1 hasta 3 Para y = 1 hasta 3
Escribe x Escribe y Fin_Para Interno
Fin
68
Fin_Para Externo
x
y
1 1 1 2 2 2 3 3 3
1 2 3 1 2 3 1 2 3
Ciclos anidados
19 Actividad
1.
Utilizando ciclos anidados, escribe el algoritmo para generar las siguientes parejas de enteros. x 2 2 3 3 4 4 5
2.
y 0 1 0 1 0 1 0
Inicio Entero x, y Para x = 2 hasta 5 Para y = 0 hasta 1 Si x = 5 y y = 1 Terminar algoritmo Si no Mostrar x Mostrar y Fin si Fin para Fin para Fin
Utilizando ciclos anidados generar las siguientes parejas de números. Puedes usar una variable auxiliar para llevar la cuenta de las repeticiones en el ciclo interno. x 4 4 4 5 5 5 6 6 6
y 1 2 3 4 5 6 7 8 9
Inicio Entero x, aux, y = 1 Para x = 4 hasta 6 Para aux = 1 hasta 3 Mostrar x Mostrar y y+=1 Fin para Fin para Fin
Programación
69
3.
Utilizando tres ciclos anidados generar las siguientes ternas de números x
y
z
1 1 1 1 1 1 2 2 2 2 2 2
1 1 1 2 2 2 1 1 1 2 2 2
1 2 3 1 2 3 1 2 3 1 2 3
Inicio Entero: x, y, z Para x = 1 hasta 2 Para y = 1 hasta 2 Para z = 1 hasta 3 Mostrar x, y, z Fin para Fin para Fin para Fin
Pseudocódigos con varias estructuras Ahora que has estudiado y practicado las estructuras básicas, seguramente has descubierto que cualquiera de ellas se puede utilizar en combinación con otras estructuras para lograr tareas más interesantes. Veamos un ejemplo. Se desea crear un programa de un juego que consiste en adivinar un número secreto aleatorio entre 0 y 100. El usuario intenta adivinar dando un número X y el programa le dice si su intento es mayor, menor o igual al número secreto. El usuario hace los intentos necesarios hasta que adivine el número. Pseudocódigo para jugar al número secreto: Inicio
Entero: secreto secreto = número aleatorio entre 0 y 100. Pedir al usuario un número x
Mientras X <> Secreto Si X > Secreto mostrar el mensaje “Te pasaste.” Si X < Secreto mostrar el mensaje “Te falta.” Pedir al usuario un número X. Fin Mientras
Fin Mostrar el mensaje: “Adivinaste el número”
70
Prueba de escritorio
20 Actividad
Realiza una prueba de escritorio del pseudocódigo para jugar al número secreto. Intenta ver cómo funcionará el programa con un número secreto dado y realizando diferentes intentos.
Secreto = 70 x = 50 x = 60 x = 80 x = 75 x = 65 x = 72 x = 70
Te falta Te falta Te pasaste Te pasaste Te falta Te pasaste Adivinaste el número
Repaso de pseudocódigos
21
Actividad
Transcribe a pseudocódigo los siguientes algoritmos: 1. Escribe en pseudocódigo el algoritmo que te permite encender un vehículo
Inicio Tipo = Asignar tipo de vehículo Abrir puerta del vehículo Entrar al vehículo Si vehículo = estándar Pisar el clutch Si vehículo = automático Verificar que esté en Parking Insertar la llave en la ranura Hacer Girar la llave Hasta que el vehículo enciende Fin
Programación
71
2.
Escribe en pseudocódigo el algoritmo que te permite hacer un pastel.
Inicio Comprar ingredientes Para i = 1 hasta total ingredientes tazón + = ingrediente i Vaciar la mezcla en un molde Prender el horno Meter el pastel al horno Hacer Esperar 5 minutos Abrir el horno Hasta que el pastel esté listo Sacar el pastel Decorar el pastel Fin 3.
Escribe en pseudocódigo el algoritmo que te permite determinar si un número es par o impar.
Inicio Entero: n Leer n Si n MOD 2 = 0 Mostrar “El número es par” Si no Mostrar “El número es impar” Fin si Fin
72
4.
Escribe en pseudocódigo el algoritmo que te permite desarrollar algoritmos.
Inicio Determinar el problema Hacer Elegir una posible solución Indicar los pasos a seguir Realizar prueba del algorítmo Mientras existan erores Corregir las fallas Realizar prueba del algorítmo Fin mientras Hasta que la solución sea satisfactoria Fin 5.
Escribe en pseudocódigo el algoritmo que te permite saber si un número es primo.
Inicio Entero: bandera, numero, i = 0 Hacer Leer numero Hasta que numero > 0 Si numero <> 0 y numero <>1 i=2 Mientras bandera = 0 e i = numero/2 Si numero MOD i = 0 bandera = 1 Fin si i=i+1 Fin mientras Fin si Si bandera = 0 Mostrar “El número es primo” Fin si Fin
Programación
73
Escribiendo pseudocódigos matemáticos 1.
Escribe el pseudocódigo de un programa que muestre en pantalla la tabla de multiplicar que pida el usuario, es decir, si el usuario teclea un 7, en la pantalla debe verse: 7X1=7 7 X 2 = 14 7 X 3 = 21... etcétera
* Debes usar un ciclo.
Inicio Entero: num, i Leer num Para i = 1 hasta 12 Mostrar num “*” i “=” num * i Fin para Fin
2.
Cuatro números dados por el usuario representan dos fracciones, donde el N1 es el numerador de la primera fracción, D1 es el denominador de la primera fracción, N2 es el numerador de la segunda fracción y D2 es el denominador de la segunda fracción. Dados estos cuatro números, escribe el pseudocódigo para obtener el numerador (N3) y el denominador (D3) de la fracción que resultaría de multiplicar las dos primeras fracciones.
Inicio Entero: N1, N2, D1, D2 Leer N1, N2 Hacer Leer D1 Hasta que D1 <> 0 Hacer Leer D2 Hasta que D2 <> 0
74
22 Actividad
Mostrar “El producto de las fracciones es” N1* N2 “sobre” D1* D2 Fin
3.
Escribe el pseudocódigo para obtener las soluciones de un sistema de dos ecuaciones con dos incógnitas, por el método de determinantes. Si tienes dudas sobre el procedimiento, consulta algún texto o un profesor de matemáticas.
Inicio Entero: x1, x2, y1, y2, b1, b2, d1, d2, d3 Mostrar “Escriba los coeficientes de la ecuación de la forma ax + by = c con a, b y c diferentes de 0” Leer x1, y1, b1 Mostrar “Escriba de la misma manera los coeficientes de la segunda ecuación” Leer x2, y2, b2 d3 = x1 * y2 - y1 * x2 d1 = b1 * y2 - y1 * b2 d2 = x1 * b2 - b1 * x2 Si d3 <> 0 Mostrar “El valor de x es:” Mostrar d1/d3 Mostrar ”El valor de y es:” Mostrar d2/d3
Programación
75
Si no Mostrar “El sistema no tiene solución” Fin si Fin
Arreglos Un arreglo es un conjunto de variables del mismo tipo a las que nos podemos referir utilizando un nombre común. Para identificar cada una de las variables de un arreglo se utiliza una posición o dirección: la dirección más baja corresponde al primer elemento y la más alta al último. Por ejemplo, los días de la semana pueden guardarse en un arreglo de tipo Cadena de 7 elementos: Semana Dirección
Valor
1 2 3 4 5 6 7 Se puede definir el arreglo de forma similar a una variable, especificando primero el tipo de dato que va a contener, seguido del nombre del arreglo. Además hay que especificar el tamaño del arreglo entre corchetes:
Tipo: nombre_arreglo [tamaño] En nuestro ejemplo, el arreglo para los días de la semana se podría definir así: Cadena: semana[7]
76
Cuando se define el arreglo, inicialmente sus elementos no contienen ningún valor. Los valores de cada miembro del arreglo se asignan prácticamente igual a como se hace con las variables. Nuestro arreglo de los días de la semana se puede llenar así: Semana
semana[1] semana[2] semana[3] semana[4] semana[5]
= = = = =
“lunes” “martes” “miércoles” “jueves” “viernes”
Dirección
Valor
1
lunes
2
martes
3
miércoles
4
jueves
5
viernes
6
sábado
7
domingo
Similarmente se puede tener acceso a cualquier elemento del arreglo sin tener que consultar los demás. Analiza por ejemplo este programa: Programa para traducir los días de la semana Inicio Fin
Cadena: semana[7] Entero: num semana[1] = “lunes” semana[2] = “martes” semana[3] = “miércoles” semana[4] = “jueves” semana[5] = “viernes” semana[6] = “sábado” semana[7] = “domingo” Escribir “Teclea un número del 1 al 7” Leer num Escribir “El día de la semana equivalente es ” Escribir semana[num]
En este ejemplo se utiliza la variable num como un índice. Los índices son todas aquellas variables que nos sirven para ubicar un elemento dentro de un arreglo. Son números estrictamente enteros debido a que hacen referencia a una posición dentro de un arreglo. Normalmente los datos de un arreglo se manejan como un conjunto. Se acostumbra trabajar con índices a través de variables de tipo entero y se utilizan ciclos para facilitar su manejo. Analiza este ejemplo: Programa para llenar un arreglo con números pares entre 2 y 100
Programación
77
Inicio Entero: ind Entero: posicion[50] Para ind=1 hasta 50 posicion[ind]= ind*2 Fin_Para Fin Arreglos Para cada uno de los ejercicios, escribe con pseudocódigo un programa que dé solución a lo que se pide. 1.
Leer las edades de 7 personas (números enteros), almacenarlas en un arreglo y determinar cuántas de esas personas son mayores de edad. Además del pseudocódigo realiza la prueba de escritorio.
Inicio Entero: edad [7], i Para i = 1 hasta 7 Leer edad [i] Fin para Para i = 1 hasta 7 Mostrar “Persona número” edad[i] “es” Si edad [i] < 18 Mostrar “Menor de edad” Si no Mostrar “Mayor de edad” Fin si Fin para Fin 1 2 3 4 5 6 7 8 10 14 18 21 25 17 i: 1,2,3,4,5,6,7,1,2,3,4,5,6,7 Persona número 1 es menor de edad Persona número 2 es menor de edad Persona número 3 es menor de edad Persona número 4 es mayor de edad Persona número 5 es mayor de edad Persona número 6 es mayor de edad Persona número 7 es menor de edad Edad
78
Actividad
23
2.
Leer 8 enteros, almacenarlos en un arreglo y determinar en qué posición del arreglo está el mayor número leído. Además escribir cuál es el número mayor del arreglo.
Inicio Entero: mayor [8], aux, M, i Para i = 1 hasta 8 Leer mayor [i] Fin para aux = 1 M = mayor[i] > M Para i = 2 hasta 8 Si mayor[i] > M aux = i M = mayor [i] Fin_si Fin para Mostrar “El número mayor es” Mostrar M Mostrar “Que se encuentra en la posición” Mostrar aux Fin
Programación
79
3.
Almacenar en un arreglo de 10 posiciones los 10 primeros números primos comprendidos entre 150 y 320. Luego mostrarlos en pantalla.
Inicio Entero: primos[10], i, cont cont = , i = 150 Mientras cont < 10 e i < 320 Si i es numero primo primos [cont] = i i ++ cont ++ Fin si Fin mientras Para i = 1 hasta contador -1 Mostrar primos [i] Fin para Fin 4.
Leer 15 números enteros, almacenarlos en un arreglo y determinar si existe al menos un número repetido.
Inicio Entero: R[15], i, j, n = 0 Para i = 1 hasta 15 Leer R [i] Fin para Para i = 1 hasta 14 Para j = i + 1 hasta 15 Si R [i] = R[j] n=1 Fin si Fin para Fin para Si n = 1 Mostrar “Existen repeticiones” Fin si Fin
80
Matrices Una matriz es un conjunto de datos del mismo tipo, organizados en filas y columnas. Piensa en una matriz como una tabla en la que cada casilla es un elemento de la matriz en que se puede almacenar un dato. Una matriz cuenta con ciertas características: Nombre. Una matriz es un conjunto de variables, por lo que debe tener nombre como identificador. Dimensión. Es la cantidad de filas y columnas que tendrá la matriz. Tamaño. El tamaño o número de posiciones de una matriz se obtiene al multiplicar el número de filas por el número de columnas. No. de Columna
No. de Fila
Una matriz se define de manera similar a un arreglo: Tipo: nombre_matriz (filas, columnas) Si suponemos que la matriz representada en la figura anterior se llama barcos, se podría definir así: Entero: barcos [4,5] Y podemos referirnos al dato que se encuentra marcado con una X así:
Nota
barcos [2,3]
Dentro de los paréntesis, siempre se indica primero el número de fila y después el número de columna.
Programación
81
Analiza este ejemplo. El objetivo es crear la siguiente matriz y almacenar en cada posición el valor que se muestra:
1
1
1
1
2
2
2
2
3
3
3
3
Programa para llenar la matriz ejemplo: Inicio Entero: fila, colum Entero: tabla [3,4] Para fila = 1 hasta 3 Para colum = 1 hasta 4 tabla [fila, colum] = fila Fin_Para Fin_Para Fin
Arreglos Escribe un programa, en formato de pseudocódigo, para cada uno de los siguientes problemas: 1.
82
Se debe crear la siguiente matriz y asignar en cada posición los valores que se muestran. Utiliza ciclos. 1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
Inicio Entero A[4,4], i, j Para i = 1 hasta 4 Para j = 1 hasta 4 Si i = j A[i, j]=1 Si no A [i, j]= 0 Fin si Fin para Fin para Fin
24 Actividad
2.
3.
Se debe crear la siguiente matriz y asignar en cada posición los valores que se muestran. Utiliza ciclos. 1
2
3
4
2
4
6
8
3
6
9
12
4
8
12
16
Inicio Entero A[4,4], i, j, N Para i = 1 hasta 4 Para j = 1 hasta 4 A[i, j]= i * j Fin para Fin para Fin
Se debe crear la siguiente matriz y asignar en cada posición los valores que se muestran. Utiliza ciclos. 2
3
4
5
3
4
5
6
4
5
6
7
5
6
7
8
Inicio Entero A[4,4], i, j, N Para i = 1 hasta 4 N=i+1 Para j = 1 hasta 4 A[i, j]= N Fin para Fin para Fin
Programación
83
4.
5.
Se debe crear la siguiente matriz y asignar en cada posición los valores que se muestran. Utiliza ciclos. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Inicio Entero A[4,4], i, j, N N=1 Para i = 1 hasta 4 Para j = 1 hasta 4 A[i, j]= N N++ Fin para Fin para Fin
Se tiene una matriz de 4 filas por 3 columnas, en la que se han almacenado 12 datos de tipo entero. Debes leer cada dato y calcular la suma de los elementos de cada fila. Utiliza algún ciclo.
Inicio Entero: A[4,3], i, j, s1 = s2 = s3 = s4 = 0 Para i = 1 hasta 4 Para j = 1 hasta 3 Fin para Fin para Leer A [i, j] Para i = 1 hasta 3 s1 + = A [1, i] Fin para Para i = 1 hasta 3 s2 + = A [2, i] Fin para Para i = 1 hasta 3 s3 + = A [3, i] Fin para Para i = 1 hasta 3 s4 + = A [4, i] Fin para Fin
84
6.
Se tiene una matriz de 4 filas por 4 columnas, en la que se han almacenado 16 datos de tipo entero. Debes determinar en qué fila y en qué columna se encuentra el número mayor.
Inicio Entero: A[4,4], i, j, m, n m = 1, n = 1 Para i = 1 hasta 4 Para j = 1 hasta 4 Si A [i, j] > A [m, n] m=i n=j Fin si Fin para Fin para Mostrar “El número mayor se encuentra en” Mostrar i “,” j Mostrar “Y tiene un valor de” Mostrar A [i, j] Fin
LProg
01
Lámina de apoyo: Glosario de conceptos algoritmos
Programación
85
Visual Basic Windows es actualmente el sistema operativo más popular del mundo.
Como tal, literalmente miles de programas, con todo tipo de objetivos, deben funcionar en esta plataforma.
Los programas se desarrollan en un lenguaje de programación y entre los más populares en la actualidad está Visual Basic. Visual Basic, además de ser un lenguaje, es un entorno de programación, es decir, es una aplicación que sirve para hacer aplicaciones. Antes de trabajar con Visual Basic, hay ciertos conceptos que debes analizar y comprender para así tener un manejo más rápido y sencillo del entorno de programación en sí. En esta sección analizaremos los principales conceptos básicos necesarios, para posteriormente entrar de lleno al análisis de la herramienta.
¿Por qué Visual Basic?
Las interfaces gráficas han cambiado la industria de las microcomputadoras. Una interfaz gráfica (GUI o Graphic User Interface) es mucho más sencilla y atractiva para los usuarios (especialmente los principiantes) que los viejos símbolos y comandos del D.O.S. En vez del críptico C:> (que era el único símbolo que veía el usuario en su pantalla al encender la PC) tenemos ahora un escritorio virtual lleno de íconos, ventanas, menús y botones.
Aún más importante que cómo se ven las aplicaciones de Windows, es cómo se sienten estas aplicaciones. Todas las aplicaciones para Windows tienen una interfaz o entorno de trabajo consistente, de manera que un usuario puede concentrarse en usar la aplicación, en vez de aprender a usar la interfaz. En otras palabras, no importa si trabajas en Word Perfect, Corel Draw, Paint, Auto Cad, Lotus Notes o Excel: la forma de trabajar con las ventanas, cuadros de diálogo, botones, menús y demás elementos gráficos es siempre la misma. Los usuarios quieren aplicaciones fáciles de aprender, que les permitan ser más productivos. La primera versión de Visual Basic apareció en 1991. Antes de su existencia programar aplicaciones para Windows era mucho más complicado que programar aplicaciones para D.O.S. Al programar para un ambiente gráfico, el programador tenía que preocuparse por todos los pequeños detalles, por ejemplo, la creación de ventanas o cuadros de diálogo, los movimientos del ratón, los clics o dobles clic, etcétera. Para desarrollar una aplicación se necesitaban programadores realmente expertos para escribir miles de líneas de código.
Visual Basic se creó como una solución a estos problemas. Es un lenguaje
de programación con un enfoque completamente distinto, basado en los elementos gráficos más que en una secuencia de líneas de programa. Permite agregar menús, botones, cajas de texto, check boxes, múltiples ventanas y prácticamente todos los elementos gráficos con los que nos topamos al trabajar con Windows. Visual Basic es hoy, quizás el lenguaje de programación más popular y una herramienta de desarrollo profesional realmente poderosa.
LProg
02
Lámina de apoyo 02: ¿Por qué Visual Basic? (historia de Visual Basic)
Propiedades, Métodos y Eventos
Observa cualquier cuadro de diálogo de Windows. En estas ventanas hay una serie de objetos, como botones, cajas de texto o menús, con los que el usuario puede interactuar. Tres cosas definen a todos los objetos: tienen Propiedades, tienen Métodos y responden a Eventos. Propiedades: Las características de un objeto son sus propiedades. Las propiedades determinan la apariencia y comportamiento de los objetos. El color de pelo, la estatura y la edad de una persona son propiedades de esa persona.
Programación
87
En Windows, el color de un botón, sus dimensiones o el texto que muestra, son propiedades de ese botón. Métodos: Los métodos son las cosas que un objeto sabe hacer. Son procedimientos provistos por el objeto. En la analogía con una persona, algunos métodos serían caminar, hablar o dormir. Un programador no necesitaría decirle a una persona cómo caminar; solamente debe decirle cuándo hacerlo. En Windows, una ventana “sabe” minimizarse y maximizarse y basta con que el programador le indique cuando debe hacerlo, invocando estos métodos. Eventos: Los objetos responden a eventos, es decir, a acciones que ocurren sobre ellos o en el entorno que los afecta. En nuestra analogía, una persona responde a eventos como tocarla o gritarle. En Windows, un botón responde, por ejemplo, al evento Clic o al evento Doble Clic.
Propiedades, métodos y eventos 1.
Escribe 3 propiedades, 3 métodos y 3 eventos de una persona adulta: Propiedades:
2.
Métodos:
comer, correr, dormir
Eventos:
hablarle, tocarla, saludarla
Escribe 3 propiedades, 3 métodos y 3 eventos de una lámpara: Propiedades:
88
color de cabello, estatura, edad
tamaño, color, costo
Métodos:
encender, apagar, modificar intensidad
Eventos:
conectar, desconectar, apretar botón de encendido
25 Actividad
3.
Escribe 3 propiedades, 3 métodos y 3 eventos de una lavadora de ropa: Propiedades:
tamaño, capacidad, marca
Métodos:
lavar, enjuagar, secar
Eventos:
llenarla de agua, añadir suavizante, seleccionar un ciclo de lavado
Programación por Eventos vs. Programación Estructurada Visual Basic se deriva del obsoleto lenguaje Basic, que es un lenguaje de programación estructurada, tal como C o Pascal. Sin embargo Visual Basic
utiliza el modelo de Programación por Eventos.
En la Programación Estructurada (también llamada lineal, descendente o de funciones) las líneas de programa de la aplicación determinan cómo se ejecuta ésta. Un programa comienza con la primera línea de código y sigue una secuencia predeterminada a través de la aplicación. En la Programación por Eventos, el programa no sigue un flujo predefinido, sino que ejecuta diferentes porciones de código como respuesta a eventos. Los eventos pueden resultar de la acción del usuario, mensajes del sistema, de otra aplicación o del mismo programa.
Tipos de Programación
Actividad
26
Realiza una investigación acerca de las características, ventajas y desventajas de la programación orientada a objetos y eventos, comparada con la programación estructurada tradicional. Anota los principales aspectos que definen a cada una y escribe al final conclusiones personales. Programación por Eventos
Programas típicos de Windows: Una vez iniciado el programa se queda en espera de las acciones del usuario. Un gran número de tareas se realizan sin escribir código, simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla.
Programación
89
Programación Estructurada
Se utilizan tres estructuras: Secuencial: Si las instrucciones se ejecutan una tras otra a modo de secuencia. Selectiva: Permite la realización de una instrucción u otra según un criterio. Herativa: Hace que se repitan instrucciones mientras se cumpla una condición.
Conclusiones
Con los años, la programación va evolucionando para que nosotros, como realizadores de aplicaciones, lo hagamos de manera más fácil y mejor, sin embargo, a veces es necesario basarnos en modelos anteriores de programación para solucionar nuestros problemas.
¿Cómo se programa en Visual Basic? La creación de un programa Visual Basic siempre tiene el mismo enfoque.
Recuerda que antes de crear cualquier programa, debes comprender el problema que se quiere resolver y tener claro el algoritmo de solución. Los pasos para hacer un programa en Visual Basic son: 1. 2. 3. 4. 5.
Comprender el problema Diseñar la solución en papel Crear el entorno gráfico Establecer las propiedades de los controles Programar cómo responderán estos controles a los eventos (escribir código)
Visual Basic trabaja a través de proyectos. Un proyecto de Visual Basic almacena toda la información para la creación de tu programa. La extensión del archivo de cada proyecto en Visual Basic es *.vbp (Visual Basic project), que contiene la definición de todo el proyecto. De la misma manera que se genera este archivo, también se genera un archivo por cada formulario que insertes en tu proyecto, con la extensión *.frm (form). Es recomendable crear una carpeta donde guardes todos los archivos generados; esto evitará confusiones con otros archivos creados en diferentes proyectos. Al abrir por primera vez la aplicación, te aparecerá una ventana que te permite crear nuevos proyectos, abrir proyectos existentes, o bien, trabajar con alguno de los archivos recientes. Las imágenes siguientes muestran cada una de estas opciones:
90
Durante este curso crearemos únicamente archivos ejecutables estándar (Standard EXE).
Progr
01
Nuevo Proyecto
El entorno de Visual Basic Formulario
Un formulario es una ventana que se muestra durante la ejecución de un programa. Un formulario puede contener menús, botones, cuadros de lista o cualquier objeto común para las aplicaciones desarrolladas para ambiente Windows. A estos objetos se les llama controles. Al iniciar un nuevo proyecto aparecerá por default un formulario en blanco “Form1”, donde podrás insertar los controles que utilizarás para tu programa. Este formulario cuenta con una rejilla delimitada por puntos, que sirve para alinear los objetos dentro de tu formulario.
Cuadro de herramientas
El cuadro de herramientas contiene controles o elementos que podrás añadir para crear la interfaz del usuario (formulario). Después de agregarlos podrás programar estos elementos para que realicen tareas especiales. No
Programación
91
todos los controles aparecen activados en el Cuadro de herramientas, sólo los más comunes. Si requieres usar algún control que no esté visible, lo puedes activar a través del Menú Project/Components… Para insertar un control simplemente da doble clic sobre él y se convertirá en un objeto dentro del formulario activo. Estos objetos estarán visibles para el usuario al momento de ejecutar el programa y a través de ellos los usuarios podrán ejecutar las instrucciones que has programado en estos objetos.
Label Check Box
Text Box Command Button Option Button
Ventana de propiedades
La ventana de propiedades te permite cambiar las características o la configuración de los objetos insertados en tu proyecto. Cada uno de los elementos cuenta con un conjunto de propiedades. Podrás definir las propiedades durante el diseño utilizando la ventana de propiedades. También puedes modificar las propiedades durante la ejecución de un programa, mediante código. Por ejemplo, a una etiqueta de texto podrás cambiarle el tipo de letra, tamaño, color, etcétera. Es posible modificar estas propiedades desde esta ventana de propiedades, o bien, puedes programar un control que aplique este formato a la etiqueta durante la ejecución del programa. Cada objeto tiene sus propias propiedades que pueden ser configuradas. Para activar la ventana de propiedades Selecciona el Menú View/Properties Window o la tecla de función . La ventana de propiedades se encuentra dividida en tres partes:
1 En la parte superior se indica con negrita el nombre del objeto que tenemos seleccionado y al cual se cambiará alguna propiedad.
2 En la parte del centro se indican las propiedades que se pueden modificar al objeto seleccionado. Éstas se pueden visualizar en orden alfabético (Alphabetic) o por categorías (Categorized). Del lado izquierdo aparece el nombre de cada propiedad y a su derecha el valor asignado a dicha propiedad.
92
3 En la parte inferior aparece una pequeña descripción de la propiedad seleccionada.
1
2
3 Un ejemplo es la propiedad que indica a Windows cómo debe mostrar el formulario. Esta propiedad se llama WindowState y se le pueden asignar tres valores: 0- Normal. El formulario se muestra con su ancho y alto definidos. 1- Minimized. En este estado se minimiza el formulario. 2- Maximized. En este estado se maximiza el formulario.
La ventana de proyectos
La ventana de proyectos lista todos los archivos utilizados para un programa y permite acceder a su contenido utilizando los botones especiales: Ver Código y Ver Objeto <Shift + F7> para cualquier elemento seleccionado.
Programación
93
Podrás añadir o eliminar archivos desde esta ventana. El archivo que almacena toda la información relativa a todos los demás elementos y archivos del programa, se le llama archivo de proyecto de Visual Basic (con extensión .vbp). En las versiones 5 y 6 de Visual Basic es posible cargar varios archivos de proyecto y cambiar de uno a otro sin ningún problema.
Añadir controles al formulario
Los controles más usados son las etiquetas Label, las cajas de texto TextBox, los botones CommandButton, las listas de texto ListBox, las listas desplegables o colgantes ComboBox, las casillas de verificación CheckBox, los botones de opción Option o RadioButton y por último los controles que suelen hacer de contenedores de otros controles, como los marcos Frame y los cuadros de imágenes PictureBox.
Formulario En el formulario se pintan los controles que formarán el entorno del programa que se está creando. Label Se usa para incluir textos simples o mensajes. Text Se usa para admitir entrada de texto del usuario. Command Button. Los botones responden a eventos como Clic, doble clic y otros que permiten ejecutar acciones.
Option Button Permitirán al usuario elegir sólo una de las opciones disponibles. Incluye el texto descriptivo. Check Box Permitirán al usuario elegir una o varias opciones. Incluyen el texto descriptivo.
La manera más sencilla de insertar un control es dando doble clic sobre su icono en el cuadro de herramientas. El control se insertará en el centro del formulario con un tamaño predeterminado. Otra forma sería seleccionar el control y arrastrar sobre el formulario para dibujarlo en la posición y el tamaño que deseamos que aparezca.
Progr
El entorno de Visual Basic
94
02
Identificando el entorno de trabajo
27 Actividad
Observa el MID 02 Entorno de Visual Basic e identifica cada una de las partes del entorno de este formulario. Escribe sobre la línea el nombre de cada zona. 1.
3.
Cuadro de herramientas 4. 2.
Ventana de proyectos
Panel de propiedades
Área de trabajo (formulario)
Preparando el formulario para la programación Convenciones para nombrar los objetos
Observa que el diseñador de formularios de Visual Basic asigna un nombre a cada control insertado siguiendo una nomenclatura, por ejemplo, al insertar una etiqueta le asigna el nombre de “Label1”; si insertamos otra etiqueta le asignará “Label2” y así sucesivamente. Este nombre es importante ya que identifica al objeto. Cuando en un formulario hay muchos controles se hace difícil recordar el nombre de cada uno de ellos. Afortunadamente todos los objetos tienen la propiedad Name. Cambiando el valor de la propiedad Name puedes cambiar el nombre de los objetos.
Programación
95
Aunque hay pocas restricciones en cuanto al nombre que le puedes dar a los objetos, es muy conveniente apegarse a algunas reglas y convenciones aceptadas mundialmente en programación, mismas que usaremos en este curso. Estudia la siguiente tabla de convenciones para nombrar los
objetos:
Control
El nombre empezará con:
Label
lbl
TextBox
txt
Command Button
cmd
Option Button
opt
Check Box
chk
Form
frm
Combo Box
combo
List Box
list
Identificando objetos por su nombre
28 Actividad
Suponiendo que un programador sigue las normas para nombrar los controles, identifica a qué objeto se refiere cada uno de los siguientes nombres. frmBienvenida lblInstrucciones chkCanto optMasculino txtNombre cmdAceptar lblTitulo cmdSalir optFemenino chkDeportes txtApellido
form label check box option button text box button label button option button check box text box
Cambiar el tamaño y posición de los controles
Podrás cambiar el tamaño de los controles insertados en el formulario. Al ser seleccionado el control aparecen a su alrededor unos cuadros que te permiten cambiar de manera manual el ancho y alto del control dando clic sostenido sobre ellos y arrastrando el ratón.
96
Otra manera de cambiar el tamaño es desde la ventana de propiedades: la propiedad Height te permite cambiar el alto del control y la propiedad Width te permite cambiar el ancho. Estas opciones te permiten definir un tamaño preciso, por ejemplo cuando deseas que varios objetos tengan exactamente las mismas dimensiones.
En la opción Format/Make Same Size encontrarás las herramientas necesarias para que varios objetos sean del mismo tamaño y de la misma altura del último objeto seleccionado.
Para cambiar la posición del control en el formulario sólo tendrás que arrastrarlo. También en las propiedades del objeto está la propiedad Left que te permite establecer a qué distancia del margen izquierdo se posicionará el objeto y la propiedad Top establece a qué distancia del margen superior de tu formulario se ubicará el control. Si visualizas la ventana de propiedades por categorías, encontrarás estas opciones en la clasificación Position.
Cuando trabajas con muchos objetos y deseas que éstos ya no se muevan de su lugar, debes usar la opción Format/Lock Controls. Para desbloquear el objeto, ejecuta nuevamente la misma acción.
Programación
97
Progr
03
Cambiar el tamaño y posición de los controles
Creando una interfaz gráfica 1.
Inicia en Visual Basic un nuevo proyecto EXE estándar. En esta actividad vas a crear la interfaz de un programa que suma dos números. Observa la figura.
Importante: Al crear varios controles del mismo tipo, NO uses copiar
2. 3.
y pegar, porque se crearía una matriz de controles en vez de controles independientes. Crea por separado cada control. En un formulario vacío agrega el primer control Label. Teniendo este control seleccionado en el formulario, busca la propiedad Caption en la ventana de Propiedades. Modifica el valor de la propiedad Caption a Número 1.
4.
Agrega el segundo control Label y cambia su propiedad CAPTION.
5.
Crea también un tercer control Label que mostrará el resultado de la suma.
6.
Dibuja en el formulario la primera caja de texto (TextBox).
7.
Seleccionando la caja de texto que acabas de agregar, busca en la ventana de Propiedades la propiedad Text y asígnale un valor Vacío. La propiedad Text determina el texto contenido en la Caja de Texto: queremos borrar lo que haya en esa propiedad para eliminar el texto del control.
98
Actividad
29
8.
Agrega la segunda caja de texto y cambia su propiedad Text a vacío (borra su contenido).
9.
Dibuja ahora un Command Button y asígnale la palabra Sumar por medio de la propiedad Caption. Si deseas que alguna letra de la palabra Sumar quede subrayada y funcione como Hot Letter, utiliza el símbolo & antes de esa letra. En nuestro ejemplo, la propiedad Caption del botón tiene el valor: &Sumar.
10. Por último selecciona el formulario haciendo clic sobre él sin tocar ninguno de los controles. Cambia la propiedad Caption del formulario para poner un título a la ventana “Programa de Sumas”. 11. Cambia la propiedad Back color del formulario. Haz que sea de un color llamativo. 12. Cambia la propiedad Back color de las dos etiquetas para que su color coincida con el del formulario. Utiliza la misma propiedad de la etiqueta para el resultado para que resalte de los demás controles. 13. Guarda primero el formulario terminado mediante el comando Menú File/Save Form1, en la carpeta que el profesor te indique, con el nombre sumas.frm. 14. Ahora guarda el proyecto que contiene al formulario en la misma carpeta con el comando Menú File/Save Project. Dale el nombre sumas.vbp. 15. Recuerda la ubicación de estos archivos, pues los usaremos en la siguiente actividad.
La notación Punto Recuerda que en Visual Basic los objetos tienen Propiedades, tienen Métodos y responden a Eventos. En el código de Visual Basic se utiliza la
notación punto siempre que se desea hacer referencia a las propiedades y a los métodos de un objeto. La notación Punto tiene la siguiente sintaxis: objeto.Propiedad
objeto.Método donde objeto es el nombre del objeto en cuestión y Propiedad o Método es la propiedad o método al que queremos hacer referencia. Usando la notación punto podrías pedir a una persona que camine con una instrucción como: Juan.camina En este ejemplo Juan es el nombre de la persona y camina es un método (algo que sabe hacer). Podrías hacer que el color de un gráfico fuera rojo con una instrucción como: Pelota.color = rojo
Programación
99
En este caso Pelota es el nombre del gráfico y color es una propiedad, a la que se le asigna el valor rojo. En Visual Basic, por ejemplo, para referirnos a la propiedad Caption de una etiqueta llamada Label1, usaríamos la sintaxis: Label1.Caption. De forma similar, para referirnos a la propiedad Text de una caja de texto llamada Text1, usaremos la sintaxis: Text1.Text. Veamos un ejemplo concreto: En un formulario hay una etiqueta llamada Label1. La instrucción para que la etiqueta muestre el texto “Hola América” es: Label1.Caption= “Hola América”
Código
Hemos visto que la notación punto se usa para referirnos a propiedades y métodos de los objetos. ¿Qué pasa con los eventos? En Visual Basic el código se escribe dentro de los eventos, pues las acciones ocurren cuando se dispara algún evento en algún control. Algunos eventos que pueden ocurrir sobre un control son: hacer clic sobre él, seleccionarlo o arrastrarlo. Imagina la interfaz que creaste para sumar dos números: la suma debe realizarse cuando el usuario presione el botón de Sumar, por lo tanto, es necesario escribir instrucciones dentro del evento Clic del botón de Sumar. Para entrar a la ventana de código se puede hacer doble clic sobre cualquier control en el formulario, o presionar la tecla . Esta ventana tiene 2 menús colgantes: El primer menú presenta una lista de todos los objetos contenidos en el formulario, incluyendo el formulario mismo.
El segundo menú muestra una lista de todos los eventos a los que responde el objeto seleccionado en el primer menú.
100
Cuando seleccionas un objeto en el menú izquierdo y un evento en el menú derecho, aparecen automáticamente dos líneas de código del tipo:
Private Sub OBJETO_EVENTO() End Sub
donde OBJETO es el nombre del objeto para el que se escribirá el código y EVENTO es el nombre del evento en que quieres que se ejecute ese código. El código debe escribirse en medio de estas dos líneas. Al escribir código, siempre toma en cuenta esta secuencia para facilitar tu trabajo. 1.
Antes de escribir código revisa los nombres de todos los objetos (propiedad Name) y utiliza la convención para nombrar los objetos. Da a cada control un nombre descriptivo apropiado.
2.
Abre la ventana de código (con ).
3.
Selecciona de la lista de objetos el elemento que quieres programar.
4.
Selecciona de la lista de eventos el evento requerido.
5.
Escribe el código en el espacio apropiado, por ejemplo:
Nombre del objeto Verifica que el proyecto a programar sea el adecuado.
Private Sub cmdAceptar_Click() Instrucciones Escribe aqui el código a ejecutar.
End Sub
Evento El código se ejecutará cuando este evento le ocurra al objeto en cuestión.
Progr
04
Código
Programación
101
Haciendo que funcione el programa
Actividad
1.
Abre el proyecto Sumas.vbp que creaste en la actividad anterior.
2.
Ejecuta el programa con Menú Run/Start. Intenta realizar una suma. ¿Qué sucede? ¿Por qué?
Nada, no existe código a realizar al hacer clic sobre el botón. 3.
Renombra (cambia la propiedad Name) los siguientes objetos como se indica: a. A la primera caja de texto nómbrala txtNum1 b. A la segunda caja de texto nómbrala txtNum2 c. Al botón nómbralo cmdSumar d. A la etiqueta que contendrá el resultado de la suma nómbrala
lblResultado
4.
Recuerda el objetivo del programa. Queremos que al presionar el botón de comando cmdSumar el programa sume las cantidades que se encuentren en las cajas txtNum1 y txtNum2. El resultado quedará en la etiqueta lblResultado. El código es muy simple: usando la notación punto, haremos: lblResultado.Caption = val(txtNum1.Text) + val(txtNum2.Text)
En este caso utilizamos la función val() para convertir el texto en cada una de las cajas de texto a un número. Sin ella, nuestro programa simplemente juntaría las dos cadenas de texto en una sola. La acción se debe ejecutar al presionar el botón, por lo tanto, debe estar dentro del evento clic del botón. 5.
Haz doble clic sobre el botón de comando cmdSumar para entrar a la ventana de código. Revisa que las líneas que se muestran son: Private Sub cmdSumar_Click ( ) End Sub Si no ves estas líneas, selecciona las opciones adecuadas de los menús de la ventana de código.
6.
Teclea el código entre las líneas. El evento completo queda así: Private Sub cmdSumar_Click ( ) lblResultado.Caption = val(txtNum1.Text) + val(txtNum2.Text) End Sub
7.
Ejecuta el programa con Menú Run/Start y prueba que funcione correctamente.
8.
Guarda el programa terminado.
9.
Contesta las siguientes preguntas: a. ¿Es posible sumar números negativos? Da un ejemplo.
Sí, -1 + (-2) = -3
102
30
b. ¿Qué sucede si en vez de números intentas sumar dos palabras? Da un ejemplo.
Variables Ya hemos visto lo que es una variable. Puedes pensar en las variables como en ubicaciones temporales en la memoria para almacenar información dentro de un programa. Una variable puede almacenar números, palabras, fechas o propiedades. Una variable también puede almacenar información introducida por el usuario o el resultado de algún cálculo. Para guardar un dato en una variable, se debe escribir su nombre, utilizar el signo de igual “=” e indicar el valor o la información que almacenará. Por ejemplo, podemos usar una variable que almacene la edad de una persona como: Edad=24 Cuando queramos guardar en una variable una palabra, una frase o cualquier tipo de información alfabética, tendremos que indicarlo poniendo dicha información dentro de comillas dobles, por ejemplo: Nombre= “Angelina” Aunque para Visual Basic, el nombre de variable que elijas no significa nada, es recomendable elegir nombres que sean representativos para ti y que te faciliten identificar los valores que cada variable contiene.
Tipos de datos
Básicamente existen dos tipos de datos: los Numéricos (que sólo son números) y los Alfanuméricos (que pueden almacenar cualquier caracter). Las variables numéricas tiene cuatro tipos básicos: enteros, enteros largos, simples y dobles. Cada uno de ellos tiene características especiales. Por su lado, los textos también se pueden guardar en diferentes tipos de variables. El espacio de memoria que ocupa cada tipo de variable es diferente.
Programación
103
Tipo
Se usa para
Espacio ocupado
Representación
Integer (Entero)
Valores numéricos sin decimales, desde -32,768 hasta 32,767.
2 bytes
%
Long integer (Entero largo)
Valores enteros desde -2,147,483,648 hasta 2,147,483,647.
4 bytes
&
Single Precision
Valores numéricos desde -3.4028 E+38 hasta 3.4028E+38.
4 bytes
!
Double Precision
Valores numéricos desde -1.79769E+308 hasta 1.79769E+308.
8 bytes
#
Currency (Monetario)
Permite almacenar números de tipo moneda, con dos decimales
8 bytes
@
String (Cadena)
Puede contener de 0 a 32,000 caracteres alfanuméricos. Como los valores se guardan como texto, no se pueden realizar operaciones matemáticas con ellos directamente.
1 byte por carácter
$
Boolean (Booleano)
Puede contener únicamente los valores TRUE o FALSE.
1 bit
Date (Fecha)
Contiene valores de Fecha y Hora.
8 bytes
Variant
Pude almacenar cualquier tipo de dato, inclusive objetos
variable
Aunque en Visual Basic la declaración de variables no es obligatoria, es muy recomendable que siempre declares todas las variables que vas a utilizar. Para declarar una variable se usa la instrucción Dim, seguida del nombre que se quiera dar a la variable, la palabra AS y el tipo de dato que va a guardar. Por ejemplo: Dim Dim Dim Dim Dim
X As Integer letra As String edad As Single sueldo As Double casado As Boolean
También es posible hacer la declaración utilizando el símbolo que representa a los principales tipos de variables, por ejemplo: Dim Dim Dim Dim
104
X% letra$ edad! sueldo#
Declarando variables
Actividad
31
Completa las siguientes declaraciones de variables. Escribe la parte faltante en cada sentencia. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Dim
Y as integer Dim cadena String Dim precio Dim edad
as as double simple
Dim Dim nombre Dim Dim nombre Dim cadena Dim
as calific as sexo as
$
!
Single as
integer string as Boolean
string
Asignaciones
Ahora veremos cómo se manejan las expresiones y las asignaciones en las variables. Para asignar una expresión a una variable, primero se calcula la expresión y el resultado se asigna a la variable. Por ejemplo: Dim Dim A = B =
A As Integer B As Integer 10 A * 3
El valor de la variable B de este programa sería 30, que es lo que resulta de multiplicar 10 por 3. Podríamos simplificar un poco el código y hacerlo de la siguiente manera: Dim A, B As Integer A = 10 B = A * 3 O incluso usar una sola variable: Dim A As Integer A= 10 A= A * 3 Con las variables de tipo String ocurre lo mismo, sólo que la única operación que se puede realizar con este tipo de variables es la suma o concatenación. Observa los siguientes ejemplos: Dim Num1, Num2 as String Num1 = “5” Num2 = “3” Num1 = Num1 + Num2 El resultado del valor final de Num1 es 53, es decir la unión de las dos cadenas. El mismo resultado se obtiene con el operador de concatenación &, por ejemplo:
Programación
105
Dim Num1 As Integer Dim Num2 As Integer Num1 = 5 Num2 = “3” Num1 = Num1 & Num2 El resultado final de Num1 será 53. El operador & es muy útil; incluso si declaráramos las variables Num1 y Num2 como numéricas el resultado sería “53” ya que uniría el contenido textual de las dos variables.
TIP La declaración de variables es muy importante. Por eso es que te recomendamos activar la opción Menú Tools/Options… /Require Variable Declaration. Esto hace que la declaración de variables sea obligatoria, agregando la instrucción Option Explicit a todas las ventanas de código. Otra ventaja de activar esta opción es que, si escribes mal una variable que has declarado, Visual Basic mostrará una advertencia. Así evitarás muchos errores simples. Una variable puede tener estas coberturas: - Privada o Local a nivel de procedimiento (Sub, Function, etcétera) - Privada o Local a nivel de módulo (FRM, BAS, etcétera) - Pública o Global a nivel de aplicación
Variables locales
Si declaras una variable dentro de un evento o procedimiento, la variable únicamente será válida dentro de ese evento o procedimiento, es decir, no podrás hacer referencia a esa variable fuera del evento donde fue declarada. Esto se conoce como variable local.
Analiza este ejemplo: Programamos un botón que calcula la suma de dos dígitos cuando el usuario de un clic sobre él. El resultado se almacenará en una variable que llamaremos resultado. En este ejemplo, las variables sólo están disponibles dentro de este procedimiento “Private Sub cmdSumar_Click()”. Private Sub cmdSumar_Click () ‘Declaración de variables locales Dim numero1 As Integer Dim numero2 As Integer Dim resultado As Integer ‘Calcular la suma de las dos variables resultado = numero1 + numero2 End Sub
Variables globales
Si declaras una variable en la sección de Declaraciones Generales de la ventana de código, la variable será válida en todos los eventos o procedimientos del programa. Esto se conoce como variable global.
106
Analiza este ejemplo: Programaremos un botón que calcule la suma de dos dígitos cuando el usuario de un clic sobre él. El resultado se almacenará en una variable que llamaremos resultado. En este ejemplo, las variables están disponibles en cualquier lugar del programa. Option Explicit ‘Declaración de variables globales Dim numero1 As Integer Dim numero2 As Integer Dim resultado As Integer Private Sub cmdSumar_Click () ‘Calcular la suma de las dos variables resultado = numero1 + nuemro2 End Sub Declaración y asignación de variables
32 Actividad
1.
Abre Visual Basic.
2.
Crea un nuevo proyecto Standard EXE y guárdalo con el nombre mensaje.vbp, en la carpeta que te indique el profesor.
3.
Inserta un botón y una etiqueta. Alinéalos al centro seleccionándolos y usando el Menú Format/Center in Form/Horizontally.
4.
Nómbralos como cmdAccion y lblMensaje, respectivamente.
5.
Asigna a cada objeto las siguientes propiedades: Objeto Form1
Propiedad Caption Start Up Position
lblMensaje
2- CenterScreen
Caption
Nombre
AutoSize
True
Font Alignment cmdAccion
Valor Nombre
Caption
Arial, 10, negrita 2-Center Introducir nombre
Programación
107
6.
Da doble clic sobre el botón y escribe el siguiente código (la primera y última líneas deben estar ya en la ventana): Private Sub cmdAccion_Click () Dim mensaje, nombre mensaje = “Por favor, escribe tu nombre” nombre = InputBox$(mensaje) lblMensaje.Caption = nombre End Sub Tu formulario debe de quedar como en la imagen que se muestra en el punto 3.
7.
Ejecuta el programa y da clic en el botón.
8.
Escribe tu nombre en el cuadro de diálogo que aparece.
9.
Realiza una prueba de escritorio explicando cómo funciona el programa, línea por línea. Continua a partir de donde se queda la explicación: Primero se declaran las variables mensaje y nombre con la instrucción Dim A la variable mensaje se le asigna el texto “Por favor, escribe tu nombre” Después
A la variable nombre se le asigna la cadena de texto que el usuario escriba en una caja de texto. A la propiedad caption de la etiqueta lblMensaje se le asigna el valor de la variable nombre.
La función InputBox$() se usa para desplegar un campo donde el usuario puede escribir un valor. El valor que introduzca el usuario se debe guardar en alguna variable, que está a la izquierda del signo de igual. Entre el paréntesis se escribe un mensaje o instrucción para el usuario. Además puedes poner un título al cuadro de diálogo. Por ejemplo: edad = InputBox$(“Escribe tu edad”, ”Solicitud de edad”)
108
Nota
La importancia de las variables
Actividad
33
Define los siguientes términos. Expresa con claridad las ideas, de modo que una persona no familiarizada con programación las pueda comprender. 1.
¿Qué es una Variable?
2.
¿Qué es una Variable numérica?
3.
¿Qué es una Variable Alfanumérica?
4.
¿Por qué es importante la declaración de Variables?
5.
¿Qué es una Variable Local?
6.
¿Qué es una Variable Global?
Una ubicación en memoria que contiene un valor y puede cambiarlo por las instrucciones de un programa. Una variable cuyo valor puede ser únicamente un número. Una variable cuyo valor puede ser un número o una letra. Para reservar espacio en memoria antes de la ejecución del programa. Una variable que sólo puede ser utilizada dentro del mismo objeto o función en que fue definida. Una variable que puede ser utilizada en cualquier parte del programa.
Programas para Ciencias exactas
34 Actividad
1.
Crea por separado los siguientes 3 programas. Los programas deben funcionar correctamente y tener una interfaz agradable y bien presentada. Comprende las ecuaciones necesarias para realizar las conversiones. Debes utilizar variables para guardar los datos. a. Un programa que reciba la longitud de un lado y dé como resultado el área de un cuadrado, el perímetro de un cuadrado y el volúmen de un cubo con ese lado. b. Un programa que convierta centímetros a pulgadas y viceversa. 1 pulgada = 2.54 cm. c. Un programa que reciba la magnitud y ángulo de un vector y dé como resultado las componentes X y Y de ese vector. Consulta en la ayuda del programa cómo se utilizan las funciones seno y coseno. Recuerda que la componente X = Magnitud * coseno (ángulo) y la componente Y = Magnitud * seno (ángulo).
Programación
109
Constantes Una constante es un nombre significativo que contiene el valor de un número o una cadena de texto que no cambia. Funciona de forma muy similar a una variable con la diferencia de que su valor no cambia durante la ejecución del programa. La manera de declarar una constante en Visual Basic es utilizando la palabra clave Const, por ejemplo para asignar el valor 3.1416 a una constante que se llame Pi, puedes escribir: Const Pi=3.1416 Si deseas que esa constante esté disponible para todos los objetos y procedimientos del programa, debes preceder la declaración con la palabra Public, por ejemplo: Public Const Pi=3.1416
Declaración de Constantes
35 Actividad
1.
Crea un nuevo proyecto Standard EXE y guárdalo con el nombre
Constante.vbp, en la carpeta que te indique el profesor.
2.
Inserta 6 etiquetas y colócalas como se ve en la imagen. Las etiquetas tienen la fuente Arial, 12 puntos, negrita y AutoSize.
3.
Renombra las 3 etiquetas de la derecha como: lblPi, lblRadio y lblArea.
4.
En el evento Form_Load introduce el siguiente código:
110
Private Sub Form_Load() Const Pi = 3.1416 Dim radio, area radio = InputBox$(“Por favor introduce el valor del radio”, “Radio”) area = Pi * (radio ^ 2) lblPi.Caption = Pi lblRadio.Caption = radio lblArea.Caption = area End Sub
Los objetos deben tener los siguientes valores en sus respectivas propiedades: 5.
Ejecuta el programa correctamente.
6.
Contesta:
con
y
prueba
que
funcione
a. ¿Por qué las instrucciones se ejecutan de inmediato, sin presionar ningún botón?
Porque se ejecutan cuando el formulario se carga.
b. ¿Si después de obtener un resultado, quieres calcular el área de otro círculo, qué tienes que hacer?
Volver a ejecutar el programa.
c. ¿Qué cambios podrías hacer al programa para poder calcular el área de varios círculos, uno después de otro?
Que las instrucciones se ejecuten al presionar un botón y así se podrán ejecutar las veces que sean necesarias sin cerrar el programa.
Nota
7.
Modifica el programa para que las instrucciones se ejecuten al presionar un botón.
8.
Guarda tu trabajo.
Windows es un sistema operativo controlado por eventos: cada vez que movemos el ratón, pulsamos alguna tecla, tocamos alguna ventana o cualquiera de los controles que hay en ella, se produce un evento. Cuando se ejecuta alguno de estos eventosse ejecuta el código insertado en dicho evento. El evento load de un formulario ocurre cuando éste se carga por primera vez durante la ejecución de un programa.
Operadores Visual Basic te permite hacer uso de operadores matemáticos para crear
fórmulas con números, variables o constantes. A continuación se muestran los operadores matemáticos:
Programación
111
+
Suma
-
Resta
* /
Multiplicación División
\
División entera
Mod ^ &
Resto o residuo de la división entera (módulo) Exponenciación (potencias) Concatenación de cadenas de texto
Cuando en una expresión se utiliza más de un operador, los cálculos se realizan siguiendo un orden jerárquico. Antes de obtener un resultado, Visual Basic evalúa la expresión para determinar en qué orden ejecutará las operaciones. La siguiente tabla indica el orden de prioridad, de la más alta a la más baja. ( ) ^ -
*/ \ Mod +-
Los valores entre paréntesis se evalúan 1ro. La exponenciación se evalúa en 2do. lugar La negación en 3er. lugar Multiplicación y División en 4to. lugar La división entera en 5to. lugar El módulo ocupa el 6to. lugar La suma y la resta se evalúan al final
Los operadores de igual prioridad se evalúan de izquierda a derecha, según aparezcan en la expresión. Cuando utilizamos varios paréntesis en una operación, se resuelven primero los paréntesis internos.
Progr
Prioridad en las operaciones
112
05
Calculadora simple
Actividad
36
Realiza la siguiente actividad: 1.
En un nuevo proyecto Visual Basic crea la siguiente interfaz gráfica. Observa que los botones de opción (OptionButton) están dentro de un marco (frame). Debes crear primero el marco y luego los controles de opción. Iguala el formato de las etiquetas. Los controles de opción tienen su propia etiqueta.
2.
Renombra los controles de texto como txtValor1 y txtValor2. La etiqueta para el resultado debe llamarse lblResultado.
3.
En la ventana de código, en la sección de Declaraciones Generales, define las siguientes variables:
4.
Dim n1, n2 As Integer
En el primer OptionButton, que corresponde a la suma, inserta en el evento click el siguiente código: n1 = txtValor1.Text n2 = txtValor2.Text lblResultado.Caption = n1 + n2
5.
De forma similar, introduce el código que permitirá restar, multiplicar o dividir los valores de las cajas de texto, en cada OptionButton.
6.
Ejecuta el programa y prueba que funcione correctamente.
7.
Guarda tu trabajo.
Programación
113
Expresiones Lógicas
La expresión lógica (conocida también como expresión booleana) es una de las más útiles para procesar información en un procedimiento. Forma parte de una sentencia de programa que realiza preguntas de tipo verdadero o falso sobre una propiedad, una variable o algún otro tipo de datos en el código del programa. Una expresión lógica es cualquiera que pueda evaluarse como verdadera o falsa. Por ejemplo: Hoy es lunes Edad < 18 A + B = 7 Todas estas expresiones se pueden evaluar como verdaderas o falsas, por lo tanto son expresiones lógicas o booleanas. La siguiente lista describe el significado de algunos operadores de comparación usados en las expresiones booleanas: Operadores de comparación =
Igual que
<>
Distinto que
> <
Mayor que Menor que
>=
Mayor o igual que
<=
Menor o igual que
Reconociendo expresiones
Actividad
1.
Para cada una de las siguientes expresiones escribe una “B” si se trata de una expresión booleana y una “N” si no es una expresión lógica. a. 57+4
N
b. 30+5=34
B
c. Juan es mayor que Liz d. La bandera nacional e. Tengo 13 años f. base*altura/2
114
B N
N
B
37
TIP La mayoría de las expresiones lógicas incluyen un operador de comparación. La excepción son las variables que ya tienen un valor verdadero o falso almacenado.
Operadores lógicos Visual Basic te permite comparar más de una expresión lógica o evaluar más
de un criterio en una sola instrucción. Para enlazar expresiones se utilizan los operadores lógicos. Éstos son los más usados: AND. Sólo si todas las expresiones son verdaderas el resultado de la expresión es verdadero. Si una sola de las expresiones es falsa, toda la expresión es falsa. Por ejemplo: Hoy es lunes AND Hoy hace frío. La expresión compuesta sólo es verdadera si
hoy es un lunes frío.
Edad > 18 AND Color = “rojo” AND Calificación > 6 AND Calificación < = 10 OR. Sólo si todas las expresiones son falsas el resultado de la expresión es falso. Si una sola de las expresiones es verdadera, toda la expresión es verdadera. Por ejemplo:
Hoy es lunes OR Hoy hace frío. La expresión compuesta sólo es falsa si hoy no es un lunes frío. Edad > 18 OR Color = “rojo” OR Calificación > 6 NOT. Si la expresión es falsa el resultado es verdadero. Si es verdadero será falsa. Por ejemplo: NOT(Edad > 18). Si la edad no es mayor que 18, la expresión es verdadera.
Uniendo expresiones
Actividad
38
1.
Escribe todos los números enteros que cumplen con las siguientes expresiones. Para facilitar el trabajo, imagina que sólo existen los enteros del 1 al 20. Analiza el ejemplo resuelto. (Entero <= 9 AND Entero >2 ) OR Entero =12 3, 4, 5, 6, 7, 8, 9, 12 a. Entero > 2 AND Entero <= 10
3, 4, 5, 6, 7, 8, 9, 10
Programación
115
b. Entero < =8 OR Entero >14
1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 18, 19, 20
c. NOT(Entero < =8 OR Entero >14)
9, 10, 11, 12, 13, 14
d. (Entero > 10 OR Entero <=3) AND Entero > 15
16, 17, 18,19, 20
e. Entero < 10 OR Entero > 4
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
Estructuras de Decisiones La gran mayoría de los programas requerirán que ocurran diferentes acciones dependiendo de las opciones o acciones del usuario. En otras palabras, un conjunto de instrucciones se ejecutan o no dependiendo de la evaluación de ciertas condiciones. En programación se utilizan los condicionales para lograr estos flujos alternos. Como ya hemos visto, las estructuras condicionales son comunes a todos los lenguajes y entornos de programación. Lo único que cambia es quizás algún detalle de la sintaxis.
Decisión IF… Then
Las estructuras de decisión If… Then te permiten evaluar una condición (expresión lógica) en el programa y llevar a cabo una serie de acciones basándose en el resultado de dicha evaluación. Su sintaxis es la siguiente: If condición then sentencia Ejemplo: If edad >=18 then label1.caption = “Mayor de edad” Si la variable edad es mayor o igual a 18, entonces Visual Basic asignará a la propiedad caption del objeto label1 el valor “Mayor de edad”. Si el valor de la variable edad no es mayor o igual que 18, Visual Basic ignorará la sentencia de asignación y ejecutará la siguiente línea de código. Si se requiere ejecutar más de una acción cuando la condición sea verdadera, debes utilizar diferentes líneas e incluir el cierre del condicional, por ejemplo: If edad >=18 then label1.caption = “Mayor de edad” label2.caption = “Bienvenido” text1.enabled = true End If
Visual Basic cuenta también con una cláusula que permite ejecutar acciones alternativas cuando no se cumple la condición, por ejemplo:
116
If edad >= 18 then label1.caption = “Mayor de edad” Else label1.caption = “Menor de edad” End If Las líneas de código después de la cláusula Else, solamente se ejecutan cuando no se cumple con la primera condición (cuando es falsa). Visual Basic nos permite anidar dos o más estructuras, es decir, es posible usar un If dentro de otro. Observa este caso: If hora < 12 then label1.caption = “Buenos Días” Else If hora < 19 then label1.caption = “Buenas Tardes” Else label1.caption = “Buenas Noches” End If End If
Comprendiendo condicionales
Actividad
39
1.
2.
Realiza en la siguiente tabla una prueba de escritorio del último ejemplo, utilizando diferentes valores para la variable hora, como 5, 12, 16, 19 y 22. Valor de hora
label1.caption
5 12 16 19 22
Buenos días Buenas tardes Buenos tardes Buenas noches Buenas noches
Numera las líneas del programa del 1 al 9. ¿Cuáles son las líneas que se ejecutan cuando la variable hora tiene el valor 7?
1, 2, 9
3.
¿Cuáles son las líneas que se ejecutan cuando la variable hora tiene el valor 14?
1, 3, 4, 5, 8, 9
4.
¿Cuáles son las líneas que se ejecutan cuando la variable hora tiene el valor 21?
1, 3, 4, 6, 7, 8, 9
Programación
117
La importancia de las decisiones Contesta correctamente las siguientes preguntas. 1.
A la expresión lógica se le conoce también como:
Expresión booleana 2.
Una expresión lógica no se puede evaluar como verdadera o falsa. a. Verdadero b. Falso
3.
Escribe un ejemplo de Operador lógico, su descripción y aplicaciones.
4.
¿Qué son las estructuras de decisión?
5.
Escribe un ejemplo del código de una estructura de Decisión if… >
Actividad
40
AND: Devuelve un valor verdadero cuando todas las expresiones sean verdaderas.
Conjunto de instrucciones que se llevan a cabo o no, basándose en el resultado de una evaluación. If hora 16 then Label.caption = “Hora de salir” Else Label.caption = “Trabajando” End if
Estructura de Decisión 1
41 Actividad
En esta actividad debes crear un programa que evalúa una calificación y asigna una etiqueta descriptiva que indica si el alumno obtuvo una calificación reprobatoria, regular, bien, muy bien o excelente 1.
Abre Visual Basic y crea un nuevo proyecto Standard EXE. Guárdalo con el nombre decision1.vbp en la carpeta que te indique el profesor.
2.
Inserta un cuadro de texto, una etiqueta y un botón, con las siguientes propiedades:
118
Objeto Form1
Propiedad Caption StarUpPosition
2- CenterScreen
Text1
Text
En blanco
Label1
Caption AutoSize
En blanco True Evaluar
CommandButton 3.
Valor Evaluar calificación
Caption
Introduce el siguiente código dando doble clic sobre el botón
Private Sub Command1_Click() Dim calificacion As Integer calificacion = Text1.Text If calificacion < 0 Or calificacion > 10 Then Label1.Caption = “Calificación no valida” Else If calificacion <= 5 Then Label1.Caption = “Insuficiente” Else If calificacion < 8 Then Label1.Caption = “Regular” Else If calificacion < 9 Then Label1.Caption = “Bien” Else If calificacion < 10 Then Label1.Caption = “Muy Bien” Else If calificacion = 10 Then Label1.Caption = “Excelente” End If End If End If End If End If End If End Sub
4.
Prueba el programa y revisa todos los posibles casos (incluso calificaciones menores que cero o mayores que diez.
5.
Cuando todo funcione guarda el trabajo.
Programación
119
TIP Cuando uses estructuras complejas, utiliza el tabulador para que a simple vista sea obvio qué instrucciones pertenecen a cada estructura. En programación, a esta práctica se le llama “indentar”.
MsgBox En Windows constantemente aparecen ventanas o cajas con mensajes. Las
cajas de mensajes pueden incluir uno o más botones. MsgBox es la instrucción de Visual Basic para desplegar estas cajas. Hay dos formas de usar el MsgBox. La más sencilla es por medio de la instrucción:
MsgBox (“mensaje”) Visual Basic utiliza variables internas predefinidas para mostrar distintos tipos de MsgBox, con diferentes tipos de botones. Por ejemplo, si en la definición del MsgBox agregas la variable predefinida vbOKCancel, aparecen en la caja dos botones, con las opciones de Aceptar y Cancelar, respectivamente. Si deseas saber cuál de los botones de un MsgBox presiona un usuario, es necesario definir una variable de tipo Integer. Por ejemplo:
Dim X As Integer X = MsgBox (“¿Estás seguro?”, vbOKCancel)
En el ejemplo anterior, si el usuario presiona el botón Aceptar, la variable X toma el valor de 1. Si el usuario presiona el botón Cancelar, la variable X toma el valor de 2. A continuación se muestran algunos ejemplos de variables internas predefinidas para el MsgBox. La variable que debes usar se muestra en cada figura (vbInformation, vbExclamation, vbCritical, vbAbortRetryIgnore).
120
Estructura de Decisión 2
Actividad
42
El programa de esta actividad es un juego que llamaremos “Las Vegas”. Consiste en oprimir un botón para que aparezcan tres números aleatorios. Cuando estos tres números sean iguales, ganas. 1.
Abre Visual Basic y crea un nuevo proyecto con el nombre Decision2.vbp.
2.
Crea la interfaz gráfica con tres etiquetas arriba, una imagen al centro y un botón abajo.
3.
Dale a los controles las siguientes propiedades: Objeto
Propiedad
Form1
Caption
Valor Las Vegas
BackColor
&H80000009&
StartUpPosition
2- CenterScreen
Height
8490
Width
6795
Caption
En blanco
Font
Arial, 48, negrita
Alignment
2- Center
BackColor Height
&H80000009& 1155
Left Top
360 360
Width
1875
Caption
En blanco
Font
Arial, 48, negrita
Label1
Label2
Programación
121
Alignment
2- Center
BackColor
&H80000009& 1155
Height
Label3
360
Width
1875
Caption
En blanco
Font Alignment
Arial, 48, negrita
BackColor
Picture1 Command1
2400
Left Top
2- Center
Height
&H80000009& 1155
Left
4440
Top
360
Width
1875
Picture
ganador.jpg
Visible
False
Caption
Play
Nota: La imagen ganador.jpg se encuentra en tu CD de trabajo o carpeta de actividades, pero puedes usar cualquier otra imagen apropiada. 4.
Da doble clic sobre el botón y escribe el siguiente código:
Private Sub Command1_Click() Picture1.Visible = False Label1.Caption = Int(Rnd * 10) Label2.Caption = Int(Rnd * 10) Label3.Caption = Int(Rnd * 10) If Label1.Caption = Label2.Caption AND Label2.Caption = Label3.Caption Then Picture1.Visible = True MsgBox (“ ¡¡¡Felicidades, has ganado!!!”) End If End Sub
122
5.
Prueba el programa. Quizá sea necesario presionar muchas veces el botón antes de obtener una combinación ganadora.
6.
Modifica el programa incluyendo una etiqueta en la esquina inferior derecha, que vaya llevando la cuenta del número de intentos realizados. Para eso necesitarás definir una variable que sirva de contador y aumentar su valor cada vez que se presione el botón, por ejemplo: intentos = intentos + 1. Después debes mostrar el valor de esa variable en la nueva etiqueta.
7.
Cuando todo funcione guarda el trabajo.
8.
Utiliza la ayuda del programa para investigar cómo se utiliza la función Rnd. Escribe un resumen de su uso y algunos ejemplos con sus descripciones:
Devuelve un número aleatorio de tipo Single menor que uno pero mayor o igual a cero. Para cualquier valor de inicialización dado, se genera la misma secuencia de números ya que cada llamada sucesiva que se hace a la función Rnd utiliza el número anteriormente generado como inicialización para el siguiente número de la secuencia.
Estructura de decisión SELECT CASE
Con la sentencia If, un programa puede tomar dos caminos: uno si se cumple la condición y otro si no se cumple. La sentencia Select Case es una forma de tomar decisiones que se utiliza cuando se pueden tomar múltiples caminos, dependiendo del valor de una variable de prueba. Tiene la siguiente sintaxis: Select Case variable Case valor1 Ejecutar esta acción cuando la variable sea igual al valor1 Case valor2 Ejecutar esta acción cuando la variable sea igual al valor2 Case valor3 Ejecutar esta acción cuando la variable sea igual al valor3
etc…
End Select
Analiza este ejemplo simple: Select case hora Case hora < 12 label1.caption = “Buenos Días” Case hora 12 to 18 label1.caption = “Buenas Tardes” Case hora >19 label1.caption = “Buenas Noches” End Select
Programación
123
Estructura de Decisión 3
43 Actividad
El siguiente programa muestra la imagen y biografía breve de un personaje seleccionado en una lista. 1.
Abre Visual Basic y crea un nuevo proyecto llamado decision3.vbp, en la carpeta que indique tu profesor.
2.
Inserta dos etiquetas, un ListBox y una imagen como se ve en la figura de la siguiente página
3.
Cambia los nombres de los controles a lblName, lblBio, Image1 y List1, respectivamente.
4.
Asigna los siguientes valores en sus respectivas propiedades: Objeto
Propiedad
Form1
Caption StarUpPosition
Image1
Label1
Propiedades Height
List1
124
2- CenterScreen Por default 5715
Left Top
360 180
Width
3435
Caption
Selecciona un personaje de la lista
Font Alignment
Label2
Valor Personajes
Arial, 10
Height
0- Left Justify 5715
Left
3960
Top
780
Width
3780
Height
330
Left Top Width
3960 300 75
AutoSize
True
Height
1035
Left Top
2820 6540
Width
2295
label2 label1 Image
list1 5.
En tu CD de trabajo o carpeta de actividades encontrarás las imágenes de varios personajes famosos. Cópialas a la misma carpeta donde están los archivos de tu proyecto vbp.
6.
Escribe el siguiente código dentro del evento Form_Load Private Sub Form_Load() List1.AddItem “Beethoven” List1.AddItem “Che Guevara” List1.AddItem “Adolfo Hitler” List1.AddItem “Mahatma Gandhi” List1.AddItem “Pelé” End Sub
7.
Da doble clic sobre el objeto List1 y escribe el siguiente código:
Private Sub List1_Click() Select Case List1.ListIndex Case 0 Image1.Picture = LoadPicture(“beethoven.jpg”) lblName.Caption = “Beethoven” lblBio.Caption = “Ludwig Van Beethoven (Bonn, 16 de diciembre de 1770 Viena, 26 de marzo de 1827). Compositor alemán de música académica, vivió en la transición del Clasicismo al Romanticismo. Uno de los más grandes y admirados de todos los tiempos. Se le considera como el principal precursor romántico. Entre sus obras destacan la Quinta Sinfonía; la Heróica, también llamada Tercera Sinfonía, en mi bemol mayor, con la que rompe todas las pautas de la música clásica; y la Novena Sinfonía, cuya música del cuarto movimiento ha sido establecida como Himno de la Unión Europea (UE).” Case 1 Image1.Picture = LoadPicture(“che guevara.jpg”) lblName.Caption = “Che Guevara” lblBio.Caption = “Ernesto Guevara de la Serna (1928 - 1967). Conocido como Che Guevara, médico, político y guerrillero revolucionario. Nació el 14 de junio de 1928 en Rosario (Argentina) y murió asesinado por el gobierno del presidente Barrientos tras ser capturado por el ejército boliviano con la colaboración de la CIA en La Higuera (Bolivia) el 9 de octubre de 1967. Revolucionario argentino-cubano, médico de profesión. Se dirigió a Cuba a luchar contra lo que él consideraba
Programación
125
Case 2
Case 3
Case 4
End Select End Sub
126
la tiranía batistiana. Tras su desaparición física su figura ha recorrido el mundo entero convirtiéndose en un icono representado por la famosa foto de Alberto Korda. Aún después de muerto es reconocido como uno de los principales líderes mundiales, capaz de influenciar en millones de seres humanos.” Image1.Picture = LoadPicture(“hitler_adolf.jpg”) lblName.Caption = “Adolfo Hitler” lblBio.Caption = “Adolf Hitler (Braunau am Inn, Austria, 20 de abril de 1889 - Berlín, 30 de abril de 1945). Político y dictador alemán de origen austríaco, que estableció un régimen nacionalsocialista en el que recibió el título de Reichskanzler y Führer. Como jefe del Partido Nacional Socialista Alemán de los Trabajadores, dirigió el gobierno del país de 1933 a 1945, período en el que ocupó sucesivamente los cargos de canciller, jefe de Gobierno y jefe de Estado. Fue el autor intelectual de uno de los genocidios más grandes de la historia al enviar a seis millones de personas a la muerte. El sistema industrial-militar que instauró llevó a Alemania a salir de la crisis económica posterior a la Primera Guerra Mundial y, en su apogeo, a controlar gran parte de Europa.” Image1.Picture = LoadPicture(“Mahatma gandhi.jpg”) lblName.Caption = “Mahatma Gandhi” lblBio.Caption = “Mohandas Karamchand Gandhi (2 de octubre de 1869 - 30 de enero de 1948) fue un político y pensador indio. Estudió Derecho en las universidades de Ahmedabad y Londres y ejerció como abogado en Bombay. Se interesó por la situación de los 150000 compatriotas que residían en Sudáfrica, luchando contra las leyes que discriminaban a los indios en Sudáfrica mediante la resistencia pasiva y la desobediencia civil. Una vez en su país, desde 1918 figuró abiertamente al frente del movimiento nacionalista indio. Instauró nuevos métodos de lucha y en sus programas rechazaba la lucha armada y predicaba la no violencia como medio para resistir al dominio británico. Preconizaba la total fidelidad a los dictados de la conciencia, llegando incluso a la desobediencia civil si fuese necesario.” Image1.Picture = LoadPicture(“Pele.jpg”) lblName.Caption = “Pelé” lblBio.Caption = “Edson Arantes do Nascimento (Três Corações, Brasil, 23 de octubre de 1940), futbolista brasileño, más conocido como Pelé, es ex-jugador de fútbol. Apodado también «Rey», es considerado como uno de los mejores jugadores de la historia de este deporte, alcanzando el galardón al Jugador del Siglo de la FIFA. Desarrolló lo mejor de su carrera en el Santos, club donde debutó el 7 de septiembre de 1956, sin haber cumplido los 16 años y anotando un gol. En ese equipo permaneció prácticamente toda su carrera, ganando dos Copas Libertadores, dos Copas Intercontinentales, una Recopa Sudamericana, una Recopa Intercontinental, 15 títulos de Liga y 5 Copas Brasil, hasta 1975, cuando ya en el declive de su carrera decidió probar suerte en la North American Soccer League estadounidense. Allí se destacó como el mejor jugador del torneo y ganó un título de Liga (1977).”
Precaución: Los párrafos de las reseñas de los personajes deben estar entre comillas y en la misma línea. En caso de tener las imágenes en otra carpeta debes incluir la ruta completa en tu disco duro para que el programa las localice.
8.
Prueba y detalla el funcionamiento y apariencia del programa.
9.
Investiga, usando la ayuda del programa u otras fuentes, las siguientes preguntas: a. ¿Para qué sirve el control ListBox?
Representa un control de Windows para mostrar una lista de elementos. b. ¿Cómo se usa el método AddItem de un ListBox?
Permite agregar elementos a un ListBox o ComboBox y puedes especificar el índice del elemento. c. ¿Qué significa la propiedad index de un ListBox?
Un índice por medio del cual podemos hacer referencia a un elemento del ListBox. Creación de un archivo ejecutable Los programas ejecutables para Windows tienen la extensión .exe y se pueden ejecutar en cualquier PC. Al crear un archivo ejecutable de tu proyecto de Visual Basic, será posible distribuirlo y ejecutarlo en equipos que no tengan Visual Basic instalado. El ejecutable incluye de forma automática los archivos de soporte, librerías y controles personalizados que serán necesarios para su ejecución. Sigue los siguientes pasos para hacer tus programas ejecutables:
Programación
127
1.
Selecciona Menú File/Make *.exe… Se sustituye el asterisco con el nombre de tu programa.
2.
En el cuadro de diálogo indica el lugar donde se creará el archivo ejecutable, así como el nombre que tendrá tu programa.
Podrás detallar más propiedades si das clic en el botón Options… antes de guardarlo.
Algunas opciones interesantes son: Propiedad
Descripción
Version Number
Te permite asignar un número de versión a tu programa. Es muy útil para llevar un control cuando haces algunos cambios o actualizaciones.
Title
Establece el título de tu programa. Aparecerá en la barra de título de la aplicación creada.
Version Information
Permite incluir algún comentario sobre tu programa o bien los datos del desarrollador.
Compile
Esta sección te permite optimizar el programa para que ocupe menos espacio.
128
Progr
06
Creación de un archivo ejecutable
Cotizaciones de autos
44 Actividad
En esta actividad pondrás en práctica las habilidades adquiridas en el manejo de Visual Basic, desde la creación de formularios, hasta la programación de estructuras de condición. Piensa muy bien en qué controles y en qué eventos debes escribir cada parte del código. Utiliza variables. 1.
Lee y comprende el objetivo del programa: Este programa controla las cotizaciones en una agencia de autos. Permite al vendedor hacer elecciones de varias listas de posibles opciones. Al final el programa calcula el precio.
2.
Utiliza un List Box, que presentará los 4 posibles modelos de auto: compacto, familiar, de lujo o deportivo. Nómbralo como listModelo.
3.
Utiliza dos OptionButton para que se pueda seleccionar si el auto será estándar o automático. Nómbralos como optEstandar y OptAutomatico, respectivamente.
4.
Utiliza 5 CheckBox para que el usuario pueda elegir los complementos: aire acondicionado, accesorios eléctricos, sistema de sonido, vestiduras de piel, quemacocos. Renombra los controles como chkAire, chkElec, chkSonido, chkPiel y chkCocos.
5.
Se considera la siguiente lista de precios en dólares: Auto compacto estándar: $7,000.00 Auto compacto automático: $9,000.00 Auto familiar estándar: $9,600.00 Auto familiar automático: $11,100.00 Auto de lujo estándar: $16,800.00 Auto de lujo automático: $19,500.00 Auto deportivo estándar: $22,800.00 Auto deportivo automático: $25,000.00
6.
Los precios de cada complemento son:
aire acondicionado: $ 900.00 accesorios eléctricos: $1,400.00
Programación
129
sistema de sonido: $1,700.00 vestiduras de piel: $1,200.00 quemacocos: $1,500.00 7.
El precio final del auto se calculará al presionar un botón de CALCULAR (cmdCalcular) y aparece en una etiqueta (lblPrecio).
8.
Escribe el código necesario. Cuando se ejecute el programa, el usuario podrá elegir el modelo del auto, si es estándar o automático y escoger de 0 a 5 de los accesorios opcionales. Dependiendo de las elecciones se obtendrá el precio final.
9.
Detalla y depura el proyecto. Pruébalo con diferentes valores y opciones. Asegúrate que los cálculos son correctos en todos los casos.
10. Guarda el trabajo terminado con el nombre autos.vbp en la carpeta que indique tu profesor. 11. Crea un ejecutable del programa y pruébalo fuera de Visual Basic.
Fórmula General
Actividad
2
Una ecuación cuadrática del tipo Ax + Bx + C = 0 se puede resolver con la fórmula general. Se obtendrán dos raíces (x1 y x2) determinadas por: x1 = (-B + sqr (B ^ 2 - 4 * A * C)) / (2 * A) x2 = (-B - sqr (B ^ 2 - 4 * A * C)) / (2 * A) En estas ecuaciones, sqr es la función de Visual Basic para obtener la raíz cuadrada. 1.
Crea la interfaz del programa según se muestra. Cambia los nombres de los controles como sigue:
txtA, txtB, txtC, txtX1, txtX2, cmdCalcular, cmdLimpiar, cmdSalir.
130
45
2.
En la ventana de código declara las variables A, B, C, X1 y X2 dentro del evento Click del botón de Calcular. Como estas variables pueden contener números decimales, usa el tipo Single. Private Sub cmdCalcular_Click() Dim A, B, C, X1, X2 as Single
3.
Asigna a las variables A, B y C los valores de las cajas de texto correspondientes. A = Val (txtA.text) B = Val (txtB.text) C = Val (txtB.text) La función Val obtiene el valor numérico de una cadena de caracteres.
4.
El botón Calcular realizará los cálculos necesarios con las variables para obtener los resultados de X1 y X2. X1 = (-B + sqr (B ^ 2 - 4 * A * C)) / (2 * A) X2 = (-B - sqr (B ^ 2 - 4 * A * C)) / (2 * A)
5.
Las cajas de texto para los resultados desplegarán los valores finales de X1 y X2 txtX1.text = X1 txtX2.text = X2
6.
El botón Limpiar borra los contenidos de todas las cajas de texto. Private Sub cmdLimpiar_Click() txtA.text = “” txtB.text = “” ...etc.
7.
El botón Salir termina el programa (puedes usar el comando End). Private Sub cmdSalir_Click() End End Sub
8.
Si el valor de A es cero, ocurrirá un error. Cuando el usuario presione el botón de Calcular, debes revisar si A es diferente de cero, antes de realizar los cálculos. Si A tiene el valor de cero, no se deben realizar los cálculos y se deben borrar automáticamente todos los datos de las cajas de texto.
9.
Cuando termines el programa pruébalo con las siguientes ecuaciones. Anota en cada caso las raíces (X1 y X2) obtenidas. Al final guarda el proyecto con el nombre cuadratic.vbp. a) x2 + 2x -3 = 0 b) 4x2 + 12x + 6 = 0 c) 2x2 + x = 0 d) x2 + 2x - 6 = 0 e) 3x2 + 11x + 6 = 0
X1 X1 X1 X1 X1
= = = = =
X2 X2 X2 X2 X2
= = = = =
Programación
131
Repaso
Actividad
Contesta correctamente las siguientes preguntas. 1.
Es la instrucción de Visual Basic que sirve para desplegar ventanas o cajas con mensajes. a. WinBox b. MsgBox c. TheBox
2.
Es una forma de tomar decisiones que se utiliza cuando se pueden tomar múltiples caminos, dependiendo del valor de una variable de prueba. a. Select Case b. Decisión if… c. Else
3.
Los programas ejecutables para Windows tienen la extensión: a. .win b. .eje c. .exe
Estructura de bucle FOR … NEXT Un bucle For… Next permite ejecutar cierto número de veces una acción. En otras palabras es una forma abreviada de escribir una larga lista de sentencias de programa, por ejemplo si se desea multiplicar tres veces un número, no es necesario escribir tres veces el código, simplemente se indica el número de veces que deseas ejecutar la misma acción. Este tipo de estructura se utiliza cuando sabes el número de veces que hay que repetir una acción. La estructura de un ciclo For es: For variable = inicio to fin Acción que se desea repetir Next variable En donde a la variable se le indica el número de veces que se ejecutará una acción. Es muy común entre los programadores utilizar las variables i o j para este tipo de bucles, como un contador que incrementa uno a uno hasta llegar al número indicado de veces.
132
46
Ciclo For
Actividad
47
El siguiente programa imprime la tabla de multiplicar de un número capturado. 1.
Crea un nuevo proyecto Standard EXE y guárdalo con el nombre Ciclofor.
vbp en la carpeta que te indique el profesor.
2.
Inserta un botón que muestre el texto “Multiplicar”.
3.
Introduce el siguiente código dando doble clic sobre el botón: Private Sub Command1_Click() Dim num, i as Integer Form1.Cls num = InputBox(“Introduce el número de la tabla que deseas generar”) For i = 1 To 10 Print num; “ * “; i; “ = “; i * num Next i End Sub
4.
Ejecuta el programa varias veces y contesta: a. ¿Para qué sirve la variable num?
Para almacenar el número del cual queremos su tabla.
b. ¿Para qué sirve la variable i?
Para imprimir cada número del 1 al 10.
c. ¿Cuántas veces se ejecuta el ciclo?
Diez veces
Estructura de bucle DO Un bucle Do ejecuta un grupo de sentencias hasta que cierta condición se cumple. Es muy útil usar este tipo de sentencia cuando no se sabe cuántas veces será necesario repetir el ciclo. Piensa, por ejemplo, en un programa que solicita una contraseña antes de ingresar. El programa repite la solicitud una y otra vez hasta que escribamos la contraseña correcta. El código para pedir la contraseña se ejecutará las veces que sea necesario, hasta que se cumpla una condición.
Programación
133
Existen dos formas de sintaxis para esta estructura: Do While condición Sentencias a ejecutar Loop Do
Sentencias a ejecutar Loop While condición ¿Observas la diferencia? En el primer caso la condición se evalúa antes de iniciar el ciclo, por lo que es posible que no se ejecute ni una vez, en caso de que la condición sea falsa. En la segunda sintaxis el ciclo se ejecuta al menos una vez y la condición se evalúa al final. Si al condición es verdadera el ciclo se repite y si no termina.
Ciclo D0
Actividad
El siguiente programa solicitará una contraseña al usuario, hasta que se introduzca la correcta. 1.
Inicia un nuevo proyecto y guárdalo como Ciclodo1.vbp.
2.
Inserta una etiqueta y define las siguientes propiedades: Objeto
Propiedad
Form1
Caption
Valor Inicio de Sesión
StartUpPosition
2- CenterScreen
BorderStyle Height
1- Fixed Single 1600
Width
3500
Font
Arial, negrita, 16
Left
420
Top
420
Height
315
Width
2535
Label1
134
48
3.
Introduce el siguiente código dando doble clic sobre el formulario, en el evento Load. Private Sub Form_Load() Dim password As String Do While password <> “hola” password = InputBox(“Introduce tu contraseña”, “Inicio de Sesión”) Loop Label1.Caption = “Bienvenido” End Sub
4.
Ejecuta el programa y pruébalo. Contesta: ¿Cuántas veces se ejecuta el ciclo?
Las veces que el usuario ingrese una cadena diferente de “hola”.
Nota
¿Qué ciclo usar? En realidad es posible utilizar cualquier ciclo para resolver un problema. La diferencia es que, dependiendo de cada caso, siempre hay uno que es más directo y en el que tienes que escribir menos código. El ciclo que elijas dependerá de cada necesidad. Entre menos código tengas que escribir y menos variables sea necesario controlar, mejor. Observa este ejemplo. A la izquierda se muestra un ciclo escrito con Do While y a la derecha el mismo ciclo con For. El resultado será exactamente el mismo, pero el ciclo For le facilita el trabajo al programador. Usando Do While
Usando For
Dim X as integer X=1 Do While X <= 5000 instrucciones X = X +1 Loop
Dim X as integer For X = 1 to 5000 instrucciones Next X
Procedimientos y funciones Un procedimiento nos sirve para realizar una tarea concreta que probablemente se vaya a requerir varias veces a lo largo del programa. Esta tarea se especifica en un bloque de código de manera independiente. Cuando se desean realizar las acciones del procedimiento, simplemente se “llama” al procedimiento por su nombre desde cualquier lugar del programa. Una vez realizadas las acciones pertinentes, se devuelve el flujo del programa al lugar desde donde se invocó ese procedimiento. Una función tiene exactamente el mismo objetivo, pero con la diferencia de que devuelve un valor, por lo que siempre debe usarse en conjunto con una variable que guardará el resultado de la función. Lo primero que debemos hacer al crear un procedimiento o función es pensar las cosas que se desean hacer, la información que necesitaremos y, en el caso de la funciones, la información que se devolverá. Con estas ideas claras se pueden construir los procedimientos y funciones sin mucha dificultad siguiendo estas estructuras.
Programación
135
Para un procedimiento Sub nombre ([argumentos opcionales]) ... Código del procedimiento end Sub Para una función Function nombre (parámetros) ... Código de la función end Function La mejor forma de comprender el funcionamiento de procedimientos y funciones es probándolas directamente en un programa.
Procedimientos y funciones
Actividad
1.
Abre Visual Basic y crea un nuevo proyecto Standard EXE. Guárdalo con el nombre Procedimiento1.vbp.
2.
Inserta una etiqueta y dos botones. Define las siguientes propiedades: Objeto
Propiedad
Form1
Caption
Valor Procedimiento
StartUpPosition
2- CenterScreen
BorderStyle Height
1-Fixed Single 1755
Width
2760
Label1
Font Caption
Arial, normal, 10 En blanco
Command1
Caption
Pedir nombre 1
Command2
Caption
Pedir nombre 2
Tu formulario debe de quedar como en la imagen que se muestra.
3.
136
Da doble clic sobre el formulario y escribe el siguiente código. Cuidado: Este código NO debe quedar dentro de ningún evento de ningún control.
49
‘Este procedimiento se llama PedirNombre Sub PedirNombre() Dim nombre as String nombre = InputBox(“Por favor, escriba su nombre”) Label1.Caption = nombre End Sub
4.
Da doble clic sobre el botón Command1 e inserta el siguiente código en su evento Click. Private Sub Command1_Click() ‘Basta usar el nombre de un procedimiento para “llamarlo” PedirNombre End Sub
5.
En el evento Click del segundo botón, llama al mismo procedimiento: Private Sub Command2_Click() PedirNombre End Sub
6.
Observa como el mismo procedimiento se puede mandar llamar desde cualquier lugar del programa, cualquier objeto o evento, con tan solo escribir el nombre del procedimiento. Esto sirve para evitar repetir código en tu programa.
7.
Prueba y depura el programa, revisando que todo funcione bien.
8.
Guarda tu trabajo.
Manejo de menús El Editor de Menús de Visual Basic es una herramienta gráfica que gestiona los menús contenidos en tus programas. Podrás añadir nuevos menús y submenús, modificarlos, reordenarlos, asignar a tus menús teclas de acceso (atajos con el teclado) y más. Podrás ejecutar acciones a través de tus propios menús, tal y como lo has venido haciendo con botones.
Menús
Actividad
50
El objetivo de este programa es darle formato al texto de una etiqueta (Label1), ejecutando acciones a través de un menú simple. Las opciones del menú se definen en el editor de menús de Visual Basic. Después se escribe código en los eventos click de cada opción, tal y como lo harías en botones. 1.
Crea un nuevo proyecto llamado menus.vbp y guárdalo como te indique el profesor
2.
Inserta una etiqueta en el formulario y dos menús.
Programación
137
3.
Inserta también un control del tipo CommonDialog. Este control normalmente no está disponible en las herramientas, por lo que debes habilitar los controles Microsoft Common Dialog Control 6.0 siguiendo estos pasos: a. Da clic derecho sobre la barra de herramientas y elige Components.
b. Selecciona de la ventana de diálogo, la opción Microsoft Common
Dialog 6.0.
c. El control ya estará disponible en las herramientas. Da doble clic sobre la herramienta CommonDialog para insertarlo al formulario. Sólo se verá durante el diseño, pero no durante la ejecución.
138
4.
Selecciona Menú Tools/Menu Editor… y establece las opciones que se muestran en la imagen y la tabla que están más abajo. Utiliza las flechas para tabular los menús (…), esto indica cuáles son menús y cuáles son opciones de menús (submenús). Recuerda que el símbolo “&” permite que la letra siguiente aparezca subrayada y pueda ser seleccionada con el teclado.
Menú
Propiedad
&Ver
Caption
Valor &Ver
Name
MNuVer
...&Fecha
Caption Name
&Fecha MNuFecha
...&Hora
Caption
&Hora
Name
MNuHora
Caption
&Formato
Name
MNuFormato
Enabled
False
Caption
&Tamaño
Name
MNuTamaño
Caption
&10
Name
MNuDiez
&Formato
...&Tamaño ......&10
Programación
139
......&20 ......&30 ...&Estilo ......&Negrita ......&Cursiva ...&Color…
Caption
&20
Name
MNuVeinte
Caption
&30
Name
MNuTreinta
Caption
&Estilo
Name
MNuEstilo
Caption
&Negrita
Name
MNuNegrita
Caption
&Cursiva
Name
MNuCursiva
Caption
&Color
Name
MNuColor
5.
Revisa con cuidado especial el nombre (Name) que das a cada opción del menú, ya que los nombres se utilizan para identificar cada menú en la programación.
6.
Da clic en el menú Ver/Fecha de tu formulario e inserta el siguiente código: Private Sub MNuFecha_Click() ‘Asigna la fecha al cuadro de texto label1 Label1.Caption = Date ‘Activa el menú Formato de tu formulario MNuFormato.Enabled = True End Sub
7.
Da clic en el menú Ver/Hora de tu formulario e inserta el siguiente código: Private Sub MNuHora_Click() ‘Asigna la hora al cuadro de texto label1 Label1.Caption = Time MNuFormato.Enabled = True End Sub
8.
En la ventana de código selecciona el menú MNuDiez e inserta el siguiente código: Private Sub MNuDiez_Click() ‘Aplica tamaño 10 a la etiqueta Label1.FontSize = 10 End Sub
9.
En la ventana de código selecciona el menú MnuVeinte e inserta el siguiente código: Private Sub MNuVeinte_Click() Label1.FontSize = 20 End Sub
10. En la ventana de código selecciona el menú MnuTreinta e inserta el siguiente código:
140
Private Sub MNuTreinta_Click() Label1.FontSize = 30 End Sub
11. En la ventana de código selecciona el menú MnuNegrita e inserta el siguiente código: Private Sub MNuNegrita_Click() ‘Evalúa si el formato está en negrita e invierte el valor. If Label1.FontBold = True Then Label1.FontBold = False Else Label1.FontBold = True End If End Sub
12. En la ventana de código selecciona el menú MnuCursiva e inserta el siguiente código: Private Sub MNuCursiva_Click() ‘Evalúa si el formato está en cursiva e invierte el valor. If Label1.FontItalic = True Then Label1.FontItalic = False Else Label1.FontItalic = True End If End Sub
13. En la ventana de código selecciona el menú MnuColor e inserta el siguiente código: Private Sub MNuColor_Click() ‘Activa la ventana de color de Windows y aplica el color CommonDialog1.Flags = &H2& CommonDialog1.ShowColor Label1.ForeColor = CommonDialog1.Color End Sub
Prueba el programa y revisa todas las opciones. 14. Cuando ya haya funcionado bien, agrega a tu menú la opción “Escribir”. 15. Programa lo necesario para que, cuando el usuario elija esta opción, pueda teclear algún texto en un InputBox y después darle formato con las demás opciones del menú. 16. Guarda tu trabajo.
Colecciones Los objetos de un formulario se pueden manejar en grupos denominados colecciones. Una colección de controles se crea de manera automática cada vez que se crea un nuevo formulario. Cada colección contenida en un programa tiene su propio nombre para poder referirse a ella y a los objetos que contiene. Debido a que puedes tener más de un formulario en un programa, deberás incluir el nombre del formulario cuando quieras hacer referencia a esa colección. Para hacer referencia a una colección se usa la siguiente sintaxis:
formulario.Controls!objeto
Programación
141
donde formulario es el nombre de la forma que contiene al objeto que se especifique. La palabra reservada Controls se utiliza para referirnos a una colección. Por ejemplo, para modificar la propiedad caption de una etiqueta Label1, que está en el formulario Form1, puedes usar una instrucción como esta:
Form1.Controls!Label1.Caption = “Hola Mundo”
También se puede hacer referencia a un objeto de una colección especificando el índice de posición que ocupa el objeto dentro del grupo. Visual Basic asigna un índice a los objetos que forman la colección, en orden inverso a como fueron creados. El último objeto creado tendrá el índice 0, el penúltimo objeto tendría el índice 1, el antepenúltimo el 2, etcétera. Por ejemplo para hacer referencia al último objeto que fue creado puedes especificar el índice (0):
Form1.Controls(0).Caption = “ Hola Mundo”
Las colecciones te ayudarán a procesar simultáneamente grupos de objetos de manera más efectiva, realizar procesos y cambiar sus propiedades.
Colecciones
51 Actividad
Este programa tiene como objetivo cambiar una propiedad de una colección de objetos. Varios objetos ocultos en el formulario se harán visibles al presionar un botón. 1.
En un nuevo formulario inserta 3 cuadros de texto, un botón y tres etiquetas. Organízalas como muestra la figura.
2.
Cambia la propiedad Visible de todos los controles, excepto del botón, a False. El objetivo es que sólo se vea el botón al iniciar el programa.
142
3.
Introduce el siguiente código dentro del evento Click del botón. Private Sub Command1_Click () ‘La variable ctrl representa el objeto activo de una colección Dim ctrl For Each ctrl In Controls ctrl.Visible = True Next ctrl End Sub
4.
Tu formulario en ejecución debe quedar como en las imágenes se muestran.
5.
Utilizando la ayuda de Visual Basic u otra fuente, investiga: a. ¿Cómo funciona la cláusula Each dentro de un ciclo For?
Repite un grupo de instrucciones para cada elemento de una colección. El tipo de datos del elemento debe ser tal que el tipo de datos de los elementos del grupo puedan convertirse al mismo. b. Da un ejemplo y explícalo
Para cada alumno en el Salón Repartir Libro del Alumno Repartir CD del Alumno Siguiente alumno El ciclo se repite para cada alumno o elemento del grupo. Matrices o Arreglo (Array) Las matrices o arreglos son estructuras de datos muy utilizadas en cualquier lenguaje. Un arreglo es como una variable que tiene varios compartimentos para guardar la información, a la que se puede acceder por medio de un índice. Antes de utilizar un arreglo es necesario declararlo de manera obligatoria. Para ello utilizamos la siguiente estructura general: Dim nombre(n) El número entre paréntesis indica el índice máximo de la matriz, considerando que los arreglos comienzan desde la posición 0. Por lo tanto, si una matriz ha
Programación
143
sido definida con 20 casillas, tendrá 21 elementos (índices 0 a 20). Dim semana(6) Dim meses(11) Dim estaciones(3) Para asignar un valor a una de las casillas de un arreglo se utiliza siempre el nombre y el índice, por ejemplo: meses(2) = “marzo” Se pueden también construir matrices multidimensionales si en la definición se utiliza una coma para separar los índices. Por ejemplo, podemos definir una matriz de 8x8 elementos (64 casillas) de esta manera: Dim tablero(7,7) Para escribir y leer el arreglo se usa también la coma. Por ejemplo: tablero (0,0) = “torre” For i = 0 to 7 tablero (1, i) = “peon” Next i
Arrays
52 Actividad
1.
En el siguiente espacio escribe las instrucciones que permitirán llenar un arreglo con los días de la semana.
Dim semana (6) As string semana (0) = “Lunes” semana (1) = “Martes” semana (2) = “Miércoles” semana (3) = “Jueves” semana (4) = “Viernes” semana (5) = “Sábado” semana (6) = “Domingo” 2.
Escribe las instrucciones para pedir al usuario un número del 1 al 7 en un InputBox y mostrar el día de la semana correspondiente (recuerda que el arreglo comienza con el índice 0).
num = val (InputBox(“Ingrese un número del 1 al 7”)) if num < 7 And num > 0 Print semana (i - 1) End if
144
3.
Escribe las instrucciones de un ciclo que mostrará en el formulario los días de la semana que están en el arreglo, pero en orden inverso.
For i = 0 To 6 Print semana (6 - i) Next i
Gestión de Base de Datos Access En Visual Basic puedes crear aplicaciones que te permitan trabajar con información almacenada en bases de datos. Podrás crear una interfaz para agregar registros, borrar registros o simplemente para desplazarte por cada uno de los registro de la base de datos. Visual Basic te permite trabajar con bases de datos como Microsoft Access, Microsoft FoxPro, Btrieve, Paradox, DBASE o incluso Microsoft SQL Server, que son aplicaciones para crear bases de datos. Dado que Visual Basic incluye la misma tecnología de base de datos que Microsoft Access (un gestor de bases llamado Microsoft Jet), es posible crear
aplicaciones con unas pocas líneas de código.
Las tablas de una base de datos se controlan por medio de un objeto llamado Data. Este objeto incluye controles para navegar por la tabla y tiene métodos simples para agregar o modificar registros, a través de un objeto llamado Recordset. En términos sencillos, un objeto Recordset es una tabla que contiene los datos. Un Recordset se encuentra formado por filas (registros) y columnas (campos), a las que deberemos hacer referencia para poder acceder a sus datos. Éstos son los principales métodos del objeto Recordset: AddNew. Agrega un nuevo registro a la base de datos. Delete. Elimina el registro actual de la base de datos. MoveFirst. Se ubica en el primer registro. MoveNext. Avanza al siguiente registro. MoveLast. Se ubica en el último registro. MovePrevious. Retrocede al registro anterior.
Programación
145
La forma de utilizarlos con la notación punto, es nombrando el control Data, luego la palabra Recordset y al final el método. Por ejemplo, estas dos líneas borrarán el primer registro de la tabla: Data1.Recordset.MoveFirst Data1.Recordset.Delete También es importante que tomes en cuenta algunas propiedades, que de no ser consideradas, podrían generar errores al trabajar con los registros. BOF. Esta propiedad es verdadera (true) cuando el registro actual es el primer registro (Beginning of file) EOF. Esta propiedad es verdadera (true) cuando el registro actual es el último registro (End of file) Por ejemplo, después de avanzar al siguiente registro, puedo verificar si es el ultimo para evitar un error ya que no es posible avanzar más allá del final de la tabla: Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast End If
Base de Datos
Actividad
El siguiente programa permitirá visualizar, agregar y eliminar registros en una base de datos llamada Agenda, a través de una aplicación creada en Visual Basic. La base de datos ya ha sido previamente creada en Access y contiene algunos registros, pero puedes modificarla o crear tu propia base de datos. 1.
146
Crea la siguiente interface gráfica en Visual Basic. En los siguientes pasos verás como colocar una imagen en los botones y cómo se usa el control Data.
53
2.
Renombra los botones de comando para que sea fácil programarlos. Utiliza los siguientes nombres: cmdNuevo, cmdPrimero, cmdAnterior, cmdSiguiente, cmdUltimo, cmdBorrar.
3.
En tu CD de trabajo o carpeta de actividades encontrarás una carpeta con el nombre “botones”. Copia las imágenes que contiene a la carpeta donde está guardado tu proyecto de Visual Basic. Para que un botón muestre una imagen, debes asignarle las propiedades Style y Picture, como se indica en la tabla de propiedades más abajo. Objeto
Propiedad
cmdPrimero
Caption Style Picture ToolTipText
4.
Valor En blanco 1 – Graphical Selecciona la imagen “primero” Primer registro
En tu CD de trabajo o carpeta de actividades encontrarás la Base de datos Agenda. Cópiala a tu disco duro en la misma ubicación que tu proyecto. Elige la base de datos, como una propiedad del objeto Data1: Objeto
Propiedad
Data1
Connect
Valor Access
RecordSource
Selecciona la base de datos Datos
Visible
False
DatabaseName
5.
Renombra los controles de texto para que sea fácil referirnos a ellos. Utiliza los nombres: txtNum, txtNombre, txtDireccion, txtTel, txtMail.
6.
Relaciona los cuadros de texto con los campos de la base de datos. En cada campo de texto hay que especificar el origen de los datos y el campo a utilizar. Objeto
Propiedad
txtNum
DataSource
Valor Data1
DataField
Id
txtNombre
DataSource DataField
Data1 Nombre
txtDireccion
DataSource
Data1
txtTel
DataField DataSource
Direccion Data1
DataField
Tel
DataSource
Data1
DataField
Correo
txtMail
Programación
147
7.
Da doble clic sobre el botón cmdNuevo e inserta el siguiente código.
Private Sub cmdNuevo_Click() confirma = MsgBox(“¿introducir nuevo registro?”, vbOKCancel, “Añadir Registro”) If confirma = vbOK Then ‘Si se da Ok en la pregunta anterior, inserta un nuevo registro Data1.Recordset.AddNew ‘el método setFocus le indica al cursor que se ubique en el cuadro txtNombre.SetFocus End If End Sub
8.
Da doble clic sobre el botón cmdBorrar e inserta el siguiente código.
Private Sub cmdBorrar_Click() confirma = MsgBox(“¿Seguro?”, vbOKCancel, “Borrar registro”) If confirma = vbOK Then Data1.Recordset.Delete ‘El formulario muestra el registro siguiente Data1.Recordset.MoveNext End If End Sub
9.
Da doble clic sobre el botón cmdPrimero e inserta el siguiente código.
Private Sub cmdPrimero_Click() ‘El formulario muestra el primer registro Data1.Recordset.MoveFirst End Sub
10. Da doble clic sobre el botón cmdAnterior e inserta el siguiente código. Private Sub Command4_Click() ‘El formulario muestra el registro anterior Data1.Recordset.MovePrevious If Data1.Recordset.BOF Then ‘Si es el primero se ubica en él Data1.Recordset.MoveFirst End If End Sub
11. Da doble clic sobre el botón cmdSiguiente e inserta el siguiente código. Private Sub cmdSiguiente_Click() ‘El formulario muestra el registro siguiente Data1.Recordset.MoveNext If Data1.Recordset.EOF Then ‘Si es el último se ubica en él Data1.Recordset.MoveLast End If End Sub
12. Da doble clic sobre el botón cmdUltimo e inserta el siguiente código. Private Sub cmdUltimo_Click() ‘El formulario muestra el último registro Data1.Recordset.MoveLast End Sub
13. Ejecuta el programa y prueba su funcionamiento.
148
14. La base de datos original tiene también un campo llamado fax. Agrega al formulario una etiqueta y una caja de texto y define las propiedades para que se muestre el valor de fax de cada persona. Contesta las siguientes preguntas: a. ¿Por qué cuando avanzas o retrocedes en los registros, es necesario verificar las propiedades EOF o BOF?
Porque si estás en el último registro no puedes pedirle al programa que lea el siguiente registro y si estás al inicio del documento, no puedes leer un registro anterior. Ocurriría un error y terminaría el programa. b. ¿Qué sucede si eliminas las cajas MsgBox de confirmación para eliminar o añadir registros?
El usuario podría eliminar accidentalmente un registro y no recuperarlo.
c. Confirma tus respuestas anteriores eliminando las líneas en el programa y haciendo varias pruebas.
Programación
149
EVALUACION No. TEMA GENERAL: GRUPO: PROFESOR: PERIODO:
TEMAS
PROGRAMACIÓN
In troducció n L ó g ica C o m p u ta cio n a l A lg o ritm o s. P ru e b a d e e scrito rio . C la sific a ció n d e a lg o ritm o s, V a ria b le s. V a ria b le s. O p e ra d o re s. E stru ctu ra s B á sica s
TEMAS Técn ica s p a ra rep re s e nta r a lg o ritm o s P se u d o c ó d ig o D ia g ra m a s d e N a ssi – S ch n e id e rm a n (N -S ) P se u d o c ó d igos d e la E stru ctu ra D e cisio n e s e n secuencia
D e cisio n e s e n cascada o a n id a d a s.
P royectado
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas: C oncretado N otas:
P royectado
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas: C oncretado N otas:
S E S IO N ES T E Ó R IC AS S E S IO N ES PRÁCTICAS
S E S IO N ES PRÁCTICAS L
L
M
M
M
J
J
SEMANA 6
M
SEMANA 1
V
V
S
S
L
L
M
M
M
J
J
SEMANA 7
M
SEMANA 2
V
V
S
S
L
L
M
M
M
J
J
SEMANA 8
M
SEMANA 3
A V A N C E P R O G R A M ÁT IC O D E C U R S O
S E S IO N ES T E Ó R IC AS
V
V
S
S
L
L
M
M
M
J
SEMANA 4
M
J
SEMANA 9
V
V
S
S
L
L
M
M
M
J
SEMANA 5
M
J
S E M A N A 10
V
V
S
S
P re p a ra n d o e l fo rm u la rio p a ra la p ro g ra m a ción .
E l e n to rn o d e V isual B a sic.
V isual B a sic.
M a tric e s.
A rre g lo s.
TEMAS
P se u d o c ó d igos co n va ria s e stru ctu ra s
C iclo s.
C iclo s.
C iclo s.
C iclo s.
TEMAS
PROGRAMACIÓN
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
L
L
M
M
J
M
J
S E M A N A 16
M
S E M A N A 11
V
V
S
S
L
L
M
M
J
M
J
S E M A N A 17
M
S E M A N A 12
V
V
S
S
L
L
M
M
J
M
J
S E M A N A 18
M
S E M A N A 13
A V A N C E P R O G R A M ÁT IC O D E C U R S O
S E S IO N ES T E Ó R IC AS S E S IO N ES T E Ó R IC AS
EVALUACION No. TEMA GENERAL: GRUPO: PROFESOR: PERIODO: S E S IO N ES PRÁCTICAS S E S IO N ES PRÁCTICAS
V
V
S
S
L
L
M
M
J
M
J
S E M A N A 19
M
S E M A N A 14
V
V
S
S
L
L
M
M
J
M
J
S E M A N A 20
M
S E M A N A 15
V
V
S
S
EVALUACION No. TEMA GENERAL: GRUPO: PROFESOR: PERIODO:
V a ria b le s
V a ria b le s C o n s ta n te s. O p e ra d o re s
PROGRAMACIÓN
TEMAS
E stru ctu ra s d e D e cisio n e s
TEMAS E stru ctura s d e D e cisio n e s
E stru ctura s d e D e cisio n e s E stru ctura s d e D e cisio n e s E stru c tura s d e D e cisio n e s C re a ció n d e u n a rch ivo e je c u ta b le
P royectado
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas: C oncretado N otas:
P royectado
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas: C oncretado N otas:
S E S IO N ES T E Ó R IC AS S E S IO N ES PRÁCTICAS
S E S IO N ES PRÁCTICAS L
L
M
M
M
J
J
S E M A N A 26
M
S E M A N A 21
V
V
S
S
L
L
M
M
M
J
J
S E M A N A 27
M
S E M A N A 22
V
V
S
S
L
L
M
M
M
J
J
S E M A N A 28
M
S E M A N A 23
A V A N C E P R O G R A M ÁT IC O D E C U R S O
S E S IO N ES T E Ó R IC AS
V
V
S
S
L
L
M
M
M
J
S E M A N A 24
M
J
S E M A N A 29
V
V
S
S
L
L
M
M
M
J
S E M A N A 25
M
J
S E M A N A 30
V
V
S
S
TEMAS
G e stió n d e B a se d e D a to s A ccess
M a tric e s o A rre g lo s
C o le ccio n e s
M a n e jo d e M e n ú s
P ro c e dim ie n to s y fu n cio n e s
E stru ctu ra d e bucle D O
E stru ctu ra d e bucle F O R … N E X T
C reació n d e u n a rch ivo e je c u ta b le
TEMAS
PROGRAMACIÓN
P O R C E N T A JE D E AVANCE
T O T A LE S
P royectado
C oncretado
P royectado
C oncretado
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
P royectado
C oncretado N otas:
100%
L
100%
L
M
M
J
M
J
S E M A N A 36
M
S E M A N A 31
V
V
L
L
M
M
J
M
J
S E M A N A 37
M
S E M A N A 32
V
V
S
S
L
L
M
M
J
M
J
S E M A N A 38
M
S E M A N A 33
V
V
= = PL = PA
T
S
S
L
L
J
M
J
S E M A N A 39
M
S E M A N A 34
V
V
S
S
L
L
M
M
J
M
J
S E M A N A 40
M
S E M A N A 35
Sesión Práctica en Laboratorio
Sesión Práctica en el Aula
Sesión Teórica.
M
M
N O M B R E Y F IR M A D E L P R O F E S O R
Los re cu a d ro s a b a jo d e fe chas d e b e rá n lle n a rse co n :
S
S
A V A N C E P R O G R A M ÁT IC O D E C U R S O
S E S IO N ES T E Ó R IC AS S E S IO N ES T E Ó R IC AS
EVALUACION No. TEMA GENERAL: GRUPO: PROFESOR: PERIODO: S E S IO N ES PRÁCTICAS S E S IO N ES PRÁCTICAS
V
V
S
S
NOTAS
NOTAS
NOTAS
NOTAS
NOTAS
NOTAS
La serie de Informática Educativa Colores Procesador de Textos Certificación Internacional Word
Hoja de Cálculo
Certificación Internacional Excel
Presentaciones
Certificación Internacional PowerPoint
Diseño Digital
Producción de imagen digital con Photoshop
Diseño Multimedia
Desarrollo de animación y multimedia con Flash
Diseño Vectorial
De la ilustración al diseño editorial con Illustrator
Diseño Web
Desarrollo de interfaces y contenido para Internet
Office Avanzado
Certificación Master en Office
Programación
Fundamentos y prácticas de programación
Publicaciones
Edición de impresos con Publisher
Video Digital
Producción y realización de video digital
Azul
Verde
Naranja
Rojo
Morado
Magenta
Negro
Café
Amarillo
Aqua
Blanco
www.grupoeducare.com