You are on page 1of 11

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

FACULDADE DE ENGENHARIA SO PAULO

PROCESSAMENTO DE DADOS - BP1

LINGUAGEM C++ BUILDER

PROF ANGELA HUM TCHEMRA PROF EMILIO CELSO PASTORELO DE MIRANDA

2011

Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

ELABORAO DE UM PROGRAMA Programa uma sequncia de instrues ou comandos que permite obter a soluo de um problema ou realizar tarefas. Pode-se dizer, tambm, que um algoritmo implementado em uma linguagem de programao, recebe o nome de Programa. A Linguagem de Programao composta por um conjunto de regras e comandos que podem ser compreendidos e executados pelo computador.
ETAPAS PRINCIPAIS PARA O DESENVOLVIMENTO DE PROGRAMAS EM C++ BUILDER
ERROS DE COMPILAO PROBLEMA ALGORITMO PROGRAMA FONTE (arquivo.cpp) COMPILAO PROGRAMA OBJETO (arquivo.obj)

(LGICA)

PROGRAMA OBJETO

BIBLIOTECA DE ROTINAS E FUNES PRDEFINIDAS (arquivos.h)

LINK

PROGRAMA EXECUTVEL

TESTES

RESULTADOS
DO PROBLEMA

(arquivo.obj)

(arquivo.exe)

ERROS NOS RESULTADOS (ERROS DE LGICA)

Algoritmo: conjunto finito de procedimentos (ou passos ou instrues) escritos em sequncia lgica com o objetivo de atingir a soluo de um problema. Programa Fonte: conjunto de instrues. o algoritmo codificado em uma linguagem de programao de alto nvel. Deve ser gravado em disco com o nome do arquivo e extenso .cpp. Qualquer alterao no programa deve ser feita no programa fonte. Compilao: o processo que consiste em converter o programa fonte (escrito numa linguagem de alto nvel) para um programa objeto (instrues em cdigo de mquina), verificando a existncia ou no de erros de compilao (erros de sintaxe digitao). Programa Objeto: o programa convertido em linguagem de mquina (linguagem de baixo nvel). Um arquivo gerado em disco, automaticamente, com o mesmo nome do arquivo fonte, porm com a extenso .obj. Biblioteca de rotinas e funes predefinidas: consiste em um conjunto de arquivos que possuem procedimentos (rotinas e funes) predefinidos que executam tarefas comuns de programao. Estes arquivos so instalados no disco quando da instalao da linguagem. So arquivos cujos nomes tm a extenso .h (arquivos header ou arquivos de cabealho). Link: significa ligar, unir, vincular, isto , nesta etapa, o programa executvel gerado, proveniente da incluso ou unio de rotinas predefinidas existentes na biblioteca da linguagem e o programa objeto. Programa executvel: programa final, utilizado pelo usurio. Um arquivo gerado em disco com o mesmo nome do arquivo fonte, porm, com a extenso .exe.
Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

LINGUAGEM DE PROGRAMAO C++ BUILDER (BORLAND) uma linguagem orientada a objeto e o seu ambiente de desenvolvimento contm: Barra de Menus Barra de Ferramentas (cones) Paleta de Componentes Janela Object Inspector Objeto Form1 Janela da Unit1
Barra de Ferramentas (cones) Barra de Menus Paleta de Componentes (Objetos)

Object Inspector: contm as Propriedades do objeto selecionado e permite escolher o evento para o objeto Formulrio (Form1): interface grfica, onde se pode criar e inserir outros objetos

Unit1.cpp: local onde so inseridas as instrues do programa (eventos dos objetos)

Para executar o programa e visualizar o layout do formulrio e dos outros objetos, utilizar a opo RUN (menu Run / opo Run ou tecla F9 ou boto ). Exemplos de Objetos e suas Propriedades: Objeto Form1 (formulrio) Propriedades Caption Color Height Width Hint ShowHint Objeto Label1 (rtulo) Propriedades Caption Color Font Height Left Top Width Hint ShowHint Objeto Edit1 (caixa de edio) Propriedades Color Font Height Left Text Top Width Hint ShowHint Objeto Button1 (boto) Propriedades Caption Font Height Left Text Top Width Hint ShowHint

Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

