Está en la página 1de 14

UNIDAD I C++BUILDER PROGRAMACION VISUAL ELEMENTOS BASICOS 1.

- INTRODUCCION PROGRAMACION C++BUILDER

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. Aun mas el pleno potencial del hardware no es aprovechado plenamente y existe un considerable retraso con el software y sus aplicaciones, generando lo que se conoce como crisis del software. En programacin tradicional, modular o estructurada un programa describe una serie de pasos a ser realizados para la solucin de un problema, es decir es un algoritmo. En programacin orientada a objetos ( OOP ) un programa es considerado como un sistema de objetos interactuando entre s, ambientes de desarrollo visuales facilitan aun ms la construccin de programas y solucin de problemas, porque permiten abstraer al ingeniero de software de todo el GUI (interfase grfica) del problema, que constituye ms del 60% del cdigo normal de un programa. Es decir, en programacin modular o estructurada un problema sencillo de informacin es descompuesto en una serie de mdulos(llamados procedimientos o funciones) donde cada uno de ellos realiza una tarea especfica, por ejemplo uno de ellos captura los datos, otro resuelve operaciones, etc. En OOP todo problema aun aquellos sencillos de informacin, se consideran y resuelven como mdulos de cdigo gigante (clase) que contiene todo el cdigo necesario(variables, procedimientos, funciones, interfaces, etc.) para solucionar el problema. 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. C++Builder, es un compilador que permite usar cualquiera de los tres enfoques 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.

2.- MODELO DE SOLUCION C++BUILDER

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: 1. 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. 2. 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). 3. LA TERCERA PARTE es el resultado o solucin del problema que generalmente se obtiene de la parte de operaciones del modelo y dichos datos estn almacenados en las llamadas variables de salida. En resumen para todo problema sencillo de informacin es necesario plantearse las siguientes preguntas: Que informacin o variables de salida se van a desplegar en pantalla para responder al problema planteado originalmente? 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. Informacin son datos ya procesados que resuelven un problema planteado. EJEMPLO DE MODELO DE SOLUCION 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. UNIDAD 5.- C++BUILDER COMPONENTES Variable(s) Entrada Proceso u operacin Variable(s) salida BASE ALTURA AREA = BASE * ALTURA / 2 AREA

TAREAS PROGRAMACION C++BUILDER PROBLEMA 2.- CONVERTIR LA EDAD EN AOS DE UNA PERSONA A MESES. PROBLEMA 3.- CONVERTIR PESOS A DOLARES. PROBLEMA 4.- CALCULAR EL AREA DE UN CIRCULO CON LA FORMULA

PROBLEMA 5.- EVALUAR LA FUNCION VALOR DE X. Pero recordar tambin que existirn problemas sencillos donde:

PARA CUALQUIER

*No se ocupan entradas o no se ocupan operaciones, pero todos ocupan salida. * 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. * Un problema puede tener ms de una solucin correcta. * El problema no esta suficientemente explicado o enunciado, entonces, estudiarlo, analizarlo y construirlo de manera genrica. PROBLEMAS SUGERIDOS: Construir los modelos de solucin de los siguientes problemas: PROBLEMA 6.- Convertir millas a kilmetros(caso normal) PROBLEMA 7.- Convertir 125 metros a centmetros(no ocupa entradas) PROBLEMA 8.- Se calcula que en promedio hay 4.7 nidos en cada rbol en la UABC, tambin se calcula que en cada nido existen un promedio de 5.8 pjaros, se pide calcular la cantidad total de nidos y de pjaros en los 227 arboles que existen en la UABC. (no ocupa entradas) PROBLEMA 9.- La gorda Sra. Lpez y sus 8 hijos solo compran una vez al mes su mandado en conocido supermercado, en dicha tienda el kilogramo de frijol cuesta $8.75, el paquete de tortillas cuesta $3.55 y el frasco de caf vale $14.25, si solo compran de estos tres productos para su mandado, calcular su gasto total. ( problema no claro) PROBLEMA 10.- Capturar y desplegar los cinco datos mas importantes de un automvil(no ocupa operaciones)

