Escolar Documentos
Profissional Documentos
Cultura Documentos
Aplicado
Salomn Ortiz Quintanilla
Docente del Curso de Introduccin a la Programacin
Facultad de Ingeniera de Minas
Universidad Nacional Jorge Basadre Grohmann
Tacna Per
1 Conceptos de programacin
2 Introduccin a Borland C++ Builder
3 Borland C++ Builder Aplicaciones de Consola
4 Programacion Visual
5.- Libreras Matemticas
6 Control de Programa
7 Funciones
8 Arreglos
9 Introduccin a las Bases de Datos
II C++ Builder Aplicado
CONTENIDO
1
Conceptos de Programacin
Introduccion.-
Aplicaciones de los Lenguajes de Programacin: 1
Pasos para Crear un Programa: 1
Programacin Orientada a Objetos 1
Origenes de la Programacion Orientada a Objetos. 1
Conceptos de La Programacion Orientada a Objetos. 2
Aplicacin en La Actividad Minera 3
Introduccion a Diagramas de Flujo 4
Formas de los Smbolos Usados en Diagramas de Flujo. 4
2
Introduccin a Borland C++ Builder
Estructura del C++ Builder.
8
El C++ Builder.
Requerimientos de Hardware. 8
Instalacion de C++ Builder. 8
El Ide (Entorno de Desarrollo Integrado) 8
Una Visin General del Ide de C++ Builder. 8
Menu Principal y Barra de Herramientas. 9
Paleta de Componentes. 10
El Editor de la Forma (Form).o de Formularios 10
El Inspector de Objetos (Object Inspector). 11
Ejercicio. Gestores de Eventos 13
Componentes Visuales y No Visuales 14
El Editor de Cdigo..
El Manejador de Proyectos. 15
Estructura Habitual de un Proyecto Escrito en C++ 16
Ficheros de Proyecto en C++ Builder 16
Cmo Configurar un Proyecto en C++ Builder
Como Aadir Archivos a un Proyecto. 18
Como Eliminar Archivos de un Proyecto. 18
Opciones del Proyecto. 18
Pagina de Formas. 18
Archivos Fuente Generados por C++ Builder. 20
Compilacin, Ejecucin y Depuracin de Programas. 20
Componentes 21
Pginas de Componentes 21
Pagina de Formas. 21
Archivos Fuente Generados por C++ Builder. 23
4
Programacion Visual
Elementos Bsicos
Introduccin 123
Ejemplo de Modelo de Solucion 124
Variables 124
Tipos de Datos 125
Operadores Aritmeticos 125
Operador Cast 127
Jerarquia de Operaciones 128
Creando un Nuevo Proyecto. 128
Como Funcionan Los Eventos. 131
Eventos del Mouse. 131
Eventos del Teclado. 132
Eventos de Sistema. 133
Message Boxes 134
La funcin MessageDlgPos( ) 138
______________
Indice III
El Input Dialog Box 139
La funcin InputQuery( ) 139
Entradas/Salidas En Programacion Visual 140
Componente LABEL (Standard) 140
Componente BUTTON (Standard) 141
Componente EDIT (Standard) 143
Componente MASKEDIT (Adicional) 156
Uso del componente LISTBOX. 158
Componente COMBOBOX(Standard) 160
Uso del componente SCROLLBAR. 162
TRACKBAR 163
Uso del componente BITBTN. (paleta additional) 164
Uso de botones aceleradores (SPEED BUTTON). 165
Componentes de agrupamiento 165
Componente PANEL(Standard y atrs flecha negra) 165
Componente GROUPBOX(Standard) 166
Ventanas en C++Builder 166
Uso de componentes MEMO. 169
Uso del componente RICHEDIT. 171
Aplicacin de SHOWMESSAGE E INPUTBOX 173
Problemas EJEMPLO 176
PROBLEMAS PROPUESTOS 177
5
Libreras Matemticas 181
Convertir un String (cadena) a entero: ToInt( ) y viceversa
Convertir una cadena a nmero flotante
Formateando la salida de valores numricos
Usando funciones Format
Convertir Valores Numricos a String (cadenas)
Funciones Aritmticas
Valor absoluto
La function abs, labs
El mayor entero (Ceiling) de Nmeros
La Funcin ceil( ), Ceil( )
Las funciones floor y Floor
Las funciones frexp(), la frexpl(), y la Frexp()
La funcin Power (Potencia)
La Funcin pow( ) del C/C++
El Exponencial
LnXP1, Log10. Log2. LogN
La raiz cuadrada
FUNCIONES ECONOMICO FINANCIERAS
La Doble Declinacin de Balance (The Double Declining Balance)
La SLNDepreciation, SYDDepreciation
Funciones Financieras.
El Valor futuro de una Inversin
El nmero de perodos de una inversin
El Monto Pagado como Amortizacin (Amount Paid as Principal)
El Valor Presente de una Inversin
Monto pagado como inters
La Tasa de Inters
La Tasa Interna de Retorno (TIR)
Valor Presente Neto
Funciones de medicin
Pi
Ciclo (Cycle) a Radianes (Rad) y viceversa
Conversin de Grado (Degrees) a Radianes (Radians) y viceversa
Estadstica
El mximo valor de enteros
Mximo Valor y el Valor Medio (Mean) de una Serie
MinIntValue
El valor mnimo de una serie
_______________
IV C++ Builder Aplicado
6
Control de Programa
Introduccion 184
Instrucciones Condicionales 184
Condiciones Simples 185
Instruccion IF 186
Condiciones Compuestas 191
Instruccion SWITCH( ); 194
Componentes Visuales de Seleccion y Decisin 197
Uso de Cajas de Verificacion (CHECKBOX) . 197
Problemas Sugeridos 200
Uso de Botones Circulares (RADIOBUTTON). 201
Componente RADIOGROUP (Standard) 202
Problemas Sugeridos 207
Ciclos FOR 209
Ciclo WHILE 211
Ciclo DO-WHILE 213
Conclusiones Acerca de Ciclos 214
Instruccion de Salto Incondicional, Etiquetas o Goto 215
Componente MAINMENU (Standard) 215
Componente POPUPMENU (Standard) 220
Problemas Resueltos 221
La funcin SPRINTF 224
PROBLEMAS SUGERIDOS DEL CAPITULO: 227
7
Funciones
La declaracin return 231
Creacin y uso de funciones 231
Paso de argumentos 232
El programa pasa informacin a la funcin 233
Paso por referencia 234
Escritura de funciones en C++ 236
Prototipos 236
Declaracin y definicin: prototipos 237
Parmetros por defecto 241
Escritura de funciones en C++ Builder sin prototipo 242
EJERCICIOS 243
PROBLEMAS PROPUESTOS 254
8
ARREGLOS
Introduccin 260
Arreglos Tradicionales en C++ 260
Pasar arreglos a las funciones 264
Cadena o arreglo de caracteres 266
Sumar y anexar (append) cadenas: 271
Cadenas y su longitud 271
Controlando la longitud de una cadena 271
Chequeando el mismo texto 271
Pasar cadenas a las funciones 272
Arreglos tipo tabla 273
Arreglos multidimensionales 274
Inicializando arreglos multidimensionales 275
Nuevos tipos de arreglos en C++ (son CLASES e internos dentro del programa) 277
TStringList 278
______________
Indice V
-Componentes visuales de tipo arreglo 283
Componente LISTBOX (Standard) 283
Componente STRINGGRID ( adicional ) 285
Problemas resueltos 289
Problemas propuestos 293
Tablas (Continuacin) 295
Diseo y Creacin de una Tabla 295
Database Desktop 296
9
Introduccin a las Bases de Datos
Introduccin 298
Modelos de Almacenamiento de Datos 298
Tablas 299
Tablas (Continuacin) 300
Diseo Y Creacin de una Tabla 300
Database Desktop 301
Aplicaciones o Programas Con Tablas 303
Aplicaciones por Fila (Rengln) 304
Procedimiento y Componentes 304
Aplicacin por Tabla 306
Componente TABLE (En Paleta de Componentes Pgina: Data Access) 306
Componente DATASOURCE (en Data Access) 306
Componente DBGRID (en Paleta de Componentes Pgina Data Controls) 306
Procesos Bsicos 307
Operaciones con Campos 307
Bsquedas 309
Filtros 310
Grficos o Imgenes 311
Impresin o Reportes 312
QREPORT 312
Impresin de Toda la Tabla 315
Problemas Sugeridos 317
_______________
VI C++ Builder Aplicado
Resumen
______________
1
Conceptos de programacin
INTRODUCCION.- Un lenguaje de programacin es el que se utiliza para definir una secuencia de
instrucciones para su procesamiento por una computadora. Es complicado definir qu es y qu no es un
lenguaje de programacin. El programa est escrito en un cdigo o lenguaje que solo la computadora puede
comprender.
1. Anlisis y Conocimiento del Problema, nos proporciona una mejor comprensin de los procedimientos
que debemos realizar para la elaboracin del programa.
2. Preparacin de los Diagramas de Flujo y/o Seleccin del algoritmo.- Un buen diagrama de flujo dibujado,
har mucho ms fcil escribir el programa. Para un trabajo complejo, se podrn requerir algoritmos, los
mismos que debern insertarse en los diagramas de flujo y/o pseudocdigos detallados y de alto nivel.
3. Escritura del Programa.- Los enunciados del lenguaje de procedimientos se escriben en forma que
complementen los diagramas de flujo. Deben ser verificados para estar seguros que se han seguido las
reglas en el uso del lenguaje y las restricciones de la computadora.
4. Depuracin y Correccin del programa para la entrada.-, despus de organizar una solucin y bosquejar
detalles del algoritmo, deben localizarse y corregirse todos los errores inevitables.
5. Compilacin.- Es un programa utilizado en lenguajes de alto nivel que permite traducir el programa escrito
en lenguaje de procedimiento a lenguaje de maquina.
7. Mantenimiento.- Es la parte ms importante que consiste en realizar un seguimiento del programa para
estudiar su comportamiento durante su utilizacin. Este seguimiento permite actualizar y mejorar el
programa de acuerdo a las necesidades del usuario
El trmino Programacin Orientada a Objetos (POO), hoy en da ampliamente utilizado, es difcil de definir,
ya que no es un concepto nuevo, sino que ha sido el desarrollo de tcnicas de programacin desde
principios de la dcada de los setenta, aunque sea en la dcada de los noventa cuando ha aumentado su
difusin, uso y popularidad. No obstante, se puede definir POO como una tcnica o estilo de programacin
que utiliza objetos como bloque esencial de construccin.
Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. A los elementos
de un objeto se les conoce como miembros; las funciones que operan sobre los objetos se denominan
mtodos y los datos se denominan miembros datos.
-1-
2 C++ Builder Aplicado Ing. Ortiz
abstraccin que se aplica es muy bajo.
3.a Etapa.
Se introducen en esta etapa los conceptos de abstraccin y ocultacin de la informacin.
4.a Etapa.
A partir de los aos setenta se trabaja sobre una nueva clase de lenguajes de simulacin y sobre la
construccin de prototipos tales como Simula-70 y basado en parte de ste, el Smalltalk. En estos
lenguajes, la abstraccin de datos tiene una gran importancia y los problemas del mundo real se
representan mediante objetos de datos a los cuales se les aade el correspondiente conjunto de
operaciones asociados a ellos. Trminos como Abstraccin de datos, objeto, encapsulacin entre otros, son
conceptos bsicos sobre la que se fundamenta la POO.
Objeto: Una estructura de datos y conjunto de procedimientos que operan sobre dicha estructura. Una
definicin ms completa de objeto es: una entidad de programa que consiste en datos y todos aquellos
procedimientos que pueden manipular aquellos datos; el acceso a los datos de un objeto es solamente a
travs de estos procedimientos, nicamente estos procedimientos pueden manipular, referenciar y/o
modificar estos datos.
Para poder describir todos los objetos de un programa, conviene agrupar stos en clases.
Clase: Podemos considerar una clase como una coleccin de objetos que poseen caractersticas y
operaciones comunes. Una clase contiene toda la informacin necesaria para crear nuevos objetos.
Encapsulacin: Es una tcnica que permite localizar y ocultar los detalles de un objeto. La encapsulacin
previene que un objeto sea manipulado por operaciones distintas de las definidas. La encapsulacin es
como una caja negra que esconde los datos y solamente permite acceder a ellos de forma controlada.
1) Mantener a salvo los detalles de representacin, si solamente nos interesa el comportamiento del
objeto.
2) Modificar y ajustar la representacin a mejores soluciones algortmicas o a nuevas tecnologas de
software.
Abstraccin: En el sentido ms general, una abstraccin es una representacin concisa de una idea o de
un objeto complicado. En un sentido mas especifico, la abstraccin localiza y oculta los detalles de un
modelo o diseo para generar y manipular objetos.
Una abstraccin tiene un significado ms general que la encapsulacin, pudiendo hablar de abstraccin de
datos en lugar de encapsulacin de datos.
Una clase es un tipo: Un objeto es una instancia de ese tipo. Adems, la clase es un concepto esttico: una
clase es un elemento reconocible en el texto del programa.
______________
Conceptos de Programacin 3
La programacin orientada a objetos, ha tomado las mejores ideas de la programacin estructurada y los ha
combinado con varios conceptos nuevos y potentes que incitan a contemplar las tareas de programacin
desde un nuevo punto de vista. La programacin orientada a objetos, permite descomponer ms fcilmente
un problema en subgrupos de partes relacionadas del problema. Entonces, utilizando el lenguaje se pueden
traducir estos subgrupos a unidades autocontenidas llamadas objetos.
Objetos: Un objeto es una entidad lgica que contiene datos y un cdigo que manipula estos datos; el
enlazado de cdigo y de datos, de esta manera suele denominarse encapsulacin.
Cuando se define un objeto, se esta creando implcitamente un nuevo tipo de datos.
Polimorfismo: Significa que un nombre se puede utilizar para especificar una clase genrica de acciones.
Herencia: La herencia es un proceso mediante el cual un objeto puede adquirir las propiedades de otro
objeto.
Microscopa
_______________
4 C++ Builder Aplicado Ing. Ortiz
La diagramacin es un mtodo para describir grficamente los pasos de un programa, el diagrama de flujo
muestra la secuencia lgica de un programa. Para hacer ms fcil la lectura del diagrama de flujo se han
asignado smbolos especiales a las diferentes operaciones que pueden presentarse en un programa
(normas ANSI).
Terminal de un programa
Este smbolo indica el comienzo de un programa, una interrupcin temporal o una interrupcin permanente
(fin). Si se usa para indicar el comienzo, el nombre asignado al programa debe ir entre comillas.
Este smbolo indica la direccin del flujo de control o proceso que el programa debe seguir a travs de sus
operaciones.
Estos smbolos indican la continuacin de la direccin del flujo dentro de la misma pgina, o de una a otra
pgina; se usan dentro de la misma pgina cuando la continuidad de la direccin del flujo haga el diagrama
muy confuso. Los conectores siempre se usan en pares, con el nombre o smbolo de su conexin
encerrados en l.
Z2 Z2
Bloque de proceso
Este smbolo encierra uno o varios pasos de iniciacin o de clculo en el programa, en la esquina superior
izquierda del bloque se escribe rdenes descriptivas tal como: calcule o fije
Bloque de decisiones
El bloque de decisiones mostrado se usa en diagramas de flujo para indicar cuando se escoge las
ramificaciones alternas que puede tomar un programa
______________
Conceptos de Programacin 5
Bloque del ciclo DO
Fin ciclo
Sirve para indicar la llamada a una subrutina que se agrega al programa, este bloque significa una
transferencia de control a la subrutina cuyo nombre aparece en el bloque, una vez que se ejecuta el
subprograma el control regresa al mismo bloque. No se usa lnea alguna para mostrar este flujo de control.
El bloque adems del nombre de la subrutina tambin contiene la lista de los argumentos que se trasmiten
en la llamada.
_______________
6 C++ Builder Aplicado Ing. Ortiz
Leer N A(k) = k
(A[i], I=1 . . . N)
Calculo de la media I = 2 . . 20
Aritmtica y geomtrica
No
Escribir: aritmtica, A[I] 0
geomtrica
Si
Escribir A[I]
FIN
Funcin: J = 1. . 400/I
INICIO
K=IxJ
Suma = 0 A[K] = 0
Producto = 1
I=1.. .N
Si
A[I] 0
Aritmtica = Suma/N
Geomtrica = N Pr oducto No Escribir A[I]
FIN
FIN
______________
2
Introduccin a Borland C++ Builder
Una computadora es una mquina que recibe instrucciones y brinda resultados despus de llevar a cabo las
asignaciones apropiadas. Desde que es una mquina espera directivas buenas y precisas para hacer algo.
Tal como una mquina, la computadora no puede calcular lo que se desea. La computadora no piensa (a
pesar de lo que usted haya escuchado antes). Como la computadora no piensa, no puede cometer errores.
Programar computadoras es el arte de escribir instrucciones (programas) que solicita a la computadora que
haga algo (computar) y dar un resultado. Una computadora recibe instrucciones de diferentes formas,
cuatro de las cuales son particularmente importantes:
1- Las primeras instrucciones las da el fabricante de las diferentes partes del hardware tales como drivers
del microprocesador, la tarjeta madre, la disketera y del CD-ROM,etc. Estas partes las fabrican
diferentes compaas configurndolas a su manera. Por ejemplo las instrucciones dadas al
microprocesador, le dicen como llevar a cabo los clculos a que velocidad y bajo que circunstancias.
2. Una vez que se conocen las instrucciones dadas al hardware, los ingenieros del software usan esa
informacin para dar el segundo conjunto de instrucciones a la computadora. Estas instrucciones,
conocidas como sistema operativo, generalmente estn escritas por una compaa. Asimismo esta vez,
se desarrollan algunos leguajes de computadora de tal forma que los programadores pueden escribir
aplicaciones como el tercer conjunto de instrucciones. Algunos de los sistemas operativos en el mercado
son: Microsoft Windows 3.X, Corel Linux, IBM OS\2, Microsoft Windows 9X, Apple OS 10, Red Hat Linux,
Microsoft Windows Millennium, Microsoft Windows XP, Vista etc. Un sistema operativo en particular (por
ejemplo Microsoft Windows Vista) que depende de un procesador en particular (por ejemplo Intel
Pentium) es llamado plataforma
3. El actual tercer conjunto de instrucciones es dado al computador por usted, el programador, usando uno o
ms de los lenguajes que el sistema operativo que est planeando usar puede comprender. Su trabajo
consiste en escribir aplicaciones. Como programador escribe instrucciones que le digan al computador,
actualmente el sistema operativo, que si el usuario hace click derecho, muestra esto, si es doble clic
hace lo otro. Para escribir estas instrucciones llamadas programa, usted primero aprende a hablar
uno de los lenguajes del sistema operativo. Luego se torna ms creativo. Algunos de los programas de
aplicacin en el mercado son Microsoft Word, Lotus ScreenCam, Adobe Acrobat, Jasc Paint Shop Pro, etc
4. Las ltimas instrucciones son dadas por quien usa los programas de usted, o su aplicacin. Por ejemplo,
si usted ha programado Microsoft Word, usted habr dicho al computador que si un usuario hace clic en
el botn New en la barra de herramientas Estndar, quiero mostrar un documento nuevo vaco. Pero si
el usuario hace clic File -> New..., quiere decir llamar el dialogo New y tener ms opciones para crear
un nuevo documento.
El inters aqu est en el lenguaje para computadoras, desde que usted va a escribir programas. Hay
varios lenguajes, por diferentes razones capaces de hacer diferentes cosas. Ejemplo de estos lenguajes
son: Basic, C++, Pascal, etc
C++ Builder habilita y produce aplicaciones ejecutables bajo windows98, XP o windows NT con soporte de
32 bits; El cdigo se ejecutar mucho ms rpido.
Para ser un buen programador en C++ Builder existen distintos aspectos que se deben conocer:
El Entorno de desarrollo integrado de C++ Builder (el IDE).
-7-
8 C++ Builder Aplicado Ing. Ortiz
Los componentes disponibles para crear aplicaciones Windows, y sobre stos, sus propiedades ms
importantes, los mtodos asociados y los eventos a los que pueden responder).
Un conocimiento genrico acerca de la biblioteca de clases visuales de Borland (la VCL), en definitiva,
conocer a grandes rasgos la jerarqua de clases de la que forman parte los componentes.
EL C++ BUILDER.
Borland Software Corporation (anteriormente Borland International, Inc.) es una compaa de software,
ubicada en Scotts Valley, California, Estados Unidos, conocida sobre todo por sus herramientas de
programacin, especialmente Turbo Pascal que evolucion hasta el actual Delphi.
Borland naci en 1983 cuando el joven dans Anders Hejlsberg lleg a un acuerdo con Philip Khan para
vender el compilador de Pascal que Anders haba creado para ordenadores personales. Turbo Pascal fue
un compilador con un concepto de "entorno", revolucionario en aquella poca.
Borland sac ms tarde compiladores para otros lenguajes como Prolog y Basic (Turbo BASIC). Pero el
ms popular y que arraig fue el del C, Turbo C. Delphi sali en la primavera del ao 1995.
As como Delphi surge como la evolucin para MS Windows del Turbo Pascal, otro tanto sucedi con el
Turbo C que dio lugar al C++Builder. La compaa tambin lanz JBuilder, un IDE Java (1996).
En septiembre de 2006 se relanz la gama de productos Turbo (Turbo C++, Turbo C#, Turbo Delphi), como
versiones reducidas de sus herramientas estrella (Delphi, C++Builder) para Windows
C++ BUILDER PROFESIONAL. Ofrece C++ Builder con el equipo de desarrollo y otras herramientas
potentes como libreras y cdigo fuente del que puede aprender sirviendo como tutorial. Esta versin
proporciona algunas secciones especiales que probablemente no requiera inmediatamente, pero se
alegrar al familiarizarse mas con C++ builder.
REQUERIMIENTOS DE HARDWARE.
Necesita una Pc con un procesador lo suficientemente poderoso y una amplia memoria.
INSTALACION DE C++ BUILDER.
Para instalar C++ Builder en tu PC, coloca el CD ROM Borland C++ Builder en tu lector de discos compactos, no
necesitas teclear nada, automticamente el CD comienza la ejecucin.
C++ Builder es una aplicacin Windows que proporciona un entorno de trabajo visual para construir
aplicaciones Windows que integra distintos aspectos de la programacin en un entorno unificado o
integrado. La integracin y facilidad de manejo hace que sea una herramienta indispensable para el
desarrollo rpido de aplicaciones o RAD (Rapid Application Development). Guarda una gran similitud con el
IDE de Visual Basic, aunque existen ciertas diferencias.
______________
Introduccin a Borland C++ Builder 9
En la figura se presenta los principales elementos de C++ Builder (Ambiente de Desarrollo Integrado, por
sus siglas en Ingls IDE). Cada parte trabaja conjuntamente, diseos visuales y editor de cdigo donde la
edicin es similar a otros editores; solo que con el ambiente de desarrollo integrado, usted puede observar
realmente lo que esta construyendo al momento de crearlo.
MENU PRINCIPAL Y BARRA DE HERRAMIENTAS.
Muchas de las opciones que puedes accesar desde el men principal, estn disponibles a travs del panel
de botones aceleradores en la barra de herramientas. En general la barra de herramientas provee una
manera rpida de ejecutar operaciones del programa con un simple click del mouse.
_______________
10 C++ Builder Aplicado Ing. Ortiz
Todos los componentes (visuales y no visuales) estn accesible rpida y cmodamente gracias a la paleta
de componentes. Podemos decir que es un gran almacn de componentes listos para ser incorporados a
una aplicacin, seleccionndolo y colocndolo en un formulario.
Por conveniencia, todos los componentes disponibles se encuentran organizados en distintas pginas o
carpetas segn su funcionalidad. Cada pestaa de la paleta de componentes da acceso a un conjunto de
iconos que representan a componentes que pueden usarse para disear la aplicacin. Su aspecto es el que
mostramos en la figura 2.5.
A diferencia con Visual Basic, todos los componentes de C++ Builder se encuentran cargados por defecto,
aunque se le pueden aadir ms mediante las opciones del men de componentes (opcin Component del
men principal). Cada componente tiene asignada una pgina, por lo que el usuario no puede elegir la
ubicacin de los componentes disponibles por defecto en la paleta de componentes, aunque puede
modificar la disposicin de las pginas y aadir nuevas pginas o componentes ( Tools | Environment
Options)
Conocer los componentes y su filosofa de trabajo (propiedades, mtodos y eventos) es fundamental para
un programador.
EL EDITOR DE LA FORMA (FORM).o de formularios
Cuando comienzas a trabajar con C++ Builder, tu espacio de trabajo y resultados se suple por la forma
principal (Referida antes como diseo de la forma).
______________
Introduccin a Borland C++ Builder 11
Es decir ser la primera ventana que el usuario ve al momento de ejecutarse el programa, su nombre es
Form1.
Esta forma o ventana es un objeto de C++, y como todos los objetos de C++ y del universo, la forma
o ventana tiene asociados propiedades y eventos.
Propiedades son todas las caractersticas particulares que diferencian un objeto de otro objeto, las
propiedades o caractersticas mas comunes son forma, tamao, color, etc., para objetos en C++, estas
propiedades se modifican o individualizan usando el Inspector de Objetos, que es la parte del programa que
las contiene.
Como hemos indicado anteriormente, es una ventana cuadriculada que sirve para disear las ventanas (o
formularios) que formarn la aplicacin (ver figura superior). Es una herramienta visual destinada a disear y
presentar la interfaz de usuario (la apariencia externa) de una aplicacin. Un formulario puede ser la
ventana principal de un programa, un cuadro de dilogo o cualquier otra ventana.
Mediante el uso del ratn podemos colocar componentes de la paleta de componentes en el rea de diseo.
Lo nico que tenemos que hacer es:
1. Buscar el componente en la paleta de componentes.
2. Pinchar sobre el componente para seleccionarlo.
3. Pinchar en el formulario: el componente ha quedado asociado al formulario.
4. Arrastrarlo hasta su posicin final.
La posicin de un componente siempre se ajusta al punto ms prximo de la rejilla para facilitar su ajuste
(su alineacin). La opciones relacionadas con la rejilla pueden modificarse en Tools | Environment Options.
Siempre hay un componente (o en su defecto, el propio formulario) activo. Visualmente se sabe cul es
porque aparece enmarcado con trazos discontnuos en el diseador de formularios. Se puede activar
cualquier componente pinchando (un slo click) sobre l.
Si se pincha dos veces en lugar de una, se activa el editor de cdigo para escribir el gestor del evento
OnClick asociado a ese componente. Si esto no es lo que queremos basta con volver a activar el
diseador de formularios y continuar con la fase de diseo. Cuando se guarde el proyecto, el cdigo
que C++ Builder ha insertado automticamente desaparecer porque no hemos introducido ningn
cdigo para ese gestor.
El inspector de objetos permite ver las propiedades o caractersticas de los objetos que comprendan tu
proyecto, por medio de l se pueden cambiar las propiedades de los objetos, tambin muestra los eventos
asociados a los objetos de la aplicacin.
El inspector de objetos podra llamarse editor de objetos, por la propiedad antes mencionada de poder
modificar las propiedades de los objetos.
_______________
12 C++ Builder Aplicado Ing. Ortiz
Propiedades (Properties): Cuando se comienza un proyecto el inspector de objetos despliega las
propiedades de la forma principal como son: nombre, color, altura, ancho, posicin etc. Recordemos que
al seleccionar otro objeto, automticamente mostrar las propiedades de ese objeto.
Las propiedades son los elementos del componente que configuran su aspecto y controlan su
comportamiento.
Muchos componentes tienen propiedades en comn. Por ejemplo, todos los componentes visuales tienen
las propiedades Top y Left que controlan la posicin del componente en el formulario, tanto en tiempo de
diseo como en tiempo de ejecucin.
Hemos visto como pueden establecerse y modificarse las propiedades de los componentes en tiempo de
diseo utilizando el inspector de objetos. Las propiedades tienen, normalmente, un mtodo de acceso
asociado que se ejecuta al modificar la propiedad en tiempo de ejecucin. Para modificar una propiedad
basta (generalmente) con asignarle el nuevo valor. Al realizar un cambio, la VCL invoca el mtodo de
acceso a la propiedad. En el caso concreto de la propiedad Left, la VCL dibuja de nuevo todo el formulario
en la nueva ubicacin.
A modo de resumen, las propiedades tienen dos especificadores de acceso que se emplean al consultar o
modificar el valor de una propiedad en tiempo de ejecucin. En definitiva, hay un especificador de lectura y
un especificador de escritura.
Los especificadores de acceso asocian mtodos de lectura o de escritura (funciones, en definitiva) con las
propiedades. Al consultar o modificar el valor de una propiedad se invocan, automticamente, las funciones
respectivas asociadas:
Al asignar un nuevo valor a una propiedad se est accediendo al especificador de escritura. La VCL
comprueba si existe un mtodo de acceso asociado al especificador de escritura y si es as, lo ejecuta.
Si no existe, simplemente asigna el nuevo valor a la propiedad.
Al consultar el valor de una propiedad se est accediendo al especificador de lectura. En la mayora de
los casos el especificador de lectura no hace ms que devolver el valor de la propiedad.
Al activar el objeto, al oprimir una tecla, al oprimir el mouse, al soltar el mouse, etc. esos eventos son
disparados con acciones del usuario, o del sistema operativo mismo. Por ejemplo el evento; al hacer click
en el mouse, se dispara o hace una accin cuando el usuario hace click con el mouse para ese objeto.
Tambin se pueden modificar las propiedades dentro de un programa, usando instrucciones apropiadas,
mismas que llevan el siguiente formato:
nomobjeto->propiedad = nvovalor;
ej.; Form2->Color=clRed;
Cuando se responde a un evento se dice que se est manipulando el evento. Los eventos se manejan
mediante los gestores o manipuladores de eventos.
La forma de tratar un evento asociado a un componente en C++ Builder es sencilla: se activa el componente
que va a responder al evento y utilizando el Inspector de Objetos (pestaa Events) se selecciona el evento
______________
Introduccin a Borland C++ Builder 13
al que debe responder y, cuando se active el editor de cdigo, se escribe el cdigo asociado al gestor del
evento.
Se dice que Windows est orientado a eventos. Esto significa que cualquier programa est condicionado por
lo eventos que ocurren en el entorno Windows. Un programa Windows est continuamente sondeando al
sistema ante la ocurrencia de cualquier evento y de ocurrir, Windows avisa al programa envindole un
mensaje. Un programa Windows est ocioso la mayor parte del tiempo esperando a que ocurra algn
evento.
Ejercicio. Gestores de eventos
Construiremos el gestor del evento asociado a modificar el componente CheckBox de forma que cuando se
active (inicialmente est desactivado) se muestren los dos botones de radio y se active el botn de OK.
Cuando se desactive, los botones de radio se volvern a ocultar y el botn de Ok se desactivar. Para ello,
escribiremos el gestor asociado al evento OnClick del componente CheckBox:
void __fastcall TMainForm::CheckBoxClick(TObject *Sender)
{
if (CheckBox->Checked == true) {
Al ejecutar el programa, cuando se activa el CheckBox
RadioButton1->Show();
produce el siguiente resultado:
RadioButton2->Show();
RadioButton1->Checked = true;
Figura E6.1. El programa al activar el CheckBox
OKButton->Enabled = true;
}
else {
RadioButton1->Hide();
RadioButton2->Hide();
OKButton->Enabled = false;
LabelOutput->Caption = "";
}
}
//--------------------------------------
Finalmente, escribiremos el gestor del evento asociado a hacer click sobre el botn OK, que est operativo
(propiedad Enabled) nicamente cuando el CheckBox est activado, y en consecuencia, cuando pueden
emplearse los botones de radio. Observar el siguiente cdigo y dos resultados de la ejecucin (figuras E6.2
y E6.3):
//------------------------------------------------------------
void __fastcall TMainForm::OKButtonClick(TObject *Sender)
{
if (RadioButton1->Checked) {
if (Edit->Text == "")
LabelOutput->Caption = "Escogi Opcin 1, Sr/Sra. desconocido/a";
else
LabelOutput->Caption = "Escogi Opcin 1, Sr/Sra. " + Edit->Text;
}
else {
if (Edit->Text == "")
LabelOutput->Caption = "Escogi Opcin 2, Sr/Sra. desconocido/a";
else
LabelOutput->Caption = "Escogi Opcin 2, Sr/Sra. " + Edit->Text;
}
}
//------------------------------------------------------------
_______________
14 C++ Builder Aplicado Ing. Ortiz
Figura E6.2. Resultado al seleccionar la opcin 1 Figura E6.3. Resultado al seleccionar la opcin 2
estando el cuadro de edicin vaco. habiendo escrito algo en el cuadro de edicin.
Se pueden establecer muchas clasificaciones para los componentes. Una de ellas es la de visuales o
controles, frente a no visuales.
Un componente es visual cuando tiene una representacin grfica en tiempo de diseo y ejecucin
(botones, barras de scroll, cuadros de edicin, etc.), y se dice no visual en caso contrario (temporizadores,
cuadros de dilogo -no visibles en la fase de dieo-, etc). Por lo dems no existen ms diferencias entre
ellos, excepto, claro est, las derivadas de la visualizacin del componente.
Los componentes no visuales se pueden colocar en los formularios de la misma manera que los controles,
aunque en este caso su posicin es irrelevante.
EL EDITOR DE CODIGO.
La ventana de edicin de
cdigo muestra el cdigo
actual de tu aplicacin C+
+ Builder. Al aadir
objetos y hacer doble
click sobre ellos,
automticamente se
editar en la ventana de
edicin la llamada a la
funcin que asociar al
evento de ese objeto,
dejando el espacio en
blanco para que se
codifique la accin que FIG. 2.19 Ventana de edicin de cdigo.
se desee para ese
evento.
En la ventana del editor pueden "pegarse" el gestor de proyectos y el inspector de clases, aunque estas
dos herramientas pueden aparecer tambin como ventanas separadas.
o Inspector de clases: Es un navegador que muestra las clases, objetos y mtodos asociados a la
aplicacin. Aparece por defecto asociada al editor (en el Unit1.cpp o Editor, en la parte izquierda).
Para abrir esta ventana: View | ClassExplorer.
o Administrador de proyectos: Es bsicamente un navegador entre los diferentes ficheros que forman
la aplicacin. No aparece por defecto, y cuando se abre (View | Project Manager) se muestra como
una ventana independiente. En la figura mas abajo se muestra asociada al editor, en la parte superior
izquierda: En el Object Tree View, pegado.
Pulsando con el botn derecho aparece un men contextual (figura 2.19a) con algunas opciones bastante
tiles.
______________
Introduccin a Borland C++ Builder 15
El editor de cdigo est relacionado muy estrechamente con el inspector de objetos. Al hacer doble click en
un evento, el IDE genera automticamente el cdigo para la funcin manejadora para tal evento. No
tenemos que preocuparnos de cul es exactamente el prototipo que debemos de usar para la funcin que
maneje el evento, ya que este se generar correctamente en la unidad de cdigo asociada al Form actual.
Cuando queramos eliminar un manejador de evento que ha sido generado automticamente es conveniente
no borrar "a mano" la funcin. Lo mejor es borrar "el cuerpo" de dicha funcin (lo que el programador
escribe) y dejar que el resto lo elimine C++ Builder (lo que ocurrir cuando se guarde el archivo).
Ejercicio 3. Uso del inspector de objetos para escribir gestores de eventos con el editor de cdigo
Vamos a construir el gestor del evento que se genera al hacer click sobre el botn de salir. Se trata de que
al pinchar sobre este botn la aplicacin termine su ejecucin.
Seleccionar el componente ExitButton y en la pestaa Events del inspector de objetos, hacer doble click en
OnClick. El editor de cdigo muestra el siguiente cdigo, generado automticamente:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->Terminate(); // Similar a Close()
}
//---------
Ahora, generar el ejecutable y ejecutar el programa: al hacer click sobre el botn de salir, el programa deja
de ejecutarse.
EL MANEJADOR DE PROYECTOS.
Un sencillo proyecto de C++ Builder est conformado por solo una forma y su cdigo, pero en aplicaciones
muy grandes, puede conformarse un proyecto por varias formas, cdigo y varios archivos de cabecera
distintos a las libreras que por omisin ya necesita la aplicacin, por tanto un proyecto puede integrar varios
archivos.
Un proyecto es un conjunto de archivos que trabajan en equipo para crear un archivo ejecutable
independiente o una DLL. Un grupo de proyectos es un conjunto de proyectos.
Los proyectos que componen un grupo de proyectos, y los archivos que componen cada uno de esos
proyectos, es lo que presenta, en forma de rbol, el administrador de proyectos. Puede emplearse como
navegador para seleccionar el mdulo con el que se va a trabajar. Para visualizar el gestor de proyectos,
seleccionar View | Project Manager. El gestor de proyectos puede "pegarse" al editor de cdigo,
arrastrndolo hasta colocarlo sobre ste ltimo (ver figura 2.19a).
Para saber cuales son los archivos que comprende un proyecto, usaremos el manejador del proyecto, que
muestra el rbol de archivos involucrados en el orden en que fueron aadidos.
_______________
16 C++ Builder Aplicado Ing. Ortiz
Vaya a View->Project Manager y aparece la ventana
Los ficheros de proyecto especifican todos los recursos necesarios (ficheros .cpp, .h, ficheros de descripcin
de formularios, etc.) que se necesitan para la construccin del ejecutable. Los ficheros de proyecto tienen
extensin .bpr y el ejecutable que se genera tiene el mismo nombre que el proyecto y la extensin .exe,
lgicamente.
Todo proyecto en C++ Builder se compone, al menos, de un archivo de cdigo que contiene la funcin
principal (WinMain()). Su nombre es el nombre del proyecto, con la extensin .cpp (en la figura 2.20,
Project1.cpp). Este fichero no est, habitualmente, visible, ya que no es necesario modificarlo. Puede
abrirse en el editor de cdigo con la opcin Project|View Source.
Cualquier aplicacin tpica tendr al menos una ventana. Para cada ventana (en la figura 2.20, Form1)
habr un mdulo, formado por una pareja de ficheros: un .cpp (en la figura 2.20, Unit1.cpp) y su
correspondiente .h: en el fichero .cpp estarn los gestores de los eventos asociados a los componentes de
esa ventana y en el .h (que no se modificar, normalmente) estar la declaracin de los componentes de
esa ventana.
Adems del fichero que contiene la funcin principal, un proyecto puede tener asociados una serie de
mdulos adicionales en los cuales pueden incluirse funciones y clases de objetos, como en cualquier
aplicacin C++. Cada uno de estos mdulos estar formado por una pareja de ficheros: un .cpp y su
correspondiente .h.
Estructura habitual de un proyecto escrito en C++
Una aplicacin escrita en C++ se compone de un mdulo (fichero) que contiene la funcin main() y,
opcionalmente, de una serie de mdulos adicionales que pueden contener declaraciones de clases,
declaraciones de funciones (prototipos), definiciones de clases, etc.
Ejemplo. A modo de ejemplo, emplearemos el proyecto Inicial, que se desarrolla en los seis
ejercicios introductorios. ANEXO4
Consiste en desarrollar una sencilla aplicacin que consta de una nica ventana. El proyecto se
llamar Inicial.bpr
En todo proyecto existe un fichero que contiene la funcin principal. En aplicaciones que hacen uso de la
______________
Introduccin a Borland C++ Builder 17
VCL la funcin main() se llama WinMain() y se aloja en un fichero cuyo nombre coincide con el del proyecto.
Habitualmente no es preciso trabajar sobre este fichero.
Si fuera preciso, para mostrar en el editor de cdigo el fichero que contiene a la funcin WinMain(),
seleccionar Project | View Source).
Ejemplo. La funcin WinMain() se alojar en el fichero Inicial.cpp
Adems, cualquier aplicacin contendr al menos una ventana. Para cada ventana existirn dos mdulos
adicionales:
1. Un mdulo con extensin .cpp con el cdigo asociado a esa ventana (usualmente contiene los gestores
de los eventos que se pueden gestionar en esa ventana).
2. Un mdulo cabecera con extensin .h que contiene la declaracin de los componentes que se incluyen
en la ventana.
Ejemplo. En este ejemplo, los ficheros asociados a la ventana principal (y nica) se llamarn
main.cpp y main.h.
Ejemplo. Crear un directorio (p.e. Ejercicio) para guardar los ficheros asociados al proyecto.
A) Si se acaba de arrancar C++ Builder aparece, por defecto aparece un formulario vaco llamado Form1
asociado al proyecto Project1.bpr.
B) Si existe un proyecto vigente, lo ms cmodo es crear una nueva aplicacin (File | New Application)
salvando, si se desea el proyecto vigente.
Ejemplo. Cambiar la propiedad Caption por Form de Prueba y la propiedad Name por
MainForm.
2. Guardar ficheros asociados a ventanas (File | Save As) en el directorio adecuado para dar nombres
significativos a los ficheros.
_______________
18 C++ Builder Aplicado Ing. Ortiz
A un grupo de proyectos se le pueden aadir proyectos, archivos, formularios, mdulos... nuevos o que ya
existan.
EXT Descripcin
DFM Archivos de descripcin de formulario. Contiene los valores de las propiedades de cada
componente. Aunque est en formato binario, puede verse como texto seleccionando View as text
en el men contextual que aparece al pulsar con el botn derecho del ratn cuando se est
situado sobre el formulario.
eliminar y haga click en el botn de remover archivo y ser borrado de la lista. (no de su mquina,
solo del proyecto).
OPCIONES DEL PROYECTO.
______________
Introduccin a Borland C++ Builder 19
Puede accesar a detalles del ambiente de configuracin del proyecto actual eligiendo del men principal
Project Options
Este comando abre la caja de dialogo de opciones del proyecto, toma el ambiente para cada proyecto y
puede ser accesado en cualquier momento durante el desarrollo de la aplicacin.
Puede explorar las 6 hojas para ver las opciones que estn disponibles. Al iniciar un proyecto, comienza con
la configuracin que tiene por omisin.
PAGINA DE FORMAS.
Por omisin est incluida la auto creacin de una forma, al abrir un nuevo proyecto, evitando que usted al
crear una nueva aplicacin tenga que pedir una forma. Al crear un nuevo proyecto se crea automticamente
su forma principal y su ventana de edicin de cdigo. Se puede ir a la barra de men Project Options
LA PAGINA DE APLICACIONES.
LA PAGINA PASCAL .
C++ Builder tiene un hermano mayor llamado Delphi que es una herramienta RAD. Y sus aplicaciones se
_______________
20 C++ Builder Aplicado Ing. Ortiz
construyen en lenguaje pascal. Si ha manejado Delphi, ver que el ambiente de desarrollo es prcticamente
el mismo. Puede usar funciones hechas en Delphi dentro de C++ Builder.
LA PAGINA DE ENLAZADO.
La mayora del tiempo se querr que la aplicacin genere un archivo ejecutable, en otras ocasiones querr
que su construccin sea una librera para diferentes programas, en este caso usted puede llamar a la opcin
de libreras de enlazado dinmico (DLL) y las puede generar cambiando la opcin a generar DLLs.
PAGINA DIRECTORIOS/CONDICIONAL.
Usted no necesita cambiar la configuracin en esta pagina, a menos que tenga en diferentes directorios de
los que por omisin genera la instalacin de C++ Builder.
Cada una de las siguientes extenciones son vitales para cualquier proyecto de C++ Builder.
Project1.bpr: Este es el archivo principal de opciones del proyecto. Un archivo .bpr se requiere en cada
aplicacin; es un archivo de texto que puede examinar eligiendo del men principal: View Project
MakeFile. Este archivo contiene instrucciones de cmo C++ Builder construir el archivo (.exe) ejecutable
para el proyecto.
Project1.Cpp: Este archivo contiene el cdigo principal de la aplicacin, comparte el mismo nombre del
proyecto, lo crea automticamente C++ Builder al darle nombre al proyecto; contiene el cdigo de iniciacin
y terminacin del programa. si quiere examinar este archivo, solo elija del men principal View Project
Source.
Unit1.cpp: Este es el cdigo que usted le da a los eventos de los objetos que tendr en su forma final, este
cdigo es el que introduce en la ventana de edicin, o en su editor de cdigo.
Unit1.h: Para cada archivo .cpp, C++ Builder
crea automticamente un .h correspondiente. El
archivo de cabecera contiene la declaracin de la
forma y menciona a C++ Builder la lista de
componentes y los eventos que tendr la
aplicacin.
Unit1.obj Cuando se compila el proyecto se crea el archivo binario con extensin .obj.
Cada aplicacin contendr un archivo .obj, este archivo cambiar cada vez que se reconstruya el proyecto.
Project1.exe o Project1.dll: Este es el archivo final segn se halla elegido en su proyecto, el .exe podr
ejecutarse, y los dll son libreras dinmicas que pueden utilizarse desde otros programas.
______________
Introduccin a Borland C++ Builder 21
Project1.il?: Al ver la extensin .il? indica que el archivo es usado al enlazar, C++ Builder usa una
tecnologa de compilacin muy rpida, lo que hace que la compilacin o recompilacin de sus proyectos sea
en cuestin de segundos.
El objetivo final es la creacin de un programa ejecutable correcto que funcione bajo Windows. El ejecutable
se construye tomando como referencia los ficheros que forman el proyecto activo. Para esta tarea se utilizan
los mens Project y Run (figura 2.25).
En la compilacin se trata de la obtencin del programa ejecutable (extensin .EXE). Las operaciones
asociadas a este objetivo se encuentran en el men que se despliega al seleccionar la opcin Project del
men principal (figura 2.25), y las ms importantes son:
Figura 2.25. Submens Project y Run del men principal.
Compile Unit. Compila el modulo
fuente activo (extensin .CPP) Project Run
generando un fichero objeto
(extensin .OBJ).
C++ Builder proporciona facilidades para la depuracin de programas, seleccionables al desplegar el men
Run (figura 2.25). Las ms importantes son:
Step Over F8. Ejecuta instruccin a instruccin el programa, pero ejecuta las llamadas a funciones
como una instruccin ms, sin mostrar la ejecucin de las instrucciones de las funciones.
Trace Into F7. Ejecuta instruccin a instruccin el programa, incluidas las instrucciones de las
funciones llamadas.
Run to Cursor F4. Ejecuta desde el principio del programa hasta la lnea en la que est situada el
cursor.
Para que la depuracin sea ms completa y verstil se incorporan las siguientes opciones en el mismo
men:
Evaluate/Modify Ctrl+F7. Evaluar expresiones que involucren a las variables y modificar los valores
de las variables.
Add Breakpoint. Aade un punto de ruptura en la lnea en la que est situado el cursor. de modo
_______________
22 C++ Builder Aplicado Ing. Ortiz
que cuando se ejecute el programa se detendr su ejecucin al llegar al siguiente punto de ruptura.
Componentes
Los componentes son unos elementos genricos con una funcionalidad muy concreta, cuya nica finalidad
es la reutilizacin. Cada uno de ellos est destinado a realizar una tarea tpica en una aplicacin.
Un componente de la VCL es una clase que caracteriza a un control de Windows agregando propiedades,
mtodos y gestores de eventos a cada control.
La filosofa de los componentes en C++ Builder es exactamente la misma que en Visual Basic. Esto es tanto
as que algunos componentes pueden utilizarse en ambos entornos (los componentes ActiveX).
Pginas de componentes
Como ya hemos comentado anteriormente los componentes se agrupan en la paleta de componentes en
distintas pginas, a saber:
Additional: Los componentes de esta pgina son controles especializados. propios de C++ Builder.
System: Esta pgina incluye controles muy especializados para interaccin con el sistema.
Data Access y Data Controls: Componentes especializados para acceso a bases de datos.
Midas: Esta pgina incluye componentes que permiten el desarrollo de aplicaciones multicapa con
MIDAS.
Decision Cube: Incluye componentes para realizar anlisis multidimensionales de datos con objeto de
tomar decisiones.
Dialogs: Contiene cuadros de dilogo comunes en aplicaciones Windows listos para usar.
Win 3.1: Componentes propios de Windows 3.1, la mayora de ellos se mantienen en C++ Builder slo
por compatibilidad con versiones anteriores.
Active X: Los componentes de esta pgina son objetos Active X, creados por otros desarrolladores
puede que utilizando otros lenguajes de programacin.
Standard: Esta tabla contiene los objetos para hacer eficaces y elegantes tus aplicaciones Windows,
incluye componentes para desplegar y editar texto, botones, barras de estado y mens.
Standard.- Frames, MainMenu, PopupMenu, Label, Edit, Memo, Button, CheckBox, RadioButton, ListBox,
ComboBox, ScrollBar, GroupBox, RadioGroup, Panel. (En el Help Buscar por ejemplo: Standard page
component para tener una descripcin de cada uno de ellos)
______________
Introduccin a Borland C++ Builder 23
Esta pgina incluye los componentes comunes y ms habituales de los programas Windows
Un marco (Frame), como una forma, es un contenedor para otros componentes. En
algunas formas, sin embargo, un marco es ms como un componente hecho a la
medida que una forma (form1). Los marcos pueden ser guardados en la paleta de
Frames Componentes para el aprovechamiento fcil, y pueden estar anidados dentro de
formas (forms), otros marcos, u otros objetos del contenedor. Los marcos (Frames)
son tiles para organizar grupos de controles que son usados en multiples lugares en
su aplicacin.
Crea una barra de men (que acta como men principal). Para aadir opciones al
MainMenu men y a los submens, aadir el componente MainMenu al formulario y hacer doble
click sobre l para acceder al diseador de mens.
Crea mens desplegables (tambin llamados mens contextuales) que aparecen
PopupMenu cuando se pincha con el botn derecho del ratn. Para configurar el men
desplegable, proceder como con el componente MainMenu.
Muestra texto que el usuario no puede seleccionar ni manipular. Se usa para mostrar
Label textos de ttulo, encabezamientos, o incluso para mostrar resultados, ya que puede
establecerse su valor (propiedad Caption) en tiempo de ejecucin.
Muestra un rea de edicin de texto en la que el usuario puede introducir y modificar
Edit
una nica lnea de texto.
Muestra un rea de edicin de texto en la que el usuario puede introducir y modificar
Memo
mltiples lneas de texto.
Button Crea un botn que el usuario puede pulsar para efectuar acciones.
Presenta una opcin binaria (Si/No - Verdad/Falso) de manera que cuando se
selecciona este control, se permuta entre ambos valores. Este control puede
CheckBox emplearse para crear un grupo de estos controles que representen elecciones que no
sean mutuamente exclusivas (al contrario que los RadioButton, por lo que el usuario
puede seleccionar ms de una opcin en un grupo.
_______________
24 C++ Builder Aplicado Ing. Ortiz
DrawGrid Crea una rejilla que puede usarse para mostrar datos en filas y columnas.
Win32: Estos componentes permiten el acceso a los controles de usuario-interface de Windows32. Uno de
los principales es la vista del rbol de directorio, (conocido como windows explorer), control de pgina, etc.
______________
Introduccin a Borland C++ Builder 25
ImageList al formulario y hacer doble click sobre l para acceder al editor de listas de
imgenes.
Es una especializacin del componente Memo: proporciona la posibilidad de 1)
RichEdit modificar propiedades acrerca de la fuente de letra (familia, tamao, color, negrita o
(solo VCL) itlica), 2) modificar propiedades de formato (alineamiento, tabulaciones, indentacin
o numeracin), y 3) marcacin de texto y arrastre del mismo.
Es una barra que muestra un rango y un indicador que muestra el valor actual y que
TrackBar
permite modificarlo.
Es una barra rectangular que se va "llenando" de izquierda a derecha. Se emplea
ProgressBar
para mostrar cmo progresa una operacin.
UpDown
Son botones para incrementar y decrementar valores.
(solo VCL)
HotKey
Asigna una combinacin de teclas a cualquier componente.
(solo VCL)
Animate Una ventana que se emplea para mostrar ficheros AVI (Audio Video Interleaved) o
(solo VCL) series de "bitmaps" dispuestos en secuencia, como una pelcula.
DateTimePick Muestra una lista de elecciones que est acompaada de una barra de scroll para
er seleccionar fechas. La fecha puede seleccionarse desde el calendario o empleando
(solo VCL) la barra de scroll o las flechas.
TreeView
Muestra un conjunto de objetos estructurados jerrquicamente.
HeaderContr Muestra un encabezamiento sobre columnas de texto o nmeros. Este control puede
ol dividirse en varias partes para proporcionar cabeceras para mltiples columnas.
rea para indicar el estado de acciones o textos de pista amplios ("Hints") en la parte
StatusBar
baja de la ventana.
Gestiona botones rpidos y otros controles, colocndolos adecuadamente ajustando
ToolBar
su posicin y tamao.
CoolBar Muestra una coleccin de controles "CoolBand" dentro de bandas que pueden
(solo VCL) moverse y redimensionarse.
FastNet .-
_______________
26 C++ Builder Aplicado Ing. Ortiz
Componente BDE Data Access y Data Controls: Se pueden accesar bases de datos y hacer consultas
dentro de las aplicaciones que construyas con las facilidades que permite estos 2 grupos de objetos.
Acts as a conduit between a dataset component such as TTable and data-aware components
DataSource
such as TDBGrid.
Retrieves data from a physical database table via the BDE and supplies it to one or more data-
Table aware components through a DataSource component. Conversely, it also sends data received
from a component to a physical database via the BDE.
Uses SQL statements to retrieve data from a physical database table via the BDE and supplies
Query it to one or more data-aware components through a TDataSource component. Conversely, uses
SQL statements to send data from a component to a physical database via the BDE.
______________
Introduccin a Borland C++ Builder 27
Enables an application to access server stored procedures. Sends data received from a
StoredProc
component to a physical database via the BDE.
Sets up a persistent connection to a database, especially a remote database requiring a user
Database
login and password.
Provides global control over a group of Database components. A default TSession component is
automatically created for each C++Builder database application. You must use the TSession
Session
component only if you are creating a multithreaded database application. Each database thread
requires its own session component.
Copies a table structure or its data. Can be used to move entire tables from one database
BatchMove
format to another.
Lets you use cached updates support with read-only datasets. For example, you could use a
TUpdateSQL component with a "canned" query to provide a way to update the underlying
UpdateSQL datasets, essentially giving you the ability to post updates to a read-only dataset. You associate
a TUpdateSQL component with a dataset by setting the dataset's UpdateObject property. The
dataset automatically uses the TUpdateSQL component when cached updates are applied.
_______________
28 C++ Builder Aplicado Ing. Ortiz
se realizan clculos similares a como se hacen en una hoja de clculo.
The basic report form on which you build all your reports. It is a visual component that
QuickRep takes the shape of the currently selected paper size. Create reports by dropping bands
and printable components on the TQuickRep component and connecting it to a dataset.
Links additional datasets into a report. Typically you would set up a master/detail
QRSubDetail relationship between table or query components and create a similar relationship with
TQRSubDetail components.
Drop bands on a TQuickRep component and set the BandType property to tell how the
QRBand
band will behave during report generation.
If you have bands with expanding components and want other components to be
QRChildBand moved down accordingly you can create a child band and put the moving components
on it. It's also useful if you have very long bands that span multiple pages.
Allows you to group bands together and provides control for headers, footers, and page
QRGroup
breaks.
Prints static or other non-database text. Enter the text to be displayed in the Caption
QRLabel
property. You can split text on multiple lines and even multiple pages.
A data-aware version of the TQRLabel that prints the value of a database field.
Calculated fields and text field types can be printed, including String fields, various
numeric fields, date fields and memo fields. Text can span multiple lines and pages.
QRDBText
You connect the component to the data field by setting the DataSource and DataField
properties. Unlike regular data-aware components, TQRDBText works even with
dataset controls disabled to improve speed.
Prints database fields, calculations, and static text. Input a valid QuickReport
QRExpr
expression in the Expression property.
Prints system information such as report title, current page number, and so on. Select
QRSysData
the data to print in the Data property. Set any preceding text in the Text property.
Prints a large amount of text that does not come from a database field. It can be static
QRMemo text or you can change it during report generation. You can set the field to expand
vertically as needed and then span multiple pages if necessary.
QRRichText Allows you to embed rich text into your report.
QRDBRichText Provides a Quick Report wrapper for accessing DBRichText fields in your reports.
QRShape Draws simple shapes like rectangles, circles, and lines on a report.
Displays a picture on a report. Supports all image formats supported by the TPicture
QRImage
class.
Imprime imagines almacenadas en campos binarios (BLOB). Imprime todos los
QRDBImage
formatos grficos soportados por C++Builder.
QRCompositeReport Permite combiner mas de un reporte junto.
QRPreview Trae una forma que le permite previsualizar un reporte en la pantalla e imprimirlo.
QRChart Le permite tomar un componente TChart y arrastrarlo a la forma Quick Report.
Dialogs: Permite hacer cajas de dialogo que agilizan el desarrollo de tus aplicaciones como el abrir y grabar
archivos, seleccionar tipos de letras, colores e impresoras y mucho ms.
______________
Introduccin a Borland C++ Builder 29
ColorDialog Muestra una ventana de dilogo comn de Windows para especificar color.
Win31: Esta pgina incluye controles propios de Windows 3.1 para permitir compatibilidad con aplicaciones
antiguas. Muchos de estos controles tienen su versin actualizada en componentes incluidos en ina Win32.
Data-aware list box that displays values looked up from columns in another table at
DBLookupList
runtime.
Data-aware combo box that displays values looked up from columns in another table at
DBLookupCombo
runtime.
Creates notebook-like tabs. You can use the TabSet component with the Notebook
TabSet
component to enable users to change pages.
Outline Displays information in a variety of outline formats.
Creates a component that contains multiple pages, each with its own set of controls. Users
TabbedNotebook
select a page by clicking the tab at the top of the page
Creates a component that can contain multiple pages. Used with the Notebook
Notebook
component, it enables users to change pages.
Creates a sectioned region for displaying data. Users can resize each section of the region
Header
to display different amounts of data.
FileListBox Displays a scrolling list of files in the current directory.
Displays the directory structure of the current drive. Users can change directories in a
DirectoryListBox
directory list box.
DriveComboBox Displays a scrolling list of available drives.
FilterComboBox Specifies a filter or mask to display a restricted set of files.
_______________
30 C++ Builder Aplicado Ing. Ortiz
TrayIcon
Performance Graph
CSpinButton
CSpinEdit
CGauge
CDirectoryOutline
CColorGrid
CCalendar
IBEVentAlerter
ActiveX: Esta tabla de componentes, contiene un checador de ortografa as como objetos grficos
impresionantes. Los componentes de esta pgina son objetos ActiveX. Son aplicaciones completas y
portables creadas por otros desarrolladores.
Permite crear grficos altamente personalizados. Escoja propiedades para mostrar el panel de
Chartfx
control que le permite definer los valores, apariencia y funcionalidad de los componentes del grfico.
VSSpell Visual Speller, permite personalizar un chequeador de ortografa
F1Book Formula One, permite disear una hoja de clculo con todas sus caractersticas.
VtChart Permite crear 3D charts.
Graph Pinnacle Graph, permite crear grficos 2D.
Tambin los componentes son objetos de C++Builder y como tales tambin tienen asociados propiedades y
eventos, tales como los tiene la forma principal, solo que existen pequeas variaciones en cuanto a sus
propiedades y eventos propios con respecto a Form1.
Recordar adems, que es el Inspector de Objetos en primera instancia quien permite asociar o modificar
propiedades especificas tanto a una forma como a un componente.
Ya en segunda instancia las propiedades de formas y componentes se pueden modificar tambin
directamente dentro de un programa, usando instrucciones como las ya descritas en prrafos muy
anteriores.
______________
3
PROGRAMACION VISUAL
ELEMENTOS BSICOS
INTRODUCCION
Los nuevos sistemas de informacin son costosos en tiempos y recursos, la solucin moderna de sistemas
de informacin exigen nuevas herramientas y metodologas para resolver rpida, econmica y eficiente los
problemas de informacin planteados por las organizaciones.
C++Builder, es un compilador que permite usar cualquiera de los tres enfoques (programacin tradicional,
modular o estructurada; programacin orientada a objetos ( OOP; programacin visual), en la solucin de
problemas de informacin que puedan y deban ser resueltos empleando el computador y el lenguaje. Para
propsitos de aprendizaje usaremos el tercer enfoque, es decir programacin en ambientes visuales y
usando el lenguaje de programacin C++Builder .
En programacin visual ( que tambin es heredera de OOP ),la interfase con el usuario( pantallas) son
generadas por el propio compilador y el ingeniero de software solo se concentra en resolver el problema
planteado.
MODELO DE SOLUCION
En general un problema de informacin es posible entenderlo, analizarlo y descomponerlo en todos sus
componentes o partes que de una u otra manera intervienen tanto en su planteamiento como en su
solucin.
Una herramienta rpida que nos permite descomponer en partes un problema para su solucin, es el
llamado modelo de solucin, este consiste de una pequea caja que contiene los tres elementos ms
bsicos en que se puede descomponer cualquier problema sencillo de informacin, estas tres partes son:
a. LA PRIMERA PARTE son todos los datos que el computador ocupa para resolver el problema, estos
datos son almacenados internamente en la memoria del computador en las llamadas variables de
entrada.
b. LA SEGUNDA PARTE son todas las operaciones generalmente algebraicas necesarias para
solucionar el problema, generalmente esta parte del modelo es una formula (o igualdad matemtica,
ej. X= y + 5).
En resumen para todo problema sencillo de informacin es necesario plantearse las siguientes preguntas:
Que datos ocupa conocer el computador para resolver el problema y en cuales variables de entrada se
van a almacenar ?
Que procesos u operaciones debe realizar el computador para resolver el problema planteado ?
Que informacin o variables de salida se van a desplegar en pantalla para responder al problema
planteado originalmente?
Datos se refiere a informacin en bruto, no procesada ni catalogada, por ejemplo "Tacna", "calle Zela #
- 31 -
32 C++ Builder Aplicado Ing. Ortiz
213","15 aos", " $2,520.00", etc.
Variables es el nombre de una localidad o direccin interna en la memoria del computador donde se
almacenan los datos, ejemplo de variables para los casos del inciso anterior, CIUDAD, DIRECCION, EDAD,
SUELDO, ETC.
Construir un modelo de solucin que resuelva el problema de calcular el rea de un tringulo con la formula
rea igual a base por altura sobre dos.
Variable(s) Proceso u Variable(s)
Entrada operacin salida
Observar para el caso de constantes fijas o conocidas (PI) no se debe dar como dato de entrada su valor,
en cambio colocar directamente su valor dentro de la formula, en la parte de operaciones del problema.
Una formula grande o muy compleja puede ser ms segura y fcil de resolver, si es descompuesta y
resuelta en partes, juntando al final los parciales para obtener el resultado final.
Maysculas y minsculas
C++ es sensible al tamao de la letra., es diferente por ejemplo Altura de altura
Espacios en blanco
Los espacios en blanco, lneas, tabulaciones y sangrados en el programa fuente se usan a voluntad, no
afecta el programa pero si le da ms legibilidad.
El carcter de separacin de instrucciones es el punto y coma
Los parntesis
Proporcionan mxima prioridad en el uso de operadores
Comentarios
Los comentarios comienzan con el smbolo // y se le suele llamar comentario de una lnea, termina con el
retorno de carro. Vlido en C++
Ejemplos:
// este es un programa de ejemplo.
// en este programa visualizamos la palabra bienvenido
______________
Introduccin a las Bases de Datos 33
Identificadores
Son los nombres elegidos para variables, constantes, funciones, clases y similares, se forman segn las
siguientes reglas:
1.- El primer carcter debe ser una letra o un subrayado "_", el resto del nombre puede contener letras
maysculas o minsculas o dgitos.
2.- La longitud permitida vara y puede ser hasta 32 caracteres.
3.- Los identificadores que comienzan con dos subrayados estn reservados para uso interno del
compilador C++
4.- C++ es sensible al tamao de las letras: MAS es diferente de ms.
5.- Algunos identificadores se designan como "palabras reservadas", y no se pueden utilizar.
Palabras reservadas
No se puede utilizar como identificadores:
auto do goto short typedef
break double if signed union
case else int sizeof unsigned
char enum long static void
const extern register struct volatile
continue float return switch while
default for
Otras son:
Asm catch class delete friend
inline new operator private protected
public template this throw try
virtual
VARIABLES Y CONSTANTES
Variables
Identificadores son conjuntos de letras y/o nmeros que se utilizan para simbolizar todos los elementos que
en un programa, son definibles por el usuario (programador o ingeniero de software) del mismo, como son
las variables donde se almacenan datos, funciones( pequeos mdulos con cdigo), etiquetas, clases,
objetos, etc. Un programa debe DEFINIR a todas las variables que utilizar , antes de comenzar a usarlas,
a fin de indicarle al compilador de que tipo sern , y por lo tanto cuanta memoria debe destinar para albergar
a cada una de ellas.
En C++Builder un identificador es una palabra compuesta de letras y/o nmeros de hasta 32 caracteres
significativos, empezando siempre con una letra.
Una variable se define como un identificador que se utiliza para almacenar todos los datos generados
durante la ejecucin de un programa.
_______________
34 C++ Builder Aplicado Ing. Ortiz
Nombre, Edad, SdoDiario, IngMensual, Permetro, Calif1, etc.
Constantes
Sintaxis:
const <variable name> [ = <value> ] ;
<function name> ( const <type>*<variable name> ;)
<function name> const;
Descripcin
Use el modificador const para asignar un valor inicial a una variable que no puede ser cambiada por el
programa. Cualquier asignacin futura a una const resulta en un error del compilador.
char const *str2 = "Borland International"; // un apuntador a una constante de tipo cadena
Como dichas constantes son guardadas en memoria de la manera que al compilador le resulta ms eficiente
suelen aparecer ciertos efectos secundarios, a veces desconcertantes, ya que las mismas son afectadas
por las reglas de RECONVERSION AUTOMATICA DE TIPO vista previamente.
Constantes simblicas
Por lo general es una mala prctica de programacin colocar en un programa constantes en forma literal
(sobre todo si se usan varias veces en el mismo) ya que el texto se hace difcil de comprender y an ms de
corregir, si se debe cambiar el valor de dichas constantes.
Para dar un smbolo a una constante bastar, en cualquier lugar del programa (previo a su uso) poner la
directiva: #define, por ejemplo:
#define LONGITUD 50
El especificador constante
Una constante es una entidad cuyo valor no se puede modificar, y en C++ la palabra reservada const se
utiliza para declarar una constante. A continuacin veremos la utilidad de las constantes, por ejemplo
tenemos dos arrays con 30 elementos
int relacion[30] ;
int notas[30];
sin embargo en C++ no se puede utilizar una variable como ndice de un array por tanto el programa no
______________
Introduccin a las Bases de Datos 35
compila, por lo que una forma de salvar este problema es utilizando la directiva #define para crear constante
con nombre
//Ejemplo
{
const float pi = 3.14159;
float Radio, Area;
Edit1->Text = Ingrese el valor del radio ";
Radio =Edit2->Text.ToDouble();
Area = pi*Radio*Radio;
Edit3->Text = Area;
}
//---------------------------------------------------------------------------
Pero C++ usa la palabra reservada const seguida por el tipo de datos, el identificador y una inicializacin;
por ejemplo:
const int x = 91
La construccin const de C++ sustituye ventajosamente a las directivas #define que servan para declarar
constantes simblicas en ANSI C
TIPOS DE DATOS
A toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un
tipo de dato especfico. Un tipo de dato define todo el posible rango de valores que una variable puede
tomar al momento de ejecucin del programa y a lo largo de toda la vida til del propio programa.
Reales
float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec)
double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec)
80 bits 3.4 x 10-4932 a 1.1 x 10+4932
long double
Carcter
char 8 bits - 128 a 127
unsigned char 8 bits 0 a 255
AnsiString *** cadena de caracteres
*** AnsiString no es propiamente un tipo de dato, sino una clase que se especializa en al almacenamiento y
_______________
36 C++ Builder Aplicado Ing. Ortiz
manipulacin de datos de tipo string, es decir, como clase ya contiene toda una serie de mtodos
(procedimientos y funciones) que pueden usar directamente las variables(objetos) que se declaren de tipo
AnsiString, como en el siguiente ejemplo;
// rea de declaracin
AnsiString alfa, beta;
int a;
// carga normal de variables strings (que antes no se poda hacer directamente en C o C++)
alfa = "UABC";
beta = "50";
// procesos con las variables ya considerndolas como objetos de la clase AnsiString estos procesos antes
ocupaban una librera especial llamada <string.h>
alfa = alfa.LowerCase(); primero las convierte a minsculas y luego se cargan a la misma variable.
Interesante este nuevo tipo (Clase) AnsiString y tambin interesante estos dos mtodos ( LowerCase() y
ToInt() ), el resto de mtodos, se deben buscar en la ayuda del C++Builder (solo abrir folder o libro
llamado "referencia del programador", pedir ndex y luego escribir AnsiString ).
OPERADORES ARITMETICOS
Un operador es un smbolo especial que indica al compilador que debe efectuar una operacin matemtica
o lgica.
C++Builder reconoce los siguientes operadores aritmticos:
Operador Operacin
+ Suma
- Resta
* Multiplicacin
/ Divisin
% Residuo o Mdulo
El operador (%) devuelve el residuo entero de una divisin entre enteros, ej.:
// rea de declaracin
int alfa;
// rea de operaciones
alfa = 23 % 4;
// rea de despliegue
Otro ejemplo;
alfa = 108 % 10;
desplegar alfa; -- El resultado en pantalla es 8
Para resolver los problemas de potencias y races, se usan ciertas instrucciones especiales que proporciona
______________
Introduccin a las Bases de Datos 37
el lenguaje, llamadas funciones matemticas, en C++ existe toda una librera de instrucciones o funciones
matemticas.
Recordar que todas las funciones reciben uno o ms datos o valores y regresan siempre un resultado, una
de estas funciones matemticas es:
#include <math.h>
double pow(double base, double exp);
Esta funcin ocupa dos valores o datos( base y exp) ambos de tipo double, y regresa un resultado tambin
de tipo double, ejemplo;
Para resolver el problema de races, se aprovecha una de las ms elementales y conocida de las leyes de
exponentes que dice:
Es decir una raz cualquiera se puede transformar a una potencia con un exponente fraccionario.
Ejemplo:
En este ejemplo se esta dando por supuesto que no interesa el tipo de dato que requiere la funcin
pow() para trabajar correctamente
OPERADOR CAST
Se puede forzar un dato, variable o una expresin a convertirse o cambiarse a un nuevo tipo de dato.
El operador cast realiza este proceso, es decir convierte datos, variables o expresiones a un nuevo tipo de
dato, su formato es:
Como nota importante este operador resuelve los dos problemas pendientes:
_______________
38 C++ Builder Aplicado Ing. Ortiz
a. El de la divisin entre enteros.
Como se observa en el ejemplo, se puede usar pow(), directamente con los datos, argumentos o
parmetros requeridos , si estos son numricos, pero transformndolos con el operador cast.
Esto tambin va a permitir evaluar expresiones matemticas de manera mas directa y sencilla, solo
recordando usar un pow() por cada potencia y cada raz de la ecuacin, ejemplo:
Sea
Dentro de un programa esto se resuelve con;
JERARQUIA DE OPERACIONES
una operacin casi siempre conduce a resultados muchas veces equivocados como estos:
Ejemplos:
a. 2+ 3* 4 = 20(incorrecto) = 14 (correcto)
Recordar siempre, que antes de plantear una frmula en un programa se deber evaluar contra el siguiente:
Orden de operaciones:
1.- Parntesis
2.- Potencias y races
3.- Multiplicaciones y divisiones
4.- Sumas y restas
5.- Dos o ms de la misma jerarqua u orden, entonces resolver de izquierda a derecha
Nota: Tampoco es bueno usar parntesis de ms en una operacin, esto solo indica que no se evalu bien
la formula, como en el siguiente ejemplo;
aqu los parntesis estn de ms, porque por orden de operaciones, multiplicacin y divisin tienen la
______________
Introduccin a las Bases de Datos 39
misma jerarqua y entonces se resuelven de izquierda a derecha, en otras palabras ni que falten parntesis
ni que sobren parntesis.
Declaracin de variables
El programa usa variables para almacenar informacin. La mayora de los programas en C++ utilizarn los
tipos de variables descritos en la tabla de Tipos de Datos. Antes de usar la variable habr que declararla,
es decir introducirla en el programa; para esto se debe saber el tipo de sta y el nombre que el programa
usar para referirse a ella
// Ejemplo programa para multiplicar
#include <vcl.h>
#pragma hdrstop
#include "Ecuacion1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int multiplicador,multiplicando, resultado; /* defino como un enteros */
multiplicador = 1000 ; /* les asigno valores */
multiplicando = 2 ;
resultado = multiplicando * multiplicador ;
Edit1->Text = resultado; /* muestro el resultado */
}
//---------------------------------------------------
En las primeras lneas de texto dentro del fastcall respectivo defino mis variables como nmeros enteros , es
decir del tipo "int" seguido de un identificador (nombre) de la misma . Este identificador puede tener la
cantidad de caracteres que se desee; siendo por lo general n igual a 32 .
Inicializacin de variables
Las variables pueden tambin ser inicializadas en el momento de definirse .
int multiplicador = 1000, multiplicando = 2, resultado;
De esta manera el EJEMPLO anterior podra escribirse:
EJEMPLO
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int multiplicador=1000,multiplicando=2, resultado; // defino como un enteros
resultado = multiplicando * multiplicador ;
Edit1->Text = resultado; // muestro el resultado
}
//---------------------------------------------------
Obsrvese que en la primer sentencia se definen e inicializan simultneamente ambas variables.
El valor asignado puede ser una constante, una variable o una expresin. En este caso, si es
_______________
40 C++ Builder Aplicado Ing. Ortiz
necesario el valor asignado se convierte al tipo de dato de la variable
b) durante corrida mediante un componente de entrada de datos en C++ que veremos ms adelante
1.- Elija del men principal File New Application, para tener una forma en blanco y un nuevo
programa.
2.- Seleccione la forma haciendo clic con el mouse en ella. Observe el inspector de objetos, si no est
presente, presione F11.
______________
Introduccin a las Bases de Datos 41
LA PROPIEDAD BORDERICONS. Esta propiedad permite especificar el tipo de borde e iconos que llevar
en la barra de titulo su aplicacin.
Cuando selecciones con un clic con el botn derecho del mouse cualquier parte de la barra
BiSystemMenu de titulo de la forma, presenta un men de control con las opciones que permite la
configuracin de su proyecto.
Coloca en la barra de titulo un pequeo icono que permite
minimizar la forma con que se est trabajando al
BiMinimize
momento de ejecutarse.
Si usted selecciona en todas las opciones False, no tendr forma de cerrar su aplicacin por medio de estos
componentes as que tendr que implementar una forma de cerrar y salir.
LA PROPIEDAD BORDERSTYLE. Estas subpropiedades estn divididas en la que permiten que la forma
se escale y las que no.
_______________
42 C++ Builder Aplicado Ing. Ortiz
LA PROPIEDAD ICON. Por omisin si no se selecciona ninguno, el C++ Builder presenta el icono de las
aplicaciones C++ Builder.
Pero se puede cambiar haciendo
doble clic en del Object
Inspector, aparece la ventana
Picture Editor, click en el botn
Load, para seleccionar de algn
directorio el archivo del icono
deseado. esta propiedad busca
archivos con extensin .ico.
______________
Introduccin a las Bases de Datos 43
Los eventos son acciones relacionadas a los objetos y su comportamiento que llevarn a cabo durante la
ejecucin del programa.
OnClick: Este evento ocurre cuando el usuario hace clic dentro del rea de la forma los siguientes pasos
muestran un ejemplo de cmo se usara este evento.
1.- Elija del men principal File New Application.
2.- En la hoja de eventos del inspector de objetos haga doble clic en el
evento OnClick y el editor de cdigo presentar la estructura de la funcin
llamada Form1Click y el cursor se coloca para que pueda introducir la lista
de instrucciones.
3.- Teclee la siguiente instruccin en el editor de cdigo.
ShowMessage("ha ocurrido un Clic del Mouse");
de manera que su editor de cdigo luzca as:
_______________
44 C++ Builder Aplicado Ing. Ortiz
Estos eventos suceden cuando el usuario presiona un determinada tecla, experimente con el siguiente
aplicacin.
EVENTOS DE SISTEMA.
No todos los eventos ocurren por acciones que realice el usuario, algunos son ejecutados por el sistema
operativo Windows.
Cuando se intenta cerrar la Checa que los datos se hallan grabado antes de
OnCloseQuery forma. cerrar las bases de datos.
______________
Introduccin a las Bases de Datos 45
3.- En la hoja de eventos del inspector de objetos haga doble clic en el evento OnResize
7.- En el editor de cdigo haga doble clic en el evento OnResize y escriba el siguiente cdigo.
Label1->Left = (ClientWidth/2) (Label1->Width/2);
Label1->Top = (ClientHeight/2) (Label1->Height/2);
8.- Presione la tecla de funcin F9 para ejecutar el programa.
Si usted escala la forma, ver que el texto siempre aparecer en el centro de la forma.
El lenguaje y ambiente de programacin a utilizar, es de tipo visual, y muchos de los problemas asociados a
entradas y salidas se encuentran ya resueltos por el propio compilador.
Tambin los componentes son objetos de C++Builder y como tales tambin tienen asociados propiedades y
_______________
46 C++ Builder Aplicado Ing. Ortiz
eventos, tales como los tiene la forma principal, solo que existen pequeas variaciones en cuanto a sus
propiedades y eventos propios con respecto a Form1.
Recordar adems, que es el Inspector de Objetos en primera instancia quien permite asociar o modificar
propiedades especficas tanto a una forma como a un componente.
Analizaremos ahora los dos primeros componentes, que tambin se usarn para construir o disear nuestro
primer programa en C++Builder y Visual.
Este componente se utiliza para desplegar textos o mensajes estticos dentro de las formas, textos tales
como encabezados, solicitud al usuario del programa para que proporcione algn dato o informacin (edad,
dame sueldo, etc.), en cierta forma hace las funciones de printf, cout, writeln, print, display, etc., pero solo
cuando se consideran en su parte de mensajes.
Tambin es un objeto en C++Builder y por tanto tiene asociados sus propias propiedades y eventos, al
mismo tiempo como se est usando dentro del objeto form1, muchas propiedades que se definan para el
objeto Form1, el objeto Label1 las va a heredar.
Si bien es cierto que el objeto se llama Label, pero cuando se ponen dentro de una forma C++Builder los va
numerando automticamente, si se ponen tres Labels en Form1, ellos se llaman o simbolizan o se procesan
o programan con Label1, Label2, Label3.
Es la propiedad Caption, la que lleva el contenido del mensaje que se quiere desplegar en la pantalla, solo
click derecho a un lado de la propiedad Caption en el Inspector de Objetos, teniendo seleccionada la caja
Label1 en la forma y escribir el texto indicado.
Es el componente principal de la forma, contiene el cdigo principal del programa y su activacin por el
usuario provoca que se realicen los principales procesos del problema planteado (aqu es donde se
capturan datos, se realizan operaciones, etc.).
De este componente se maneja su propiedad Caption para etiquetarlo con la palabra "OK" o "ACEPTAR" o
"EXE" , y su evento OnClick para activarlo, es en dicho evento donde se construye el cdigo del programa.
Recordar que aunque no es un componente necesario en los programas, ya que el cdigo se puede asociar
o pegar a cualquier evento de cualquier forma, o componente del programa, Microsoft ya acostumbr a
todos los usuarios al botn OK, de acuerdo, OK.
Este botn tambin puede activar su evento OnClick, cuando el usuario presione la tecla <ENTER>, solo
poner la propiedad Default en true, en este caso el botn de rdenes, se le conoce como botn de default.
Igualmente puede activar su evento OnClick cuando el usuario, presione la tecla <ESC>, solo poner la
propiedad Cancel en true, a este caso se le conoce como "CANCEL BUTTON".
PRACTICA
Construir un primer programa que consiste en una forma que contenga los cinco datos ms importantes de
un automvil, y uno de esos datos solo deber aparecer cuando el usuario haga click en el botn de
ejecucin o de orden o de OK.
Para este programa se ocupa, una forma, dos componentes labels para encabezados apropiados al
problema, 10 componentes labels para textos y datos, un componente Button.
Para el ltimo componente Label su propiedad Caption se dejara en blanco o vaca para que sea el usuario
______________
Introduccin a las Bases de Datos 47
Recordar que C++Builder va numerando automticamente todos los componentes en el programa en forma
consecutiva, es decir al finalizar el diseo del programa se tendrn, los componentes form1, label1, label2,
label3,..button1. El procedimiento completo para crear y ejecutar el programa es:
1.- Cargar C++Builder.
2.- Al cargarlo ya estar en la pantalla la primera
forma (Form1).
3.- Antes de poner el primer componente usar la
opcin, File Save Project As, aparece la
siguiente ventana:
4.- Ahora ya que se tiene Form1 en pantalla, recordar que se pueden modificar sus propiedades como color,
font, etc. usando el Inspector de Objetos que esta a un lado de la forma ( se sugiere practicar un poco
esto), los cambios que se hacen en el Inspector de Objetos se van reflejando automticamente en la
forma en pantalla y tambin en la ventana que el usuario vera al ejecutarse el programa.
5.- Ahora se selecciona con un click el componente llamado Label en la paleta de componentes y luego
poner el cursor dentro de la forma en el lugar donde se quiera que aparezca el componente, y volver a
hacer click con el ratn para que ya aparezca dicho componente en la forma.
Para cargar o para que despliegue un texto el componente Label1, solo escribir dicho texto en la cajita
que esta a un lado de la propiedad Captin en el Inspector de Objetos, por ejemplo para el problema,
escribir la palabra "AUTOS ECONOMICOS", recordar que tambin est componente tiene la propiedad
font que se puede usar para alterar el tipo de letra que despliega el componente.
6.- Repetir el procedimiento anterior hasta tener los doce componentes Label bien acomodados y
organizados en la forma y con sus textos correspondientes, solo recordar dejar el componente Label12
con su propiedad Caption en blanco (usando tecla backspace).
_______________
48 C++ Builder Aplicado Ing. Ortiz
7.- Seleccionar y acomodar ahora un componente Button en la forma y colocarlo en la esquina inferior
derecha, en su propiedad Caption = escribir la palabra "OK". Debiendo quedar todo el conjunto como se
ve lneas arriba. Recordar que este componente, es quien contiene el cdigo del programa y ms
especficamente es su evento OnClick quien lo contiene y quien adems lo activa o lo ejecuta.
Para aadirle el cdigo (en este ejemplo que cargue el Caption de Label12 al tiempo de ejecucin del
programa y por decisin del propio usuario) existen dos maneras:
Observar que ya trae listo el evento Button1Click( ), para programarse y es dentro de sus llaves donde
se construye el programa.
Label12->Caption="$ 5,000.00";
o Escribirla dentro de las llaves
o No olvidar terminarla con ( ; )
o Respetar y aprender siempre la ortografa de componentes, propiedades y valores de propiedades
o Recordar que cualquier propiedad de cualquier componente se puede programar con el formato ya descrito;
NomComponente->NomPropiedad = NuevoValor;
o Observar que Caption se carga como si fuese una variable de tipo "string", dentro de un programa.
o Observar que atrs del editor esta Form1, si se selecciona con un click, este procedimiento lo regresa
a la forma para seguir arreglando o colocando nuevos elementos.
Otra manera de estarse intercambiando entre forma y editor ( ahora lo llamaremos Unit1.cpp), es decir
entre form1 y Unit1, es usar el icono:
Otra: La otra manera y ms sencilla de cargar el editor, es haciendo un dobleclick dentro del
componente.
8.- Ahora ya esta lista la forma o programa para ejecutarse, tambin existen tres maneras:
a. Usar la opcin Run que esta arriba en la barra de mens.
______________
Introduccin a las Bases de Datos 49
El programa ya en ejecucin debe ser similar al cuadro del item 6 lneas arriba
Es decir en estos casos es el usuario quien generalmente proporciona los datos para su procesamiento en
el problema, el trabajo del ingeniero de software, es procesarlos y darles sentido, coherencia y sobre todo
eficiencia.
Para esto se ocupan , componentes llamados de "input", "entrada" o "captura", que permitan al usuario
cargar o proporcionar un dato en ellos, dichos componentes son:
Esta propiedad Text, as como la propiedad Caption en Label, permiten igualarse a muchos procesos
bsicos, es decir es fcil igualar Text o Caption a un dato, una variable, otro Text u Caption, o una
expresin algebraica normal, como en los siguientes ejemplos;
Edit2->Text = 5;
Label3->Caption = "PATO";
Edit4->Text = 3 * 6.2 ;
En principio su valor de default (por defecto) es la palabra Edit1 y es en su propiedad Text donde se
modifica, generalmente al principio de un programa se deja en blanco, y al ejecutarse el programa, el
usuario lo llena con los datos solicitados o el programa lo llena con el resultado de las operaciones.
Cuando un usuario lo carga con un dato, recordar que el dato almacenado queda de tipo texto, no importa
lo que haya escrito el usuario.
Para resolver el problema de usar datos numricos dentro del Text de un componente Edit, en operaciones
matemticas, solo agregarle a la propiedad Text, las funciones .ToInt() o .ToDouble(), quedando
convertida la cadena a dato numrico, como se muestra en los siguientes ejemplos.
_______________
50 C++ Builder Aplicado Ing. Ortiz
double Value1 = StrToFloat(Edit1->Text);
Cuando por olvido no se escribe el dato numrico en un casillero Edit, nos da error, para evitar eso definir
como uno el valor inicial (puede ser otro valor), de la siguiente forma
int Value2 = Edit2->Text.ToIntDef(1);
EJERCICIO 1
Unautomvil parte del reposo y tiene una
aceleracin constante a por t segundos.
La velocidad final v y la distancia d,
recorrida por el automvil son dadas por
las frmulas:
d = () a. t2 y v = a . t
Escribir un programa que lea a, t e
imprima t d v
SOLUCION
Seguir los siguientes pasos:
1.- Elija del men principal File New Application. En la forma (Form1) hacer el
diseo como se muestra lneas arriba.
3.- Usar la opcin File Save Project As. Lo guarda como Ecuacion1
4.- Elija de la barra de componentes el objeto caja de edicin ( ). y colquelo en la forma, las
veces que se indica en la figura superior.
5.- Elija de la barra de componentes el componente Label y colquelo en la forma, tantas veces como
se indica. Cambie la propiedad Caption para indicar las variables de entrada y salida segn se aprecia
en la figura inferior.
6.- Elija de la barra de componentes el componente Button y colquelo en la forma, dos veces como se
indica, el primero ser para correr el programa y el segundo para salir. Cambie la propiedad Caption a
RUN y SALIR en cada uno.
7.- Hacer doble click en el Button1 OK en Form1 y colocar el programa siguiente (lo que aparece en negrita,
sin tocar lo que esta por defecto):
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double aceleracion, tiempo, Velocidad, Distancia; //Declaracion del tipo de variable
aceleracion = Edit1->Text.ToDouble();
tiempo = Edit2->Text.ToDouble();
Distancia = 1/2.0*aceleracion*tiempo*tiempo;
Velocidad = aceleracion * tiempo ;
Edit3 ->Text = tiempo;
Edit4 ->Text = Distancia;
Edit5 ->Text = Velocidad;
}
8.- Hacer doble click en el Button2 SALIR en Form1 y colocar el programa siguiente (lo que aparece en
negrita, sin tocar lo que esta por defecto):
______________
Introduccin a las Bases de Datos 51
EJERCICIO 2
calcular
Solucin:
4.- Nuevamente pasamos a Form1 y hacemos doble clic en Button2 que ahora tiene el Caption Salir y
tipeamos la palabra Close(); quedando la ventana:
En particular, se deber asociar los Edit con las variables, y solo existirn en principio cuatro tipos
_______________
52 C++ Builder Aplicado Ing. Ortiz
de Edits.
Formato Edit Tipo De Dato Ejemplo
Recordar que el usuario, usar un componente Edit para almacenar los datos de entrada del problema,
muchas veces estos datos son de tipo numrico, por ejemplo en un componente Edit se almacena la
cantidad de pesos, el precio de un artculo, la edad de una persona, etc.
Solo recordar siempre usar el componente Edit, directamente como una variable cualquiera (con su
mtodo o funcin correspondiente) y construir la operacin o frmula con los propios componentes o cajas
Edit. No olvidar adems en la ventana de edicin al incio colocar el #include<math.h>
Es decir, por EJEMPLO, si se pide resolver el problema de multiplicar dos nmeros cualesquiera, se
ocuparan tres componentes Edit,(factor1, factor2, producto), es en estos casos donde se usan tres
componentes Edit como si fuesen tres variables simples directamente.
Notas:
Como se observa este componente Edit permite capturar datos por parte del usuario del programa.
Es ms sencillo considerar, estos componentes como variables normales y usarlos directamente.
Solo en problemas algebraicos usar propiedad Text con los mtodos ToInt() y ToDouble().
Acostumbrarse a usar solo estos dos tipos de datos, enteros y dobles, si se ocupa en algn
problema otro tipo de dato, entonces se tendrn que sacar de los componentes Edit, valores enteros
y valores dobles a variables normales del mismo tipo y despus usar el operador Cast en ellas.
Si se ocupan divisiones con un componente Edit entre otro componente Edit, recordar que al menos uno de
ellos sea double, porque de lo contrario se trunca la parte residual.
Respetar la ortografa en el ejemplo, sobre todo en las instrucciones (las que terminan con ;)
Si son muchas operaciones en un problema, el procedimiento es similar, solo resolverlo por partes
ya que una formula que contenga cuatro o cinco Edit, se convierte en un rengln de cdigo gigante.
De un componente Edit, solo salen Ints o Doubles nada ms, si se ocupa otro tipo de dato, entonces
es tiempo de practicar el operador Cast.
Message Boxes
Cajas de dialogo
Una caja de diialogo es una ventana que sirva para interaccion del usuario con el computador , tiene las
siguientes caractersticas:
______________
Introduccin a las Bases de Datos 53
Un message box es una caja de dialogo pequea usada para mostrar un mensaje y proporciona uno o ms
botones. Para su aplicacin se lo puede llamar desde cualquier lugar
La funcin ShowMessage( ) toma un argumento de cadena y no retorna ningn valor. Es usado para
mostrar mensajes, que se dan por enterados haciendo clic en el botn OK. La sintaxis de la funcin
ShowMessage( ) es
void __fastcall ShowMessage(const AnsiString Message);
Ejemplo:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage("Por favor llene el formato \n este seguro de firmarlo");
}
//---
Presione F9 y obtendr el resultado de la derecha
int __fastcall MessageBox(const char * Message, const char * Caption, int Flags);
toma tres argumentos. El primer argumento, Message, es una cadena terminada en null representando el
mensaje que el usuario leer, es una sentencia esttica, puede ser una combinacin de diferentes cadenas.
Se puede crear un sencillo message box similar al implementado usando la funcin ShowMessage( ) para
mostrar un simple mensaje con un botn OK button. En este caso solo deber proporcionar el argumento
del Mensaje, configure los otros arumentos como NULL. Aqu un ejemplo:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->MessageBox( "Esta operacin puede ser \n llevada a cabo por el jefe", NULL, NULL);
}
//------
El segundo argumento, tambin una cadena es el ttulo que muestra la caja (Box). Si no tiene el caption se
puede configurar el valor de este argumento como NULL. En este caso el ttulo de la barra dir Error.
Para que esto no aparezca, se debe dar el argumento Caption por ejemplo:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->MessageBox("Asegurese que la msica esta tocando", "CD PLayer Instrucciones", NULL);
}
_______________
54 C++ Builder Aplicado Ing. Ortiz
//---
El tercer argumento especifica los flags que desea mostrar en la caja de dialogo, uno o ms botones y una
fotografa opcional. Se puede crear una casilla de mensaje simple con OK como nico botn. En ese caso
configure el tercer argumento como MB_OK. Aqu un ejemplo:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->MessageBox("Asegurese que la msica esta tocando", "CD PLayer Instrucciones", MB_OK);
}
//---
No muestra ms de un botn, usa una constante entera que
representa un grupo de los botones disponibles
A continuacin se muestra las constantes y sus botones:
Por ejemplo para crear una caja de mensaje que muestre botones Yes y No, deber escribir:
______________
Introduccin a las Bases de Datos 55
Cuando se configura un message box para mostrar ms de un botn, se configura el sistema operativo para
decidir cual botn es por defecto. El botn por defecto tiene un borde ms grueso. Si se presiona Enter, es
como si se hubiese presionado el botn por defecto. Afortunadamente si el message box tiene ms de un
botn, se puede decidir cual ser el por defecto, usando alguna de las siguientes constantes:
Si el message box tiene ms de un botn, el
Valor
botn por defecto ser:
MB_DEFBUTTON1 El primer botn
MB_DEFBUTTON2 El segundo botn.
MB_DEFBUTTON3 El tercer botn.
MB_DEFBUTTON4 El cuarto botn.
Para especificar el botn por defecto, use el | para combinar la constante entera del botn por defecto con
la constante del botn y el cono, a continuacin un ejemplo:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->MessageBox("Usted ahora escucha msica o cualquier sonido?",
"CD Player Instrucciones",
MB_YESNOCANCEL | MB_ICONQUESTION | MB_DEFBUTTON2);
}
//-----
_______________
56 C++ Builder Aplicado Ing. Ortiz
En este ejemplo se corre el programa, se
presiona run aparece la caja de mensaje, se
presiona NO y aparece el mensaje en el Panel1
[MessageBox es una function que retorna que botn se ha sido presionado. Sus 04 parmetros son:
1) La ventana Handle
2) El mensaje, se ha puesto Est seguro de Salir?.
3) La caja con el tipo de mensaje {Confirmation, Warning, Error, and Information} [Esto aparece en el ttulo
de la ventana],
4) La clase de botn a incluir {Yes, No, Ok, Cancel, and Help}. El
comando MB y los botones
Ensayar el programa presionando el botn Salir, tambin puede
salir presionando el casillero marcado con X de la ventana de
ejecucin. Experimente con otros MessageBox..
La sintaxis es:
int __fastcall MessageDlg(const AnsiString Message, TMsgDlgType IconType,
TMsgDlgButtons Buttons, int HelpContext);
mtConfirmation
mtCustom None
El argumento del Botn es usado para especificar el tipo(s) de botn(es) para mostrar en la caja de dialogo.
______________
Introduccin a las Bases de Datos 57
La funcin MessageDlgPos( )
_______________
58 C++ Builder Aplicado Ing. Ortiz
El Input Dialog Box
InputBox( ) permite mostrar un cuadro de mensaje que requiere informacin del usuario. El message box
est equipado con un Edit box y dos Botones. El Edit box acepta una cadena por parte del usuario.
Cuando el usuario hace click en OK, el Input Box retorna el contenido de su Edit box. Si se presiona
Cancel o Esc, el contenido del Edit box se ignora.
La sintaxis de la funcin InputBox( ) es:
AnsiString __fastcall InputBox(const AnsiString Caption,
const AnsiString Prompt, const AnsiString Default);
El argumento Caption especifica la cadena que mostrar en la barra de ttulo del cuadro de dilogo. El
Prompt es una sentencia que mostrar que tipear en el Edit box. El argumento por defecto es un valor
sugerido que puede mostrar en el Edit box para guiar al usuario acerca del valor esperado. Si no desea
especificar un valor por defecto, puede configurar la cadena con un valor vaco. A continuacin un ejemplo:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
InputBox( "Conversin de Temperatura", "Escriba la temperatura en Celsius:", "");
}
Aunque el argumento por defecto es una cadena, se
puede inicializar con cualquier valor de la clase
AnsiString. Esto quiere decir que el valor por
defecto puede ser un carcter, un nmero flotante o
un entero:
void __fastcall
TForm1::Button1Click(TObject *Sender)
{
InputBox( "Conversin de Temperatura",
"Escriba la temperatura en Celsius:", "102");
}
//-----------
Si se va a capturar el valor que se ingresa y efectuar operaciones con el:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text =InputBox( "Conversin de Temperatura",
"Escriba la temperatura en Celsius:", 120).ToDouble();
}
//----
La funcin InputQuery( )
Al igual que la funcin InputBox( ) la funcin InputQuery( ) se usa para mostrar un cuadro de dialogo que
espera respuesta. La sisntaxis es::
bool __fastcall InputQuery(const AnsiString Caption, const AnsiString Prompt, AnsiString &Value);
Considera 3 cadenas: el argumento Caption es una cadena que se muestra en la barra de ttulo del cuadro
de dialogo. El argumento Prompt es la sentencia que indica al usuario que tipear en el edit box.
Al igual que la funcin InputBox( ) retorna una cadena, la funcin InputQuery( ) retorna dos valores. Por
su declaracin, esta funcin retorna un valor Booleano de true o false. Si el usuario clicks OK o presiona
Enter la funcin retorna true. Si el usuario presiona Esc o clicks Cancel, la funcin retorna false.
______________
Introduccin a las Bases de Datos 59
Se puede validar el valor retornado por Value escribiendo una sentencia condicional que examina si el
usuario ha hecho clic en OK o Cancel. En el ejemplo si se hace click en OK se muestra en valor en el
Edit1:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Answer = 'Y';
if( InputQuery("Exiting Application",
"Are you sure you want to exit (Y=Yes/Y=No)?", Answer) == True ) Edit1->Text = Answer;
}
PROBLEMA Ejemplo:
El torque trasmitido por un eje de trasmisin que produce una cantidad de caballos de fuerza, a una
velocidad rotacional constante, se da por medio de la frmula:
(HP)(63 000) 16 T
T y para calcular el tamao del eje: D3
N S
Donde: T = momento de torsin, lb-pulg
HP = caballos de fuerza.
N = velocidad rotacional, rev/min.
S = esfuerzo cortante, en lb/pulg2.
D = dimetro del eje, en pulg.
= 3.14
Escriba un programa, para determinar el momento de torsin, considerando un
motor de 600 HP N = 1800 y S del material = 6 000.
Solucin
1.- Selecciones File New Application del Main Menu para crer un nuevo proyecto en blanco.
Seleccione File Save Project As y guarde el proyecto como Torque
2.- En Form1 disee como se muestra y luego aada las
propiedades y la configuracin que se muestra en la tabla
3.- Hacer doble click en Button1 ahora RUN y escribir el siguiente programa:
_______________
60 C++ Builder Aplicado Ing. Ortiz
5.- Se utiliza la funcin matemtica pow por tanto se debe incluir en el encabezado: #include<math.h>
#include <vcl.h>
#pragma hdrstop
#include<math.h>
#include "torque.h"
//--------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-----------------
6.- Despues de correr el programa aparece as:
PROBLEMA
Problema sencillo de suma de dos nmeros: Elaboramos el formato:
//-----------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit3->Text=Edit1->Text.ToDouble() + Edit2->Text.ToDouble();
}
//-----------------------
______________
Introduccin a las Bases de Datos 61
sin embargo es mas sencillo usar el mtodo que se usa en el programa dado de ejemplo para la
multiplicacin, es decir considerar los componentes Edit como variables normales, y usar:
Recordar que es mas correcto usar propiedad Text y mtodos ToInt( ) y ToDouble( ), y cargar directamente
el componente Edit resultado.
De nuevo, Edit->Text o Label->Caption permiten que se igualen a una variable, un dato, o una
expresin, es decir es valido;
int y = 20;
Edit1->Text= 50;
Edit2->Text = " gato ";
_______________
62 C++ Builder Aplicado Ing. Ortiz
Edit3->Text= 30 * 80;
Edit4->Text= y - 3;
Edit5->Text= -5 * y + Edit3->Text.ToDouble();
Edit6->Text= 15 * Edit3->Text.ToInt() -
Edit8->Text.ToDouble();
Uso de FormatFloat
Para el caso de resultados decimales , la salida incluye todo el conjunto de decimales asociados a un tipo
double(muchos ceros), para resolver este problema se pueden usar directamente algunos de los mtodos
asociados a la clase AnsiString , por ejemplo uno de esos mtodos es;
La string de formato contiene una serie de simbolos literales que se utilizan para darle el formato de salida
deseado, esto simbolos o constantes literales son;
Const. Lit. Significado
0 (cero) Rellena con 0(ceros) todas las posiciones indicadas, ejemplo "0000.00" para el numer 23.4 la
string de salida seria 0023.40
# Constante muy usada para formato de valores numricos, esta constante solo despliega el valor
numrico normal.
E+, E-, e+, e- Se utilizan para convertir a notacin cientfica exponencial el valor de salida.
Por ejemplo tenemos:
Alfa = Beta/3.1416;
Edit1->Text= FormatFloat(###,###.##, alfa);
Notas;
El valor de salida es redondeado a tantos decimales como 0s, o #s, existan en la string de formato.
Si la string de formato no incluye un punto decimal, entonces el resultado es redondeado al valor entero ms
cercano.
1.- Selecciones File New Application del Main Menu para crer un nuevo proyecto en blanco.
Seleccione File Save Project As y guarde el proyecto como Torque
______________
Introduccin a las Bases de Datos 63
4.- Hacer doble click en Button2 ahora llamado Salir y escribir entre las llaves:
5.- Para correr el programa ir a la barra de men Run -> Run o presionar la tecla F9. Se escribe un valor
para la Base y otro para la altura, se presiona el Botn OK y aparece el resultado.
En resumen, este componente Edit, es el componente mas importante y elemental en todo problema que
involucre el procesamiento de datos en ambientes visuales, se debe acostumbrar a considerarse como un
elemento importante en cualquier problema visual, y acostumbrarse a procesarlo como si fuese una variable
normal cualesquiera.
Recordar que cuando se capturen los datos de base y altura, no dejar espacios en blanco antes del primer
nmero o se darn problemas y errores de conversin a valores numricos.
Para resolver mejor este problema de formatos mas adecuados para captura de datos, se usarn nuevos
componentes que se analizan mas adelante.
Tcnica
La frmula es para sumar dos nmeros, y se cambia despus para sumar ms numeros
Pasos
1 Arranque C++Builder elija del menu principal File New Application para tener una forma en blanco y
un nuevo programa.
2.- De la paleta de componentes en la hoja Stndard seleccione 2 objetos lnea de edicin haciendo doble
clic en el objeto ( ), aparecer Edit1 en la forma (Form1) nuevamente doble clic en la paleta de
componentes y aparecer Edit2, y acomdelos como se muestra en la figura, o tambin se puede hacer
_______________
64 C++ Builder Aplicado Ing. Ortiz
b. Haga clic en Form1 y vaya a la seccin events del object inspector, haga doble clic en OnShow, y el
cursor aparecer en el editor de cdigos listo para que se tipee el cdigo del evento OnShow
Edit1->Text=FormatFloat("0.0",Numero1); //Formato de numero
Edit2->Text=FormatFloat("0.0",Numero2);
Edit3->Text=FormatFloat("0.0",Suma);
Se puede omitir si no se desea que aparezca un formato inicial.
8.- Ahora nos concentraremos en la operacin matemtica y el lado C++ de nuestro programa
a. Otra vez ir a Form1, doble clic en el componente Button1, esto nos lleva por defecto al evento OnClick
del Button1, tipear el siguiente cdigo:
Numero1=Edit1->Text.ToDouble();
Numero2=Edit2->Text.ToDouble();
Suma=(Numero1 + Numero2);
Label1->Caption=FormatFloat("0.0",Suma);
Edit3->Text=FormatFloat("0.0",Suma);
#include "suma1.h"
//-------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float Numero1,Numero2,Suma; //Estas variables se usan en partes diferentes
//-------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
______________
Introduccin a las Bases de Datos 65
//-------------------------------------------------------------
Comentarios
Ahora tenemos un programa matemtico sencillo, el cual podemos guardar haciendo clic en File del menu
luego en SaveAll y especificando primero un nombre para el archivo cpp y otro para el archivo bpr. En el
paso 8 se puede colocar la respuesta en el Label como en el Edit segn se aprecia, adems la sentencia:
Pasos
_______________
66 C++ Builder Aplicado Ing. Ortiz
2.- De la misma forma que en el paso anterior coloque tres componentes Button que aparece como Button1,
Button2 y Button3, y dos Label que aparecen como Label1 y Label2, en Form1, quedando como se
muestra en la figura:
4.- Necesitamos una codificacin bsica C++ para las operaciones matemticas de este programa:
b. Haga clic en Form1 luego en Edit1 (quedando sealada) y vaya a la seccin events del object
inspector, haga doble clic en OnKeyPress, y el cursor aparecer en el editor de cdigos que
muestra:
5.- Ahora nos concentraremos en la ejecucin de la operacin, el blanqueo del casillero Edit1 de ingreso de
datos, Cerrar la corrida del programa y efectuar un cambio en el color del Edit2
a. Otra vez ir a Form1, doble clic en el componente Button1 (ahora OK), esto nos lleva por defecto al
evento OnClick del Button1, Entre llas llaves escribimos el texto que aparece en negrita:
______________
Introduccin a las Bases de Datos 67
b. Otra vez ir a Form1, doble clic en el componente Button2 (ahora Limpiar), esto nos lleva por defecto al
evento OnClick del Button2, Entre las llaves escribimos el texto que aparece en negrita:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Text=""; //Blanquea la casilla uno (Edit1)
Edit2->Text=""; // Blanquea la casilla Edit2
Edit2->Color=clRed; //Cambia color de casilla Edit2 a rojo
suma=0; //Vuelve a cero el valor de suma
Edit1->SetFocus(); //Coloca el cursos en la casilla Edit1
}
c. Otra vez ir a Form1, doble clic en el componente Button3 (ahora Cerrar), esto nos lleva por defecto al
evento OnClick del Button3, escribimos el texto que aparece en negrita:
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Close();
}
6.- Ahora compile y corra el programa, ingrese las cifras a sumar en el casilleros Edit1 y presione Enter,
ingresando los datos a sumar, cuando termine presione el Botn OK (Button1), mostrndose el resultado
en el Edit2. Si desea efectuar otra suma presionar el Button2 (llamado limpiar) y para salir presione el
Button3 (Cerrar);
_______________
68 C++ Builder Aplicado Ing. Ortiz
Close();
}
//-------------------------------------------------------------
Como trabaja
En cada paso se ha ido explicando la variacin de la suma de n nmeros y a los cuales se puede aadir lo
aprendido anteriormente
Comentarios
Al ingresar los datos y dar enter, se activa el lazo, blanqueando el casillero Edit1 y aceptando nueva cifra,
hasta que se de el OK, ahora tenemos un programa matemtico sencillo, el cual podemos guardar
haciendo clic en File del men luego en SaveAll.
t m x produccion
Cc
60 x F x E x S f
Donde: Cc = Capacidad de la cuchara en yardas cbicas.
E = factor de eficiencia (eficiencia de tiempo).
F = factor de carguo (eficiencia de la cuchara) o eficiencia de carguo.
Sf = factor de expansin del material.
tm = tiempo del ciclo de operacin en minutos.
Produccin = produccin por hora de la mina en yardas cbicas/h
60 = factor cuando el tiempo del ciclo es en muntos, si fuera en segundos, el factor cambia a 3600
La produccin por hora de la mina se calcula en 102 yardas cbicas/h de acuerdo a la produccin mensual
fijada en 12500 t de mineral y 75000 t de desmonte, en 384 h de trabajo (16 h/da y 24 dias/mes). La
eficiencia de carguo (F) se considera 0.70 osea el 70% de la capacidad de la cuchara se llena por cada
ciclo de carguo. La efiCiencia ( E ), es el factor de utilizacin de tiempo calculada en 0.68, osea en una
hora solo 41 minutos son efectivos de trabajo.
Tcnica
Se considera todos los factores y se calcula la capacidad de cuchara del cargador, si no existe en el
mercado esa capacidad se puede adquiri unidades ms pequeas cuyas capacidades sumen lo que se
necesita.
Pasos
1 Arranque C++Builder elija del menu principal File New Application del Main Menu para tener una
forma en blanco y un nuevo programa. Seleccione File Save Project As y guarde el proyecto como
Cuchara
______________
Introduccin a las Bases de Datos 69
Aade los valores por defecto cuando se corra el programa, se presiona Run y se obtiene la respuesta. :
7.- Ahora nos concentraremos en la operacin matemtica y el lado C++ de nuestro programa
Otra vez ir a Form1, doble clic en el componente Button1, esto nos lleva por defecto al evento OnClick del
Button1, tipear el siguiente cdigo:
8.- Otra vez ir a Form1, doble clic en el componente Button2 (ahora Cerrar), esto nos lleva por defecto al
evento OnClick del Button3, escribir el texto que aparece en negrita:
_______________
70 C++ Builder Aplicado Ing. Ortiz
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
Comentarios
Ahora tenemos un programa matemtico sencillo, que muestra valores del problema por defecto
carcter significado
______________
Introduccin a las Bases de Datos 71
Cualquier otro carcter que no aparezca en la tabla anterior, puede aparecer en una mascara, pero solo se
tomara en cuenta como una literal cualesquiera, es decir son insertados automticamente y el cursor los
brinca.
El segundo campo o parte de una mascara es un carcter simple que indica que carcter literal debe ser
incluido como parte del texto del componente MaskEdit, por ejemplo (000)_000-0000;0;*,
Un 0 en el segundo campo indica que solo deben capturarse los diez dgitos marcados con O, en lugar de
los 14 que tiene la mascara.
El tercer campo de la mascara, es el carcter que se quiera que aparezca en lugar de espacios en blancos.
PROBLEMA salida por Label de un mensaje compuesto por letras y nmeros, usando MaskEdit
Utilizando este componente MaskEdit vamos a calcular el capital que se recibir por un depsito de ahorros
a una tasa de inters fijada. Fijamos el depsito de $1000 en una cuenta de ahorro a un inters de 10%
anual.
Solucin
2.- En Form1 disee como se muestra y luego aada las propiedades y la configuracin que se muestra en
la tabla
_______________
72 C++ Builder Aplicado Ing. Ortiz
3.- Hacer doble click en Button1 ahora RUN y escribir el siguiente programa:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double interes= MaskEdit1->Text.ToDouble()/100.00/12.0; //
int tiempo = MaskEdit3->Text.ToInt() * 12 ;
double ahorro = MaskEdit2->Text.ToDouble() ;
4.- Hacer doble click en Button2 ahora llamado CERRAR y escribir entre las llaves:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
5.- Despus de correr el programa aparece as:
FloatToStrF, convierte un valor en punto flotante a AnsiString, usando un formato especifico: ffCurrency
Propiedades
El fundamental y obvio aspecto es ListBox es poder mostrar una lista de items, que es un objeto Tstrings.
Hay dos maneras de crear esta Lista de items: Crear una lista cuando se esta elaborando el programa, en
el Object Inspector, se hace click la propiedad Items y luego click en los 3 puntitos que aparecen en el lado
______________
Introduccin a las Bases de Datos 73
derecho para llamar al String List Editor, escribir los itemes deseados en cada lnea, presionando Enter:
Para aadir items cuando se esta corriendo el programa se usa el mtodo TStrings::Add(). Si la lista
estuviera vaca, los nuevos items se aadirn a la lista. Si la lista ya contiene uno o ms items, el nuevo
items ser aadido, por defecto al final de la lista existente. A continuacin un ejemplo de creacin de una
lista o aadir a una ya existente:
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ListBox1->Items->Add("Chad");
ListBox1->Items->Add("Equatorial Guinea");
ListBox1->Items->Add("Egypt");
ListBox1->Items->Add("Madagascar");
}
//---------------------------------------------------------------------------
Como ya se dijo, el usuario interactua con el ListBox seleccionando un item. En cualquier tiempo se puede
encontrar un item en particular que ha sido seleccionado, usando la propiedad Booleana
TCustomListBox::Selected.
Cuando aparece el Items de un list box en orden alfabtico, se dice que ha sido ordenado (sorted). Por
defecto los items no estn ordenados. Para arreglarlos en orden ascendente, configurar la propiedad
Sorted a true. Como un dato de tipo Booleano, desde programa se puede realizar el ordenamineto, como
se muestra:
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListBox1->Sorted = True; //tambin se usa true
}
//---------------------------------------------------------------------------
_______________
74 C++ Builder Aplicado Ing. Ortiz
Para comprender mejor esta opcin vea el siguiente programa:
( ) de la paleta
de componentes Standard
PROBLEMA
Construir un sencillo programa donde se escriban nombres en un componente
de edicin y se aadan los nombres a un ListBox (casillero de listado). Tambin
se tiene la opcin de ordenar o limpiar el ListBox.
1.- Selecciones File New Application del Main Menu para crer un nuevo
proyecto en blanco. Seleccione File Save Project As y guarde el proyecto
como como listform.cpp y listdemo.bpr.
3.- Alinear los tres buttons (enlazar los 3 buttons, esto se hace manteniendo presionada la tecla Shift, hacer
clic en cada Button, luego presione el botn derecho del mouse, seleccione Position Align b Horizontal
______________
Introduccin a las Bases de Datos 75
escoger "Left sides" ), luego aada las propiedades y la configuracin que se muestra en la tabla.
5. Hacer doble click en Button2 ahora llamado ORDENAR y escribir entre las llaves:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ListBox1->Sorted = true;
}
//------------------------------------------
6. Hacer doble click en Button3 ahora llamado LIMPIAR y escribir entre las llaves:
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ListBox1->Clear();
ListBox1->Sorted = false;
}
7. Despus de correr el programa aparece as:
Como trabaja
Escribir un nombre y apellido en el Edit1 y presionar Enter o click en
Aadir o la tecla A, y asi otros nombres y apellidos, luego en Ordenar y
finalmente en Limpiar y para volver al programa Alt+F4 (equivaldra a
presionar un boton Salir osea con instruccin Close( ) )
Expandir el proyecto anterior escribiendo un programa C++ Builder que permita al usuario ingresar una lista
de nombres, ordenarlos por orden alfabtico y guardar a un file.
Se necesita aadir un Button4 que llamaremos Guardar y otro Button5 cuyo Caption se cambiar a Cerrar
para finalizar el programa:
8. Hacer doble click en Button4 ahora GUARDAR y escribir el siguiente programa:
void __fastcall TForm1::Button4Click(TObject *Sender)
{
ListBox1->Items->SaveToFile("d:\\temp.dat"); // Para que guarde en el disco D, caso contrario lo
pondr en el directorio por defecto
}
//------------------------------------
_______________
76 C++ Builder Aplicado Ing. Ortiz
Si vuelve a correr el programa sobreescribir los datos. Guarda en el mismo lugar que el programa
automticamente
COMPONENTE ComboBox(Standard)
El componente ComboBox combina las ventajas de EditBox y ListBox. Este componente ofrece a sus
usuarios una seleccin de cajas de edicin de manera que no ocupen mucho espacio en su forma.
En la propiedad Style se puede elegir los tipos de ComboBox; generalmente es el DropDown o Drop
DownList
Presenta 3 tipos de ComboBox.
Simple DropDown DropDownList
Existen muchas ocasiones en donde el usuario del programa tiene que proporcionar datos que provienen
de un conjunto finito y muy pequeo de posibles respuestas, esto significa que cada vez que se ejecute el
programa, el usuario estar proporcionando las mismas respuestas.
Ejemplo de esta clase de datos, son por ejemplos Municipios en Tacna, las posibles respuestas solo son
(Alto Alianza, Ciudad Nueva, Bolognesi, Natividad, Gregorio Albarracin,), otro ejemplo es Sexo (Hombre,
Mujer), etc.
Para situaciones como esta, existen componentes que permiten programar por adelantado las posibles
respuestas, y el usuario solo debe seleccionar la respuesta
apropiada, en lugar de tener que escribirla.
______________
Introduccin a las Bases de Datos 77
Al momento de ejecucin del programa, toda la lista de respuestas, estarn a la vista del usuario, para
que este ltimo la seleccione.
5.- En la hoja de eventos haga doble clic en el evento onDropDown e introduzca el siguiente cdigo.
ComboBox1->Items->Add(Edit1->Text);
6.- En la hoja de eventos del inspector de objetos seleccione para este mismo objeto el evento OnDblClick
y teclee el siguiente cdigo:
ComboBox1->Items->Clear();
7.- Ejecute su programa y teclee cualquier palabra en la caja de edicin y luego con el mouse seleccione la
flecha hacia debajo de la caja de seleccin y ver que la palabra que tecle en la caja de edicin se
copiar en la caja de seleccin. Si hace doble click en el ComboBox se borra lo que esta escrito.
7.- Pegue en su forma 2 copias de la barra que captur en el paso 5 de la siguiente manera:
______________
Introduccin a las Bases de Datos 79
Ejemplo
El mismo caso anterior pero usando TrackBar
Pasos
1.- Elija del men principal File New Application.
2.- En la hoja Win32 de la paleta de componentes, seleccione los
objetos TrackBar y colocarlos en el Form1, y de la hoja Standard
seleccione el objeto Panel y colocarlo conforme se muestra en la
figura derecha. Asimismo 3 Labels cambiando el Caption para
que indiquen los colores Rojo, Verde y Azul.
3.- Seleccione los tres TrackBar, presionando la tecla Shift y
haciendo clic en cada uno de ellos mientras se presiona la tecla
(aparecen los 3 marcados); con el inspector de objetos haga
doble clic en el evento OnChange e introduzca el siguiente
cdigo.
Usar el componente BitBtn provee de una mejor apariencia a sus aplicaciones, para anexar una imagen a
sus botones, no tiene que dibujar nada, amenos que lo desee, ya que C++ Builder proporciona un biblioteca
_______________
80 C++ Builder Aplicado Ing. Ortiz
de imgenes en el directorio cbuilder\images\buttons.
Los botones aceleradores proveen al usuario de una forma alternativa de ejecutar acciones que pueden de
otra manera ser accesados por la barra de mens. Muchas aplicaciones Windows hacen uso de botones
aceleradores.
Siga los siguientes pasos para ver un ejemplo.
1.- Elija del men principal File New Application.
______________
Introduccin a las Bases de Datos 81
para el usuario.
COMPONENTES DE AGRUPAMIENTO
Como ya se empieza a notar en las aplicaciones construidas, la cantidad de datos e informacin empiezan a
amontonarse en la ventana simple que se ha venido construyendo.
Para resolver este problema, se tienen dos mtodos, el primero de ellos consiste de una serie de
componentes que permiten agrupar datos o informacin(resultados) de una manera mas lgica y esttica.
El segundo mtodo consiste de construir y trabajar con dos o mas ventanas a la vez.
El componente Panel1 puede contener una toda una serie lgica de otros componentes.
Solo se deber recordar colocar primero todos los paneles en la forma y encima de ellos los componentes
que contendrn.
Este componente tambin tiene una serie de propiedades que le dan una mejor presentacin usando las
propiedades BevelInner, BevelOuter, BevelWidth, y BorderWidth.
Es decir se puede dividir una sola ventana en varias partes, por ejemplo en un panel se ponen los
componentes donde se capturan los datos de un problema junto con el botn de OK, y en otro panel se
construye la salida, por ejemplo se crea un panel para capturar los datos de un empleado incluyendo sueldo
diario y das trabajados y un segundo panel contiene su cheque semanal de pago (problema sugerido
tambin ).
Para modificar programas construidos sin paneles, el procedimiento para agregarlos es:
1.- Mover todos los componentes abajo en la ventana.
2.- Colocar el panel en su posicion.
3.- Click en Componente a relocalizar.
4.- DobleClick, Copy
5.- DobleClick, Cut
6.- Click dentro del panel, donde se quiere el componente
7.- DobleClick, Paste
COMPONENTE GroupBox(Standard)
Este componente es otra forma standard de agrupamiento de componentes de programas en Windows, se
usa para agrupar componentes relacionados dentro de una forma.
Tambin se utiliza para separar reas lgicas dentro de una ventana de Windows.
El texto que identifica el propsito general del grupo se escribe dentro de la propiedad Caption en el
Inspector de Objetos, teniendo seleccionado este componente GroupBox.
Adems de sus propiedades, mtodos y eventos propios, como todos los componentes de este tipo, tiene o
hereda las propiedades, mtodos y eventos de todos los controles generales de tipo Windows.
_______________
82 C++ Builder Aplicado Ing. Ortiz
Es muy similar al componente panel, excepto que incluye una pestaa que permite dejar mas claro, el
proposito del grupo.
Problemas propuestos
1.- Escribir proposiciones en C++ Builder para llevar a cabo los siguientes clculos:
Conversin en la escala de temperatura:
La frmula para convertir grados Farenheit a centigrados
C = 5 (F 32)/9
R = F + 460
GK = C + 273
donde
C = Temperatura en escala Celsius, C
F = Temperatura en escala Fahrenheit, F
R = grados Rankine.
GK = temperatura en grados Kelvin.
Da to s p a ra u sa r com o eje mp lo
Grupo F
1 200
2 60
3 600
5.- La ley de Stokes describe la resistencia al movimiento de una esfera a travs de un fluido, en la
regin de flujo laminar:
D=3Vdu
______________
Introduccin a las Bases de Datos 83
donde
D = resistencia al movimiento, lb-p
V = velocidad, p/seg
d = dimetro de la esfera, p
u = viscosidad, lb-seg/p 2
Escriba un programa en C++ Builder que lea los valores de V, d y u . e imprima la resistencia al
movimiento D.
Datos para usar como ejemplo
Grupo V d u
1 0.1 0.1 0.02 (glicerina @ 65F)
2 0.1 0.5 2.2 X 10 -5 (agua @ 65F)
3 0.1 0.25 3.2 X 10 -5 (mercurio @ 65F)
6.- La ecuacin del movimiento uniformemente acelerado del problema 3 se puede modificar
para incluir el efecto :e un desplazamiento inicial, como sigue:
s = so + volt + 1/2at 2
donde:
s = desplazamiento en un tiempo t, pulg.
so = desplazamiento inicial, pulg.
vo = velocidad inicial, pulg/seg
a = aceleracin, pulg/seg 2.'
t = tiempo, seg.
Escriba un programa de computador que lea los valores de s o, vo, a y t e imprima el valor de s.
7.- Escriba un programa que encuentre la media aritmetica de 100 nmeros que se llern a razn de uno
por lnea.
8.- Cada lnea de un archivo de datos contiene un nmero real positivo (menor que 1000). Si el archivo
tiene como ltima lnea una lnea de delimitacin (un nmero negativo para indicar el fin de los datos:
a) Escriba un programa que encuentre el nmero mayor en el archivo.
b) Escriba un programa que encuentre el nmero menor en el archivo.
c) Escriba un programa que encuentre el segundo nmero mayor en el archivo. (suponga que el archivo
tiene ms de un nmero.
9.- Escribir un programa para calcular con la frmula del inters compuesto:
nm
i
A = P 1 +
m
Donde:
A = cantidad, en $
P = prstamo principal, en $
i = tasa de inters, en % (en decimal)
m = nmero de veces al ao durante las cuales se carga el inters
n = nmero de aos
donde
_______________
84 C++ Builder Aplicado Ing. Ortiz
2 g L3 (TS - T f )
GR =
2
donde
GR = nmero de Grashof
= densidad, en lb-m/p3
= coeficiente de expansin termal, I /F
L = longitud caracterstica, en p
g = aceleracin gravitacional, en p/seg2
Ts = temperatura de superficie, en F
Tf = temperatura del fluido, en F
= viscosidad, en lb-m/p-seg
13.- Elaborar un programa para determinar el flujo de agua a travs de un medidor venturi horizontal:
A1 A 2
Q =C 2 g (h1 - h 2 )
A12 - A 22
donde
Q = tasa de flujo, en p3/seg
C = coeficiente mtrico
A1 = rea de la seccin trasversal del tubo, en p2
A2 = rea de la seccin trasversal del cuello, en p2
h1 = presin del calor en el tubo, en p
h2 = presin del calor en el cuello, en p
g = aceleracin gravitacional, en p/seg2
15.- Un problema comn en una planta manufacturadora, en donde las partes se fabrican en serie por
grandes cantidades, se almacenan y se usan de acuerdo con la necesidad de ensamblaje de un
producto, es determinar el tamao de la serie ms econmica. La siguiente expresin se usa para
calcular el nmero de piezas que deben fabricarse en un lote.
2SDU
X =
(T + R) C + 2 A (1 - U/P)
Donde
X = tamao del lote, nmero de piezas.
S = costo de montaje y desmontaje, $/lote
D = das de trabajo por ao
U = tasa de uso, piezas/da
______________
Introduccin a las Bases de Datos 85
16.- La frecuencia de resonancia paralela fp de un cristal de cuarzo es cerca del 0.3 por ciento por encima
de su frecuencia de resonancia en serie, fs. Las frmulas para fp y fs son:
P
fs =
LC
17.- El nmero de Grashof es un parmetro, sin unidades, que se usa para los clculos de trasferencia de
calor, en conveccin libre (vea el problema 11).
Escriba un programa C++ para evaluar e imprimir el nmero Grashof para la conveccin libre en un
conducto (donde el dimetro interior es la dimensin caracterstica), dadas las propiedades del fluido y
la temperatura de las paredes del conducto.
18.- En el teodolito de un topgrafo se visualizan dos lneas de taquimetra que interceptan un segmento de
varilla por encima y por debajo de la lnea horizontal indicada por los marcadores de corte:
_______________
86 C++ Builder Aplicado Ing. Ortiz
SerieR S T a C
1 6.00 2.35 5.00 1023' 1.15
2 4.75 1.97 5.29 1439' 0.98
19.- Un capacitor variable se usa para proveer trasferencia de impedancia; por ejemplo, para acoplar un
circuito sintonizado a un amplificador de potencia. Las siguientes son las frmulas necesarias:
Donde
C = capacitancia requerida para producir resonancia paralela con una inductancia L a una frecuencia f, F
f = frecuencia de resonancia, hz
L = inductancia, henrios
Q = Q de inductancia L a una frecuencia f
Reff = resistencia en serle efectiva de la inductancia L, ohmios
Rpar = resistencia en paralelo de la inductancia L, ohmios
C1 = la parte superior de C por encima de la variacin, faradios
C2 = la parte inferior de C, la que est conectada al amplificador, faradios
Ramp = valor ptimo de la resistencia de carga del amplificador, ohmios
Escriba un programa que calcule e imprima los valores de C 1 y C2, para valores solicitados de f, L, Q,
Ramp y Ref
Datos para usar como ejemplo
f = 3300 hz
L = 0.0028 henrios
Q = 60
Ramp = 150 ohm
R ef = 0.91 ohm
______________
Introduccin a las Bases de Datos 87
21.- El torque trasmitido por un eje de trasmisin que produce una cantidad de caballos de fuerza, a una
velocidad rotacional constante, se da por medio de la frmula:
( HP) (63 000)
T =
N
donde
T = momento de torsin, lb-pul
HP = caballos de fuerza
N = velocidad rotacional, rev/min
La frmula para seleccionar un eje de trasmisin de tamao apropiado se dio en el problema 20.
Escriba un programa que tome como datos de entrada los caballos de fuerza que se van a generar, la
velocidad del eje, y el esfuerzo de corte permitido por el material del eje: el programa debe imprimir el
dimetro del eje requerido.
Datos para usar como ejemplo
Grupo H P N S
1 600 85 6000
2 5 1800 6000
3 5 3600 6000
22.-. Modifique el programa escrito en el problema 21 de tal manera que los datos de salida incluyan,
adems del dimetro del eje, los datos de entrada, Use proposiciones de salida que provean nombres
apropiados para todos los valores de salida. (Esta tcnica de escribir los datos de entrada junto con los
datos de salida es una buena prctica de programacin.)
donde
H3 = intensidad magntica en el centro del cascarn, amp/m
Ho = intensidad magntica en el exterior del cascarn, amp/m
= permeabilidad del cascarn, h/m
o = permeabilidad del espacio, h/m
a = radio interior del cascarn, m
b = radio exterior del C++ Builder que lea los valores de las dos permeabilidades y la relacin de los
radios, e imprima el valor de la relacin H3/Ho.
Datos para usar como ejemplo
o = 4 x 10-7
= 500 o
a/b = 0.98
_______________