c++ builder

5

Click here to load reader

Upload: almir-rivas

Post on 18-Jun-2015

1.091 views

Category:

Documents


0 download

DESCRIPTION

Material de estudo sobre C++ Builder

TRANSCRIPT

Page 1: c++ builder

C++ Builder

Ariane Bredow dos Santos Universidade do Vale do Rio dos Sinos - UNISINOS [email protected] e [email protected]

Resumo

Este artigo tem como objetivo apresentar as principais características e utili dades de um ambiente de programação para a Linguagem C++ . Será mostrado as suas principais funcionalidades, características e um pouco do ambiente do C++ Builder.

1. Introdução

Quando falamos em Borland C++ Builder, estamos nos referindo ao trabalho com a linguagem C++. O Builder é um ambiente de desenvolvimento visual orientado a objetos destinados à criação de apli cações cliente/servidor para os sistemas operacionais Windows 95/98 e Windows NT.

Com ele você poderá criar apli cações extremamente eficientes com o mínimo de codificação manual. A grande vantagem deste ambiente é que, para gerar um aplicativo, o inicio do processo se dá de forma visual, porém é muito importante que você tenha uma boa noção da programação em C ou C++.

Com o Delphi por exemplo, você gera seus apli cativos de forma visual e na hora de programar eventos, utili za o Pascal. O mesmo ocorre com o Borland C++ Builder, porém com a programação voltada ao C++. 2. Programação Orientada a Objetos

Conforme citamos, o Borland C++ Builder é um ambiente de programação orientado a objeto. Mas o que é exatamente uma linguagem orientada a objeto?

Em algumas linguagens mais antigas, você deveria escrever todo o código do seu programa, inclusive para a criação de janelas, botões, etc... Já em ambientes como o Borland C++ Builder, o procedimento será parte visual e parte com escrita de código. Além disso, com um clique em um objeto (por exemplo um botão) será criada toda a interface com o usuário e o sistema irá elaborar parte do código, facilit ando assim a sua vida e diminuindo consideravelmente o tempo de desenvolvimento de um programa.

Mas o que são objetos? Imagine o Word... você tem uma série de botões, cada um com uma função especifica. Esses botões são objetos. As janelas também são objetos, etc...

Cada objeto tem suas propriedades e respondem a eventos. Imagine uma pessoa comparada a um objeto, esta pessoa tem uma altura, cor de olhos, etc... Cada objeto, tem o seu tamanho, sua cor, seu posicionamento na janela, etc... ou seja, cada objeto tem as suas propriedades.

Além de possuir propriedades, os objetos respondem a eventos, veja o exemplo a seguir:

• Ao cli car no botão de sua aplicação o arquivo de texto será aberto.

Observe que ocorreu aqui um evento, ou seja, após o clique (evento) será programada uma ação no projeto.

• Quando o formulário for fechado emitir um sinal sonoro.

Aqui temos outro evento, ou seja, quando o formulário for fechado (evento) será programada uma ação no projeto.

Quando trabalhamos com programação orientada a objetos, temos que saber o significado de alguns termos. Entre eles destacamos:

2.1. Objetos e Classes

Todos os elementos de uma interface (botões, caixas de texto, menus, barras de rolagem, imagens, etc) são considerados objetos. Estes objetos podem ser visuais como os botões, por exemplo, ou não visuais como um temporizador (timer).

No C++ Builder cada objeto pertence a uma determinada classe. Por exemplo, os botões são da classe TButton, as caixas de texto são da TEdit, etc.

2.2. Propr iedades

As propriedades são utili zadas para diferenciar objetos de uma mesma classe.

As propriedades mais comuns são: Name – Os objetos possuem muitas propriedades

comuns. Dentre elas a mais importante é a Name. Todo objeto em um projeto possui uma propriedade Name e o

Page 2: c++ builder

valor desta deve ser único. Colocar nomes significativos não apenas faz seu código mais legível como também previne conflitos futuros com outros nomes.