PROBLEMA 11.- La distancia Tijuana - Ensenada es de 110 kilmetros. Si un automvil la recorre a una velocidad constante de 30 millas por hora, cuanto tiempo tarda en llegar. ( 1 milla = 1.609 Km.) (dos maneras correctas de resolverlo). PROBLEMA 12.-Evaluar la funcin normal). PROBLEMA 13.-Evaluar la funcin entradas). para cualquier valor de x.(caso

para cuando x vale 4 . (no ocupa

3.- C++BUILDER 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. 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. Existen ciertas reglas en cuanto a variables: * Claras y con referencia directa al problema. * * No espacios en blanco, ni smbolos extraos en ellas. * * Se pueden usar abreviaturas, pero solo de carcter general. * No deben ser palabras reservadas del lenguaje. Ejemplos de buenas variables: Nombre, Edad, SdoDiario, IngMensual, Permetro, Calif1, etc.

4.- TIPOS DE DATOS C++BUILDER

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. Los tipos de datos ms comunes en C++Builder son: Tipo Tamao Rango

unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32,768 a 32,767 unsigned int 32 bits 0 a 4,294,967,295 int 32 bits -2,147,483,648 a 2,147,483,647 unsigned long 32 bits 0 a 4,294,967,295 enum 16 bits -2,147,483,648 a 2,147,483,647 long 32 bits -2,147,483,648 a 2,147,483,647 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) long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932 AnsiString cadena de caracteres

AnsiString no es propiamente un tipo de dato, sino una clase que se especializa en al almacenamiento y 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 carga normal de variables strings (que antes no se poda hacer directamente en C o C++) procesos con las variables ya considerndolas como objetos de la clase AnsiString estos procesos antes ocupaban una librera especial llamada < string.h > * 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 ). 5.- C++ BUILDER 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

Como notas importantes a recordar siempre; * En problemas de divisin entre enteros, C++ trunca la parte residual, es decir:
// rea de declaracin de variables float a; // rea de operaciones a = 10 / 4;

// rea de despliegue de resultados desplegar a; --> En pantalla sale ( 2.000000 )

El problema no es el tipo float, sino que por definicin de la divisin entre enteros C++ siempre trunca la parte residual, mas adelante se indica como se resolver este problema. El operador (%) devuelve el residuo entero de una divisin entre enteros, ejemplo: rea de despliegue Otro ejemplo; Para resolver los problemas de potencias y races, se usan ciertas instrucciones especiales que proporciona 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: Esta funcin ocupa dos valores o datos( base y exp) ambos de tipo double, y regresa un resultado tambin de tipo double, ejemplo; - resolver el problema de calcular Para resolver el problema de races, se aprovecha una de las mas elementales y conocida de las leyes de exponentes que dice: decir una raz cualquiera se puede transformar a una potencia con un exponente Es

fraccionario. Ejemplo: problema y = 3 x esto es equivalente a entonces: y=3 * pow(double(x),double(1/2.0) ); * En este ejemplo se esta dando por supuesto que no interesa el tipo de dato que requiere la funcin pow() para trabajar correctamente 6.- C++BUILDER 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: Ejemplo:

int (3.1416);

* en este ejemplo se est convirtiendo un float a int, recordar que en este caso ya no se tendrn los decimales. Como nota importante este operador resuelve los dos problemas pendientes:

1. El de la divisin entre enteros. 2. El tipo de dato especifico que requieren las funciones. En toda divisin recordar agregar a uno de los dos valores el (.0), solo que los dos elementos sean variables entonces usar el operador cast con una de ellas. 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: TAREAS PROGRAMACION C++BUILDER : 1. 2. 3. 7.- C++BUILDER JERARQUIA DE OPERACIONES

El problema de no tomar en cuenta la jerarqua de los operadores al plantear y resolver una operacin casi siempre conduce a resultados muchas veces equivocados como estos: Ejemplos:

1. 2. 2+ 3* 4 = 20(incorrecto) = 14 (correcto)

b) si calif1=60 y calif2=80

Recordar siempre, que antes de plantear una formula en un programa se deber evaluar contra el siguiente:

Nota: Si se quiere alterar el orden normal de operaciones, entonces usar parntesis. Nota: Tampoco es bueno usar parntesis de mas en una operacin, esto solo indica que no se evalo bien la formula, como en el siguiente ejemplo;

aqu los parntesis estn de mas, porque por orden de operaciones, multiplicacin y divisin tienen la misma jerarqua y entonces se resuelven de izquierda a derecha, en otras palabras ni que falten parntesis ni que sobren parntesis. 8.- C++BUILDER ENTRADAS/SALIDAS EN PROGRAMACION VISUAL

Entradas o capturas de datos y salidas o despliegues de informacin o resultados son de los procesos ms comunes en cualquier tipo de problema de informacin, estos procesos o instrucciones varan de acuerdo a los lenguajes y ambientes de programacin a usar. 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. El ambiente de construccin de programas a usar, es el siguiente: * SOLO CARGARLO EN PANTALLA EJECUTANDO EL C++Builder, QUE SE ENCUENTRA
EN LA BARRA DE START DE WINDOWS.