Exemplo de programa a) Problema: Exibir uma mensagem na tela. b) Algoritmo INCIO EXIBIR Curso de Engenharia FIM c) No ambiente do C++ Builder, criar o layout do formulrio e inserir os objetos necessrios Form1 Label1 Label2 Button1
Objeto Form1 Propriedades Caption: Exemplo: Mensagem na tela Color Height Width Caption: (nome da escola) Color Font Height Widht Caption: (nome do aluno) Color Font Height Widht Caption: Mostrar mensagem

d) Criar um evento (ao) para o boto Button1, quando de um clique do mouse durante a execuo do programa. Para isto, no ambiente de desenvolvimento, no boto Button1 dar um duplo clique para que a janela da Unit1.cpp fique em destaque para inserir o comando do algoritmo, conforme segue:
void _fastcall TForm1::Button1Click(TObject *Sender) { Label2->Caption=Curso de Engenharia; }

Label1

Label2

Button1

Neste exemplo, a mensagem ser exibida no Label2.

Obs.: Outra forma de criar um evento para o boto Button1 clicar na guia Events do Object Inspector, e no evento OnClick dar um duplo clique. e) Testar o programa com o comando RUN. Acrescentar o boto Button2, com a propriedade Caption: Alterar a mensagem e no Button2 dar duplo clique para inserir o comando.
void _fastcall TForm1::Button2Click(TObject *Sender) { Label2->Caption=nome do aluno; }

f) Testar o programa com RUN. EXERCCIOS Elaborar algoritmo e escrever programa C++ Builder. Ex1. Dado um valor, calcular e exibir o dobro do valor. a) Algoritmo INCIO Variveis X, Y: Real LER X Y 2*X EXIBIR Y FIM b) Criar o layout do formulrio e os objetos Form1: Caption: Programa - Dobro de um valor Label1: Caption: Valor de X Label2: Caption: Dobro de X Edit1: Text: (em branco) Edit2: Text: (em branco) Button1: Caption: Calcular
Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

c) Criar um evento (ao) para o boto Button1 Na guia Events, opo OnClick (dar duplo clique) ou no prprio boto Button1 dar duplo clique, para ativar a janela da Unit1. Variveis do tipo Real double LER o valor a ser lido ser digitado na caixa de edio Edit1, que aceita apenas texto, logo, necessrio converter o texto (conjunto de caracteres ou string) para nmero real usando a funo de converso: StrToFloat(parmetro). EXIBIR o valor ser exibido na caixa de edio Edit2, que aceita apenas texto, logo, necessrio converter o nmero real para texto usando a funo de converso: FloatToStr(parmetro). sinal de atribuio que em C++ deve ser substitudo pelo sinal = Algoritmo INCIO Variveis X, Y: Real LER X Y 2*X EXIBIR Y Unit1 void _fastcall TForm1::Button1Click(TObject *Sender) { double X, Y; X=StrToFloat(Edit1->Text); Y=2*X; EXIBIR Y Edit2->Text=FloatToStr(Y); }

FIM Testar o programa (RUN). Aps test-lo, fechar a janela do programa. Retornar ao ambiente de desenvolvimento e acrescentar o objeto Button2 ao formulrio. Este boto quando clicado dever limpar as caixas de edio Edit1 e Edit2, e colocar o cursor no Edit1. Button2 Caption: Limpar Na guia Events, em OnClick (duplo clique) void _fastcall TForm1::Button2Click(TObject *Sender) { Edit1->Clear( ); Edit2->Clear( ); Edit1->SetFocus( ); } Testar novamente o programa (RUN). Aps test-lo, fechar a janela do programa. De volta ao ambiente de desenvolvimento, acrescentar o objeto Button3. O boto quando clicado dever fechar a janela do programa. Button3 Caption: Fechar Na guia Events, em OnClick (duplo clique) void _fastcall TForm1::Button3Click(TObject *Sender) { Close( ); }
Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