Caption e Text – A propriedade Caption (título) é uma seqüência de caracteres (String) associada ao objeto com o objetivo de identificá-lo ao usuário. Não é necessário que seja um identificador da linguagem e é usado, em termos gerais, sem sofrer modificações em tempo de execução.

A propriedade Text (texto) também é uma seqüência de caracteres associada ao objeto e que é usada para se ler ou se especificar um novo valor para esta. Não é necessário que seja um identificador da linguagem e é usado, em termos gerais, sofrendo modificações em tempo de execução.

Nem todos os objetos possuem as propriedades Caption e Text. Normalmente Caixas de Edição são dotadas da propriedade Text, enquanto objetos com Textos de Mensagem usam a propriedade Caption.

2.3. Eventos

Capacidade de resposta do objeto a uma determinada

ação que sobre ele ocorrer.

2.4. Métodos Define o comportamento dos objetos de uma

determinada classe

2.5. Formulár io Elemento básico da programação orientada a objetos.

Nesta iremos agrupar os componentes necessários ao desenvolvimento de nosso projeto.

2.6. Outros

Instância – É um objeto por completo; Mensagem – Define a comunicação entre objetos; Unidade – Arquivo que contém o código fonte. Para

cada formulário teremos uma unidade; Componente – Objeto disponível para utili zação em

nosso projeto; Projeto – Seria o mesmo que programa, ou seja, é o

conjunto de formulários que formam a sua aplicação.

3. O Ambiente C++ Builder O BCB (Borland C++ Builder) imediatamente

apresenta as ferramentas necessárias para que você inicie a criação da apli cação:

• Uma janela em branco, conhecida como formulário, na qual você criará a interface do usuário;

• Uma extensiva biblioteca; • Uma maneira fácil de alterar as propriedades de um

objeto, utili zando o Object Inspector; • Acesso direto ao código do programa, util izando o

Editor de Código.

3.1. Tela Pr incipal

Figura 1. Tela Pr incipal

3.2. SpeedBar

SpeedBar é uma barra de ferramenta que contém botões para a execução das atividades mais utili zadas nas opções que estão contidas no Menu do Builder.

Figura 2. SpeedBar

Figura 3. Menu do Builder

3.3. Object Inspector

Permite visualizar rapidamente as propriedades e eventos de um determinado objeto, mostrando ainda de qual classe ele pertence.

Para verificar as propriedades de um determinado objeto, basta cli car no objeto em que se esta trabalhando, e o Object Inspector alternará para as propriedades e eventos deste objeto.

Page 3: c++ builder

Figura 4. Object Inspector

3.4. Código Fonte

O Editor de Código é um completo e poderoso editor ASCII . Com ele, você poderá visualizar e editar todos os códigos fontes que seu projeto contém. A figura abaixo mostra um arquivo default criado para cada novo projeto. Este e um dos vários arquivos que compõem um Projeto.

Figura 5. Editor de código

3.5. Formulár ios Um dos componente básico do sistema de programação

do C++ Builder é o form. Durante o desenvolvimento, o programador posiciona visualmente no form os componentes que deseja que apareçam em seu programa.

Depois que o programa está pronto, o form representa a janela do programa. Ele é a parte mais visível do sistema, com a qual o usuário do programa interage a maior parte do tempo.

Figura 6. Formulár io

4. Arquivos usados em projetos C++ Builder

Quando você cria um projeto, o C++ Builder cria os

seguintes arquivos: • O arquivo de projeto: contém a função WinMain()

e outros códigos de iniciali zação. Para vê-lo selecione View | Project source do Menu principal;

• Os arquivos fonte e header do formulário principal: contêm a definição e declaração da classe do formulário principal;

• Os arquivos de recursos da apli cação e do formulário principal: arquivos binários que descrevem os ícones da apli cação e do formulário principal.

• O arquivo de projeto makefile: é um arquivo texto contendo informações sobre opções de compilação, nomes de arquivos fontes, formulários e bibliotecas incluídas. 4.1. Tipos de Arquivos