Sus elementos bsicos son: 1.- La barra de mens (file, edit , etc.); 2.- La barra de herramientas(icono de grabar, run, forma, etc.) 3.- La barra de componentes 4.- El Inspector de Objetos 5.- La forma activa o principal 9.- C++BUILDER FORM1 ACTIVA O PRINCIPAL

Es sobre esta forma donde se construye el programa y esta forma se convierte en ventana al momento de ejecutarse el programa. 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. Tambin se pueden modificar las propiedades dentro de un programa, usando instrucciones apropiadas, mismas que llevan el siguiente formato: nomobjetopropiedad = nvovalor; ej.; Form2Color=clRed; Eventos, son todos aquellos sucesos de carcter externo que afectan o llaman la atencin del objeto, para estos caso la forma o ventana: 1. Debe tener capacidad de detectar el evento 2. Aun mas importante debe tener capacidad de reaccionar y emitir una respuesta, mensaje o conducta apropiada a el evento detectado. Evento es por ejemplo que otro objeto llamado humano, pulse el objeto tecla ESC, o haga click derecho con el objeto ratn en alguna parte de la ventana , etc. , es en estos casos, cuando la ventana detecta un evento de estos, la propia forma deber responder de manera apropiada. Esta respuesta no es automtica, sino son la serie de instrucciones del lenguaje (o programa) que los ingenieros de software disean(o programan), en otras palabras son los eventos quienes contendrn los programas. Es tambien el Inspector de Objetos, quien contiene todos los posibles eventos asociados a la forma.

Para los primeros programas en C++Builder , solo se usaran propiedades sencillas como color, font, etc. de Form1, y no se usan, de momento los eventos que puede detectar Form1.

10.- C++BUILDER PROGRAMAS FORMAS Y COMPONENTES

Un programa o problema de informacin en C++Builder , no es mas que una o mas formas o ventanas, donde cada una de ellas contiene elementos u objetos especiales llamados componentes, dichos componentes C++Builder los proporciona a travs de la barra de componentes.

Es decir toda la interfase que se quiera manejar con el usuario del programa, no consiste mas que de una coleccin de componentes agrupados en una forma o ventana. La coleccin de componentes que pone a nuestra disposicin C++Builder estn agrupados en diversos folder o pestaas o paginas en la barra de componentes, estas categoras contienen los siguientes componentes: Standard.- MainMenu, PopupMenu, Label, Edit, Memo, Button, CheckBox, RadioButton, ListBox, ComboBox, ScrollBar, GroupBox, RadioGroup, Panel.

Win95.- TabControl, PageControl, TreeView, ListView, ImageList, HeaderControl, RichEdit, StatusBar,TrackBar,ProgressBar,UpDown,HotKey.

Additional.- BitBtn, SpeedButton, MaskEdit, StringGrid, DrawGrid, Image, Shape, Bevel, ScrollBox.

Data Access.- DataSource, Table, Query, StoredProc, DataBase, Session, BatchMove, UpdateSQL.

Data Controls.- DBGrid, DBNavigator, DBText, DBEdit, DBMemo, DBImage, DBListBox, DBComboBox, DBCheckBox,DBRadioGroup, DBLookupListBox, DBLookupComboBox.

Win31.- DBLookupList, DBLookupCombo, TabSet, Outline, Header, TabbedNotebook, NoteBook.

Dialogs.- OpenDialog, SaveDialog, FontDialog, ColorDialog, PrintDialog, PrinterSetupDialog, FindDialog, ReplaceDialog.

System.- Timer, PaintBox, FileListBox, DirectoryListBox, DriveComboBox, FilterComboBox, MediaPlayer, OleContainer, Ddeclientconv, DdclientItem, Ddeserverconv, DdeserverItem.

QReport.- QuickReport, QRBand, QRGroup, QRDetailLink, QRLabel, QRMemo, QRDBText, QRDBCalc, QRSysData, QRShape, QRPreview.

ActiveX.- ChartFX.

Para incorporar un componente a una forma solo basta seleccionarlo con un click derecho en su icono y luego colocar el cursor dentro de la forma en el lugar donde se quiere que aparezca y volver a hacer un click derecho. 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. Analizaremos ahora los dos primeros componentes, que tambin se usaran para construir o disear nuestro primer programa en C++Builder y Visual.