Testar novamente o programa (RUN). Aps test-lo, fechar a janela do programa. Para que teclas de atalho sejam usadas como alternativa para o clique do mouse nos botes: Button1 Caption: &Calcular ( C neste caso, as teclas Alt+C sero as de atalho) Button2 Caption: &Limpar ( L Alt+L) Button3 Caption: &Fechar ( F Alt+F) Testar novamente o programa (RUN), usando as teclas de atalho. Aps test-lo, fechar a janela do programa. Salvar o programa: Menu File / opo Save All Primeiro deve ser gravado o arquivo da Unit1 com um nome, por exemplo: U_Ex1 Em seguida, deve ser gravado o arquivo do Project1 com um nome, por exemplo: P_Ex1 Ex2. Dados dois valores, calcular e exibir a soma dos dois valores. a) Algoritmo INCIO Variveis A, B, R: Real LER A LER B RA+B EXIBIR R FIM b) Criar o layout do formulrio e os objetos Form1: Caption: Programa Soma de dois valores Label1: Caption: Primeiro Valor Label2: Caption: Segundo Valor Label3: Caption: Soma Edit1: Text: (em branco) Edit2: Text: (em branco) Edit3: Text: (em branco) Button1: Caption: &Calcular Button2: Caption: &Limpar Button3: Caption: &Fechar
d) dar um duplo clique no Button2, para program-lo:
void _fastcall TForm1::Button2Click(TObject *Sender)

c) dar um duplo clique no Button1, para program-lo:


void _fastcall TForm1::Button1Click(TObject *Sender)

{ double A, B, R; A=StrToFloat(Edit1->Text); B=StrToFloat(Edit2->Text); R=A+B; Edit3->Text=FloatToStr(R); }

{ Edit1->Clear( ); Edit2->Clear( ); Edit3->Clear( ); Edit1->SetFocus( ); } e) dar um duplo clique no Button3, para program-lo:
void _fastcall TForm1::Button3Click(TObject *Sender)

{ Close( ); }

Testar o programa e salvar.

Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

Elaborar algoritmo e escrever programa C++ Builder. Ex3. Dados dois valores, calcular e exibir o valor da soma, subtrao e produto entre os dois valores. Algoritmo (sugesto) Boto Calcular
INCIO Variveis X, Y, SOMA, SUBT, PROD: Real LER X LER Y SOMA X+Y SUBT X-Y PROD X*Y EXIBIR SOMA EXIBIR SUBT EXIBIR PROD FIM void __fastcall TForm1::Button1Click(TObject *Sender) { double X, Y, SOMA, SUBT, PROD; X=StrToFloat(Edit1->Text); Y=StrToFloat(Edit2->Text); SOMA=X+Y; SUBT=X-Y; PROD=X*Y; Edit3->Text=FloatToStr(SOMA); Edit4->Text=FloatToStr(SUBT); Edit5->Text=FloatToStr(PROD); } Boto Limpar void __fastcall TForm1::Button2Click(TObject *Sender) { Edit1->Clear( ); Edit2->Clear( ); Edit3->Clear( ); Edit4->Clear( ); Edit5->Clear( ); Edit1->SetFocus( ); } Boto Fechar void __fastcall TForm1::Button3Click(TObject *Sender) { Close( ); }

Testar o programa (RUN). Aps test-lo, fechar a janela do programa. Observar que as caixas de edio Edit3, Edit4 e Edit5 devem ser bloqueadas para edio, porque devem apenas mostrar os valores calculados. Para bloquear a edio do usurio, alterar a Propriedade ReadOnly para true de Edit3, Edit4 e Edit5; a opo false, permite a edio em tempo de execuo. Testar o programa (RUN) e verificar que no possvel editar nas caixas Edit3, Edit4 e Edit5. Aps test-lo, fechar a janela do programa. Salvar o programa com File / Save All. Ex4. Dado o raio de um crculo, calcular e exibir a rea do crculo.
INCIO Variveis R, A: Real LER R SE R > 0 ENTO A R2 EXIBIR A SENO EXIBIR Raio invlido FIM SE FIM

Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