.CPP – Neste arquivo está a função principal (WinMain) do projeto, que por sua vez iniciali za a execução do projeto e a criação de todos os formulários em tempo de execução.

.BPR – Neste arquivo tem informações da versão do builder, formulários que estão ligados ao projeto, etc...

.DFM – Possui a imagem do formulário. Cada formulário tem seu próprio .DFM

.DSK – Guarda a aparência do projeto desde a última vez em que foi salvado ou fechado. (tamanho, posição e situação das janelas, etc.)

.EXE – O programa executável.

.H – Arquivos que contém declarações de classe. Podem ser gerados pelo C++ ou pelo programador.

.IL? – Os quatro arquivos com extensão iniciando com .IL são criados para informar ao linker incremental as partes do programa que foram alteradas desde a última montagem, poupando tempo de linkagem.

.OBJ – Arquivo que contém o resultado da compilação dos arquivos fonte.

.MAK – O arquivo de projeto Makefile.

Page 4: c++ builder

.RES – Arquivos de recursos binários compilados, gerados pelo compilador de recursos.

.TDW – Tabela de símbolos do debugger. Usado durante as sessões de debug.

Dica: Para liberar espaço do disco, é seguro deletar os arquivos com extensões: .OBJ, .RES e .TDS, além dos arquivos cuja extensão começam com .IL e com .~

5. Variáveis e Tipos Predefinidos de Dados

Fisicamente, variável é uma região na memória RAM do computador utili zada para representar um dado. Tem seu tipo, com um conjunto de processos utili zados para sua manipulação e pode ter seu conteúdo alterado durante a execução do programa. A Figura abaixo ilustra uma variável, seu endereço e seu conteúdo armazenado em um ou mais bytes.

Figura 7. Conteúdo de uma var iável

Os tipos predefinidos em C++ são divididos em duas categorias: Fundamentais e Genéricos. O tamanho e o faixa de valores dos tipos Fundamentais são independentes da CPU e do sistema operacional e não mudam entre diferentes versões da linguagem. Por outro lado, o tamanho e a faixa de valores dos tipos Genéricos são dependentes da CPU e do sistema operacional.

Tipo Valores

char { -128, ..., -1, 0, 1, ..., 127} e caracteres ASCII

int { -2147483648, ..., -1, 0, 1, ..., 2147483647}

shor t { -32768, ..., -1, 0, 1, ..., 32767}

long { -2147483648, ..., -1, 0, 1, ..., 2147483647}

unsigned char { 0, 1, 2, ..., 255}

unsigned int { 0, 1, 2, ..., 4294967295}

unsigned shor t { 0, 1, 2, ..., 65535}

unsigned long { 0, 1, 2, ..., 4294967295}

bool { false, true}

float { 7 dígitos significativos, Emáx=38}

double { 15 dígitos significativos, Emáx=308}

long double { 19 dígitos significativos, Emáx=4932}

void Não representa valor

Tabela 1. Tipos predefinidos do C++ Builder

Os tipos que mais utili zaremos são o int, o double e o bool. Na necessidade de um tipo para texto, utili zaremos, por exemplo, a classe String. 6. Funções do C++ Builder

Além das operações matemáticas fundamentais, para a solução de nossos problemas são necessárias outras funções como raiz quadrada, logaritmo, seno, cosseno e outras. Algumas dessas funções fazem parte da biblioteca padrão do C++ definida no arquivo stdlib.h. Outras funções mais complexas estão definidas no arquivo math.h. 6.1. Pr incipais Funções

As principais funções da biblioteca stdlib.h são: Função Sintaxe Descrição

abs int abs(int x) Retorna o valor absoluto (sem sinal) de um inteiro.

atof double atof(const char *s)

Converte uma String para ponto flutuante.

atoi int atoi(const char *s) Converte uma String para um valor inteiro.

atol long atol(const char *s)

Converte uma String para um inteiro longo.

fcvt char *fcvt(double value, int ndig, int *dec, int *sign)

Converte um número em ponto flutuante para String.

itoa char *itoa(int value, char *string, int radix)

Converte um valor inteiro para String. Retorna um ponteiro para String.

labs long labs(long int x) Retorna o valor absoluto de um inteiro longo.

random int random(int num) Gera um número aleatório entre 0 e num-1.

randomize void randomize(void) Iniciali za o gerador de números aleatórios.

strtod double strtod(const char *s, char ** endptr)

Converte um String para ponto flutuante (longo ou não).

strtol long strtol(const char *s, char ** endptr, int radix)

Converte um String para um inteiro longo.

strtoul

unsigned long strtoul(const char *s, char ** endptr, int radix)

Converte um String para um inteiro longo sem sinal.

ultoa char *ultoa(unsigned long value, char *string, int radix)

Converte um inteiro longo sem sinal para String.

Tabela 2. Funções da biblioteca stdlib.h

Page 5: c++ builder

As funções da stdlib.h podem ser utili zadas no C++ Builder sem a necessidade de incluir nenhum arquivo extra. Já as funções da math.h, para serem utili zadas necessitam da inclusão do arquivo de cabeçalho. Isto deve ser feito logo abaixo da inclusão da vcl.h que é a biblioteca padrão do Builder.

#include <vcl.h> #include <math.h> As principais funções da biblioteca math.h são:

Função Sintaxe Descrição

acos double acos(double x) Arco Cosseno de x.

asin double asin(double x) Arco Seno de x.

atan double atan(double x) Arco Tangente de x.

cos double cos(double x) Cosseno de x.

cosh double cosh(double x) Cosseno hiperbóli co de x.

exp double exp(double x) Exponencial de x (ex).

fabs double fabs(double x) Retorna o valor absoluto de um ponto flutuante.

log double log(double x) Logaritmo natural (base e) de x.

log10 double log10(double x) Logaritmo base 10 de x.

pow double pow(double x, double y)

Retorna o valor de x elevado a y.

sin double sin(double x) Seno de x.

sinh double sinh(double x) Seno hiperbóli co de x.

sqrt double sqrt(double x) Raiz quadrada de x.

tan double tan(double x) Tangente de x.

tanh double tanh(double x) Tangente hiperbóli ca de x.

Tabela 3. Funções da biblioteca math.h

7. Mensagens de Err o geradas pelo C++ Builder

Mensagem Tradução Undefined symbol 'x0' Símbolo indefinido 'x0'

Statement missing ; comando faltando ; (ponto e vírgula)

Possible use of 'Nmax' before definition

Possível uso de 'Nmax' antes da definição

'Texti' is not a member of 'Stdctrls::TEdit'

'Texti' não é um membro de 'Stdctrls::TEdit'

Do-while statement missing ) Comando Do-while está faltando )

faltando ) Compound statement missing }

Comando composto faltando }

'Nmax' is assigned a value that is never used.

'Nmax' é atribuído um valor que nunca é usado.

'E' is declared but never used.

'E' é declarada mas nunca usada.

Declaration terminated incorrectly

Declaração terminada incorretamente

do statement must have while O comando deve ter while

Tabela 4. Mensagens de erro

8. Dicas para uma boa programação

- A linguagem C++ faz distinção entre maiúsculas e minúsculas, portanto, StrToFloat é diferente de strtofloat;

- Algumas propriedades não podem conter valor nulo (em branco), principalmente a propriedade Name;

- Não esqueça do ponto e vírgula no final dos comandos;

- Use os disquetes apenas para transportar os seus arquivos (copiar de uma pasta no HD para o disquete e vice-versa);

- Para poupar espaço, antes de gravar do HD para o seu disquete, limpe a pasta da apli cação.

9. Conclusão

Aqui foi feito uma breve introdução ao C++ Builder, apresentando de forma sucinta o novo ambiente. 10. Referências Bibliográficas Sites: www.lubas.hpg.ig.com.br www.dainh.cefetpr.br/~robson/prof/topicos/cbuilder/ introbuilder.htm http://macsystemeduc.com.br/li vros/builder.html www.cade.com.br www.google.com.br