Comando de Desvio Condicional Algoritmo SE condio ENTO SENO FIM SE C++ if (condio) { procedimentosV } else { procedimentosF }

procedimentosV procedimentosF

Nas condies pode-se utilizar os seguintes operadores: Operadores de Relao Algoritmo C++ > (maior que) > < (menor que) < <= (menor ou igual) >= (maior ou igual) = (igual a) == != (diferente) INCIO Variveis R, A: Real LER R SE R > 0 ENTO A R2 EXIBIR A SENO EXIBIR Raio invlido FIM SE FIM Operadores Lgicos Algoritmo C++ E && OU ||

void __fastcall TForm1::Button1Click(TObject *Sender) {

double R, A; R=StrToFloat(Edit1->Text); if (R>0) { A=3.1416*R*R; Edit2->Text=FloatToStr(A); } else { Edit2->Text=Raio invlido; }


}

Testar e salvar. OBS.: No programa em C++, o valor de (pi) foi substitudo pelo valor aproximado 3.1416, porm, possvel utilizar uma constante chamada M_PI que est definida como o valor de no arquivo de funes math.h. Para utiliz-la, necessrio declarar no incio da Unit1.cpp a linha: #include <math.h> e a linha de clculo da rea do tringulo pode ser: A = M_PI*R*R;

Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

Ex5: Escrever algoritmo e programa C++ Builder. Dada a base e a altura de um tringulo, calcular e exibir a rea do tringulo. ALGORITMO Soluo 1 ALGORITMO Soluo 2 INCIO INCIO Variveis B, H, A: Real Variveis B, H, A: Real LER B LER B LER H LER H SE B 0 SE B 0 OU H 0 ENTO EXIBIR Base invlida ENTO EXIBIR Dados invlidos SENO SE H 0 SENO A (B * H) / 2 ENTO EXIBIR Altura invlida EXIBIR A FIM SE SENO A (B * H) / 2 FIM EXIBIR A FIM SE FIM SE FIM

PROGRAMA C++ BUILDER Form1: Caption: REA DO TRINGULO Label1: Caption: Valor da Base Label2: Caption: Valor da Altura Label3: Caption: rea Edit1: Text: (em branco) Evento para o boto Button1 (Calcular) Soluo 1
void __fastcall TForm1::Button1Click(TObject *Sender)

Edit2: Text: (em branco) Edit3: Text: (em branco) Button1: Caption: &Calcular Button2: Caption: &Limpar Button3: Caption: &Fechar

Soluo 2
void __fastcall TForm1::Button1Click(TObject *Sender)

double B, H, A; B=StrToFloat(Edit1->Text); H=StrToFloat(Edit2->Text); if (B <= 0) { Edit3->Text=Base invlida; } else { if (H <= 0) { Edit3->Text=Altura invlida; } else { A=(B*H)/2; Edit3->Text=FloatToStr(A); } }
}

double B, H, A; B=StrToFloat(Edit1->Text); H=StrToFloat(Edit2->Text); if (B <= 0 || H <= 0) { Edit3->Text=Dados invlidos; } else { A = (B*H)/2; Edit3->Text=FloatToStr(A); }
}

Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

10

OBSERVAO: No comando de desvio condicional do C++, as chaves podem ser omitidas quando h apenas uma instruo a ser executada quando a condio verdadeira ou falsa. Por exemplo, as duas formas seguintes esto corretas e levam aos mesmos resultados: if (B <= 0) if (B <= 0) { Edit3->Text=Base invlida; Edit3->Text=Base invlida; else } if (H <= 0) else Edit3->Text=Altura invlida; { else if (H <= 0) { { A=(B*H)/2; Edit3->Text=Altura invlida; Edit3->Text=FloatToStr(A); } } else { A=(B*H)/2; Edit3->Text=FloatToStr(A); } } Testar o programa com as solues propostas e salvar. Ex6: Dado o valor de X, calcular e exibir o valor de Y de acordo com as condies: para X 0 Y = 2X + 3 para 0 < X 5 Y = 3x2 8 para X > 5 Y = 4X ALGORITMO INCIO Variveis X, Y: Real LER X SE X 0 ENTO Y 2*X + 3 SENO SE X > 0 E X 5 ENTO Y 3*X*X 8 SENO Y 4*X FIM SE FIM SE EXIBIR Y FIM PROGRAMA C++ BUILDER
void __fastcall TForm1::Button1Click(TObject *Sender)

Trecho das condies do programa sem as chaves: if (X <= 0) Y = 2*X + 3; else if (X > 0 && X <= 5) Y = 3*X*X 8; } else Y = 4*X; Edit2->Text=FloatToStr(Y);

double X, Y; X=StrToFloat(Edit1->Text); if (X <= 0) { Y = 2*X + 3; } else { if (X > 0 && X <= 5) { Y = 3*X*X 8; } else { Y = 4*X; } } Edit2->Text=FloatToStr(Y);

Prof Angela Hum Tchemra

FESP Faculdade de Engenharia So Paulo BP1 Processamento de Dados

11

EXERCCIOS: Escrever ALGORITMO e PROGRAMA C++ BUILDER. 1) Dadas as notas S1 e S2 de um aluno, calcular e exibir a mdia aritmtica do aluno e a sua situao: mdia 5, o aluno est Aprovado; 3 mdia < 5, o aluno dever fazer um Exame; mdia < 3, o aluno est Reprovado. 2) Dados os lados de um retngulo e o raio de um crculo, calcular e exibir a rea e o permetro das duas figuras, indicando qual a figura de menor rea e qual a figura de maior permetro. 3) Dado um valor de X, calcular e exibir o valor da funo F(X), de acordo com as condies: para X < 0 F(X) = 8 X2 2 X 1 para X = 0 F(X) = 0 para X > 0 F(X) = 3 X + 5. 4) Dado um valor de X, calcular e exibir o valor da funo G(X), de acordo com as condies: para X < 5 G(X) = X2 + 2 X + 5 para X = 5 No existe funo definida para 5 < X < 5 G(X) = (X + 5)/2 para X = 5 No existe funo definida para X > 5 G(X) = (3X + 4)/(X + 5) 5) Dados os lados de um tringulo, verificar se o tringulo Equiltero (3 lados iguais), Issceles (2 lados iguais) ou Escaleno (3 lados diferentes). 6) Dados os valores de A e B, calcular e exibir o valor de X que satisfaz a equao: A X + B = 0. 7) Deseja-se pagar a comisso de vendedores de uma loja, levando-se em considerao que sua comisso ser de 5% do total da venda. So dados o preo unitrio do produto vendido e a quantidade vendida. Calcular e exibir o total da venda e o valor da comisso a ser paga para o vendedor. 8) Dada a idade de um nadador, classifique-o em uma das seguintes categorias: Infantil A: de 5 a 7 anos Infantil B: de 8 a 11 anos Juvenil A: de 12 a 13 anos Juvenil B: de 14 a 17 anos Adulto: maiores de 18 anos 9) Dado o nmero de horas trabalhadas de um operrio, calcular o seu salrio, sabendo-se que ele ganha R$ 10,00 por hora. Caso o nmero de horas exceda a 50 horas, deve-se pagar cada hora excedente o valor de R$ 20,00. Exibir o salrio total e o salrio excedente. 10) A Secretaria de Meio Ambiente que controla o ndice de poluio mantm 3 grupos de indstrias que so altamente poluentes do meio ambiente. O ndice de poluio aceitvel varia de 0,05 at 0,25. Se o ndice sobe para 0,3 as indstrias do 1 grupo so intimadas a suspenderem suas atividades, se o ndice crescer para 0,4 as indstrias do 1 e 2 grupo so intimadas a suspenderem suas atividades, se o ndice atingir 0,5 todos os grupos devem ser notificados a paralisarem suas atividades. Dado o ndice de poluio medido, exibir uma notificao (mensagem) adequada aos diferentes grupos de empresas.

Prof Angela Hum Tchemra

You might also like