Professional Documents
Culture Documents
PRIMEIRO CONTATO
A linguagem de programao C++ Builder serve para fazer programas com mltiplas finalidades, tipo o WORD,
o AUTOCAD, o EXCELL, etc. Veja a aparncia do programa que ser usado na programao.
Variveis so letras ou palavras que iro durante o programa assumir valores para que se possam realizar
clculos.
Ex: a2 = b2 + c2
Esta equao, bastante conhecida, que calcula a hipotenusa de um tringulo retngulo, possui trs variveis, A,
B e C. As variveis B e C recebero nmeros e aps calculada a equao o resultado ser guardado na varivel
A que tambm representar um nmero.
float => varivel real, aceita nmeros reais (com e sem vrgula)
String => varivel que aceita letras "para apresentao no programa, no utilizada para clculos "
Na programao as variveis funcionam da mesma maneira. Fora este fato, quando definimos uma varivel em
um programa, este deixa um espao na memria do computador reservado para cada varivel definida.
1
Veja a ttulo de exemplo, como so definidas variveis em um programa.
So vrios os comandos existentes no C++, os que seguem abaixo, so bsicos e permitiro fazer pequenos
programas .
Label "Entrar com texto no programa. " (Onde est a letra A nos cones acima.)
Edit "Entrar com valores para o programa. " (Onde est a letra ab nos cones acima.)
Button "Entrar com a programao do programa. " (Onde est a letra OK nos cones acima.)
Se clicar em qualquer um deles citados acima, na janela Object Inspector aparecer s propriedades do
comando.
Position " Define onde o programa aparecer na tela quando rodar. "
Sempre que aparecer um + dentro de um quadrado, como abaixo, ao se clicar no + aparecero opes do
comando.
2
Dentro da FONT aparecero as seguintes opes:
As se clicar ao lado do (TFont), no quadrado com os 3 pontinhos (...) abrese a tela abaixo com vrias opes;
F12 " Alterna entre modo grfico e modo texto ( programa ). "
+ = Soma
- = Subtrao
3
* = Multiplicao
/ = Diviso
pow = potencializao pow(a,5) = a5
M_PI = 3,14159........
sin = seno (em radianos)
cos = cosseno ( em radiano)
tan = Tangente (em radiano)
acos = arco cosseno
asin = arco seno
atan = arco tangente
O programa deve ser salvo na pasta projeto 2 conforme abaixo. (Os vrios arquivos mostrados abaixo, so
criados automaticamente pelo C++.
4
Ateno, o programa na hora de salvar os arquivo, gera nomes que no
devem ser modificados, veja abaixo a UNIT1 e PROJECT1
5
NO ALTERAR O NOME QUE O PROGRAMA D, NO CASO O PROJECT1
Veja o programa.
a=StrToFloat(Edit1->Text); " pega o texto que est no Edit 1, este texto uma string (varivel com letras ou
caractezres) , e transforma em Float e armazena na varivel a "
b=StrToFloat(Edit2->Text); " pega o texto que est no Edit 2, este texto uma string , e transforma em Float e
armazena na varivel b "
Edit3->Text=FormatFloat("0.00",c); " pega o valor de c , mostra o resultado com duas casas decimais , e
transforma num texto para ser exibido no Edit 3
-----------------------------------------------------Programa 2 ---------------------------------------------------
6
No programa sero utilizados clculos matemticos que no esto inclusos na biblioteca padro do programa,
ento se deve primeiro adicionar uma nova biblioteca de clculo ( math.h ), conforme abaixo:
Com o programa iniciado pressionar a tecla F12 para aparecer tela de programao mostrada a seguir.
Esta linha insere uma biblioteca matemtica que permite que se executem contas matemticas no programa.
7
Observao: a operao a pode ser escrita como sendo a 0,5. Para o programa ser utilizado o comando
pow da seguinte forma; a 0,5 = pow ( a , 0.5 ) , ou seja, pow de potncia, onde estamos dizendo que a
elevado a 0,5.
ATENO Deve-se escrever o programa dentro do Boto Calcular ( dar dois cliques no boto calcular
para entrar na folha de programao)
float a,b,c;
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
Edit3->Text=FormatFloat("0.00",c);
A linha gerada ficar como abaixo, e repare que nela est escrita BUTTON2CLICK que uma linha
correspondente ao boto CALCULAR.
//---------------------------------------------------------------------------
8
void __fastcall TForm1::Button2Click(TObject *Sender)
{
float d,e,f;
d=StrToFloat(Edit4->Text);
e=StrToFloat(Edit5->Text);
Edit6->Text=FormatFloat("0.00",f);
//---------------------------------------------------------------------------
Pode-se tambm incluir um boto para fechar o programa , para fazer isso se deve incluir a linha de comando
Close ( );
Abaixo do boto correspondente ao comando de fechar veja como fica a programao. D dois cliques sobre ele
para acessar as linhas de programao dentro do boto.
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Close ();
}
//---------------------------------------------------------------------------
-----------------------------------------------------Programa 3 ---------------------------------------------------
a 2 = b2 + c 2 Pitgoras
9
Dentro do boto CALCULAR a o programa ficar da seguinte forma:
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
10
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
11
USANDO O COMADO IF
O comando IF um comando de desvio, que permite fazer opes de deciso na programao:
IF = SE ELSE = SENO
Aps o IF deve-se colocar o que se deseja entre chaves. Se for s uma linha, estas chaves poderiam ser
dispensadas, porm se for colocado, no estar errado.
------------------------------------------------------------------------------------
if (a<5 ))
{
Edit5->Text=(" Reprovado");
}
else
if (a=5)
{
Edit5->Text=(" Recuperao");
}
else
if (a>5)
{
Edit5->Text=(" Aprovado");
}
------------------------------------------------------------------------------------
Este exemplo de cima, em portugus ficaria da seguinte forma:
E igual a &&
OU igual a ||
= igual a ==
igual a !=
------------------------------------------------------------------------------------
12
else
if((media >=6) && (media <=10))
{
Edit5->Text=(" Aprovado");
}
------------------------------------------------------------------------------------
Este exemplo de cima, em portugus ficaria da seguinte forma:
SE a MEDIA for MAIOR OU IGUAL A 0 e a MEDIA for MENOR OU IGUAL A que 5, ento escreva
REPROVADO
SE a MEDIA for MAIOR OU IGUAL A 5 e a MEDIA for MENOR OU IGUAL A que 6, ento escreva
RECUPERAO
SE a MEDIA for MAIOR OU IGUAL A 6 e a MEDIA for MENOR OU IGUAL A que 10, ento escreva
APROVADO
-----------------------------------------------------Programa 4 ---------------------------------------------------
Exemplo usando o IF: Fazer um programa para definir se o aluno est reprovado, em recuperao ou aprovado,
usando para isso a mdia de 3 notas de provas.
//---------------------------------------------------------------------------
13
float nota1,nota2,nota3,media;
nota1=StrToFloat(Edit1->Text);
nota2=StrToFloat(Edit2->Text);
nota3=StrToFloat(Edit3->Text);
14
USANDO O COMADO CASE (switch)
O Comando SWITCH, tambm conhecido por CASE, semelhante ao IF, porm com menos opes, j que a
sua comparao sempre com nmeros.
Por exemplo;
Switch(numero)
{
case 1:
acontece algum evento;
break;
case 2:
acontece algum outro evento;
break;
case 3:
acontece mais algum evento;
break;
case 4:
acontece outro evento, e assim por diante;
break;
}
Em outras palavras, se o numero for 1, acontece alguma coisa, se for 2, acontecer outra, e se for 3 outra pode
acontecer e assim por diante. Sempre comparando com nmeros.
O CASE ser o ponto onde o computador vai parar para ver qual a opo numrica escolhida.
-----------------------------------------------------Programa 5 ---------------------------------------------------
Veja um exemplo abaixo completo. O programa que segue, mostra o que um guarda rodovirio teria que falar ao
motorista em funo da velocidade que este estivesse transitando, caso parasse um veculo.
15
//---------------------------------------------------------------------------
velocidade=StrToFloat(Edit1->Text);
limite = 80;
switch(velocidade)
{
case 70:
Edit3->Text=("Velocidade OK");
Edit4->Text=(" ");
Edit5->Text=(" ");
break;
case 75:
Edit3->Text=("Velocidade OK");
Edit4->Text=(" ");
Edit5->Text=(" ");
break;
case 80:
Edit3->Text=("Velocidade OK");
Edit4->Text=(" ");
Edit5->Text=(" ");
break;
case 85:
Edit3->Text=("Velocidade no limite");
Edit4->Text=(" ");
Edit5->Text= " Lembrar que a velocidade mxima permitita de " +FormatFloat( "0",limite)+ " km/h";
break;
case 90:
Edit3->Text=("Velocidade acima do limite -> multar R$ 500");
Edit4->Text=("Alertar quanto aos cuidados com o limite de velocidade");
Edit5->Text= " Lembrar que a velocidade mxima permitita de " +FormatFloat( "0",limite)+ " km/h";
break;
case 95:
Edit3->Text=("Velocidade acima do limite -> multar R$ 500");
16
Edit4->Text=("Alertar quanto aos cuidados com o limite de velocidade");
Edit5->Text= " Lembrar que a velocidade mxima permitita de " +FormatFloat( "0",limite)+ " km/h";
break;
case 100:
Edit3->Text=("Velocidade acima do limite -> multar R$ 1000");
Edit4->Text=("Apreender carta de habilitao por 1 ano");
Edit5->Text= " Lembrar que a velocidade mxima permitita de " +FormatFloat( "0",limite)+ " km/h";
break;
case 105:
Edit3->Text=("Velocidade acima do limite -> multar R$ 1000");
Edit4->Text=("Apreender carta de habilitao por 1 ano");
Edit5->Text= " Lembrar que a velocidade mxima permitita de " +FormatFloat( "0",limite)+ " km/h";
break;
case 110:
Edit3->Text=("Velocidade acima do limite -> multar R$ 1000");
Edit4->Text=("Apreender carta de habilitao por 1 ano");
Edit5->Text= " Lembrar que a velocidade mxima permitita de " +FormatFloat( "0",limite)+ " km/h";
break;
case 120:
Edit3->Text=("Velocidade acima do limite -> multar R$ 1000");
Edit4->Text=("Apreender carta de habilitao por 1 ano");
Edit5->Text= " Lembrar que a velocidade mxima permitita de " +FormatFloat( "0",limite)+ " km/h";
break;
}
17
------------------------------------------- Outro exemplo de programa ----------------------------------------
-----------------------------------------------------Programa 6 ---------------------------------------------------
Para fazer este programa, ser usado um comando novo, o RadioGroup que permitira a escolha da frmula que
se deseja calcular.
Ser usado tambm o comando Bevel na tarja Additional que serve para evidenciar algum detalhe do programa.
Para este programa, as seguintes frmulas devero ser possvel de ser calculadas.
V=RxI
R=V/I
I=V/R
P=VxI
P = R x I2
R = P / I2
I=P/V
I = RAIZ ( P / R )
18
A primeira parte que deve ser feita a colocao da tabela de opo de frmulas disponvel para clculo. Para
isso ser necessrio usar o comando RadioGroup, cuja figura segue;
Para pode fazer esta tabela, deve-se clicar no boto RadioGroup que se encontra na tarja Standard, e cuja
figura segue:
Deve-se clicar no boto RadioGroup e depois clicar na Form ou tela de trabalho, e nesta tela, aparecer a
seguinte imagem:
Indo na janela Object Inspector deve-se clicar na opo Caption e l escrever LEI DE OHM e a nova imagem
do RadioGroup ficar desta forma
Feito isso deve-se criar as opo para a escolha das frmulas. Para isso, deve-se ir ao Object Inspector (os 8
pontinhos pretos que rodeiam a imagem do RadioGroup devem estar aparecendo, isso significar que o Object
Inspector estar se referenciando a ele) e ai aproveite para clicar na coluna da frente do Items que ficar da
seguinte forma;
19
Ao se clicar na linha Items ir aparecer o (TSting) com um boto com 3 pontinhos. Ao se clicar neste boto
com 3 pontinhos, aparecer uma nova tela como a que segue mais a frente. Nesta nova tela, devero ser
digitadas as frmulas da maneira que se deseja que estas apaream no programa.
IMPORTANTE: Estas frmulas s serviro para aparecer na tela e no serviro para fazer os clculos. Para
calcular, as frmulas devero estar dentro do Boto Calcular.
Digitando as frmulas, as mesmas ficaro como a figura que segue: Repare que o cursor est na linha de baixo
das frmulas, ou seja, d um ENTER ao encerrar a frmula. Depois disso s clicar em OK e na Form do
programa aparecer as frmulas j dentro do nosso RadioGroup.
20
Veja a figura que segue.
Falta apenas um detalhe, que mostrar o pontinho preto, que no caso aparece na ltima opo. Para conseguir
fazer com que ele aparea nesta posio ou em outra qualquer, deve-se ir na janela Object Inspector e clicar em
ItemIndex e ao lado colocar um nmero.
Vale neste caso a seguinte informao;
Com isso, basta agora digitar o programa, e para isso basta dar um duplo clique no boto CALCULAR
(BUTTON1) e digitar esta dentro das chaves;
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
21
Edit3->Text=FormatFloat("0.000",c);
break;
case 6:
c=a/(b*1.000);
Edit3->Text=FormatFloat("0.000",c);
break;
case 7:
c=pow((a/(b*1.000)),0.5);
Edit3->Text=FormatFloat("0.000",c);
break;
}
}
No Boto FECHAR (BUTTON2) da mesma forma, basta dar um duplo clique e digitar o que esta dentro das
chaves;
Finalmente a ltima no ltimo Boto Verificar a resposta correta (BUTTON3), dar um duplo clique e digitar
o que esta dentro das chaves;
dado=StrToFloat(Edit4->Text);
if (dado==1)
Edit5->Text=("E R R A D O deixe de preguia e estude mais");
if (dado==2)
Edit5->Text=("E R R A D O pense mais");
if (dado==3)
Edit5->Text=("E R R A D O preste mais ateno");
if (dado==4)
Edit5->Text=("E R R A D O estude mais");
if (dado==5)
Edit5->Text=("E S T A C E R T O mas existe outra resposta certa");
if (dado==6)
Edit5->Text=("E S T A C E R T O mas existe outra resposta certa");
if (dado==7)
Edit5->Text=("P A R A B E N S A C E R T O U");
}
O Comando BEVEL serve para evidenciar ou separar uma regio, veja a imagem que segue onde as opes
parece que esto rebaixadas.
22
Este comando BEVEL nada mais que um retngulo que se ajusta no lugar que se deseja ressaltar. Ele pode ser
encontrado na pasta ADDITIONAL e depois no Boto BEVEL. Depois de clicar no boto s clicar na tela e
abrir o retngulo na posio que se deseja.
Este mesmo programa pode ser modificado, tirando o Primeiro Valor, o Segundo Valor e no lugar colocar
por exemplo V em Volt, ou Corrente em Amperes. Veja o exemplo abaixo;
No entanto para fazer isso e dar certo para qualquer escolha do Radio Group necessrio colocar vrios
Label um em cima do outro, e s deixar aparecer aquele que interessa no momento. Na imagem abaixo, foram
criados vrios Label porm estes foram colocados um ao lado do outro de forma a poder mostrar todos o
Label criados.
Veja a criao dos vrios Label.
23
Veja as linhas que seguem;
case 5:
Label16->Visible = true; //Potncia em Watts
Label2->Visible = true; //Corrente em Amperes
Label14->Visible = true; //Resposta em Ohm
O Label16 -> Visible = true Significa que o Label 16 estar visvel na tela.
O Label17-> Visible = false Significa que o Label 17 estar invisvel na tela, e assim por diante.
24
//----------------------------------------------------------------------------------------------------------------------------------
#include <vcl.h>
#include<math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ // Esta parte que segue abaixo vai aparecer em primeiro na tela
Label1->Visible = true; // V em Volts
Label2->Visible = true; //Corrente em Amperes
Label3->Visible = true; //Resposta em Watts
float Fator,a,b,c,i;
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
switch(RadioGroup1->ItemIndex)
{
case 0:
// Esta parte durante os clculos (ao apertar o boto Calcular) aparece na tela
c=a*b;
Edit3->Text=FormatFloat("0.000",c);
break;
25
case 1:
Label2->Visible = true; //Corrente em Amperes
Label1->Visible = true; //V em Volts
Label14->Visible = true; //Resposta em Ohm
case 2:
Label1->Visible = true; // Label2->Visible = true;
Label18->Visible = true; //Resistncia em Ohm
Label15->Visible = true; //Resposta em Amperes
case 3:
Label1->Visible = true; // V em Volts
Label2->Visible = true; //Corrente em Amperes
Label3->Visible = true; //Resposta em Watts
case 4:
Label12->Visible = true; //Resistncia em Ohm
Label2->Visible = true; //Corrente em Amperes
Label3->Visible = true; //Resposta em Watts
26
Label1->Visible = false; //V em Volts
Label17->Visible = false; //V em Volts
Label18->Visible = false; //Resistncia em Ohm
Label13->Visible = false; //Resposta em Volts
c=a*b*b;
Edit3->Text=FormatFloat("0.000",c);
break;
case 5:
Label16->Visible = true; //Potncia em Watts
Label2->Visible = true; //Corrente em Amperes
Label14->Visible = true; //Resposta em Ohm
case 6:
Label16->Visible = true; //Potncia em Watts
Label17->Visible = true; //V em Volts
Label15->Visible = true; //Resposta em Amperes
case 7:
Label16->Visible = true; //Potncia em Watts
Label18->Visible = true; //Resistncia em Ohm
Label15->Visible = true; //Resposta em Amperes
Label12->Visible = false; //Resistncia em Ohm
Label1->Visible = false; //V em Volts
Label13->Visible = false; //Resposta em Volts
Label2->Visible = false; //Corrente em Amperes
Label14->Visible = false; //Resposta em Ohm
Label3->Visible = false; //Resposta em Watts
Label17->Visible = false; //V em Volts
c=pow((a/(b*1.000)),0.5);
Edit3->Text=FormatFloat("0.000",c);
break;
}
27
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
dado=StrToFloat(Edit4->Text);
if (dado==1)
Edit5->Text=("E R R A D O deixe de preguia e estude mais");
if (dado==2)
Edit5->Text=("E R R A D O pense mais");
if (dado==3)
Edit5->Text=("E R R A D O preste mais ateno");
if (dado==4)
Edit5->Text=("E R R A D O estude mais");
if (dado==5)
Edit5->Text=("E S T A C E R T O mas existe outra resposta certa");
if (dado==6)
Edit5->Text=("E S T A C E R T O mas existe outra resposta certa");
if (dado==7)
Edit5->Text=("P A R A B E N S A C E R T O U");
}
//---------------------------------------------------------------------------
switch(RadioGroup1->ItemIndex)
{
case 0:
// Esta parte aparece na tela ao mudar a seleo no boto do Radio Group.
case 1:
Label2->Visible = true; //Corrente em Amperes
Label1->Visible = true; //V em Volts
Label14->Visible = true; //Resposta em Ohm
28
Label16->Visible = false; //Potncia em Watts
Label15->Visible = false; //Resposta em Amperes
Label3->Visible = false; //Resposta em Watts
Label13->Visible = false; //Resposta em Volts
Label12->Visible = false; //Resistncia em Ohm
Label18->Visible = false; //Resistncia em Ohm
Label17->Visible = false; //V em Volts
break;
case 2:
Label1->Visible = true; // Label2->Visible = true;
Label18->Visible = true; //Resistncia em Ohm
Label15->Visible = true; //Resposta em Amperes
case 3:
Label1->Visible = true; // V em Volts
Label2->Visible = true; //Corrente em Amperes
Label3->Visible = true; //Resposta em Watts
case 4:
Label12->Visible = true; //Resistncia em Ohm
Label2->Visible = true; //Corrente em Amperes
Label3->Visible = true; //Resposta em Watts
case 5:
Label16->Visible = true; //Potncia em Watts
Label2->Visible = true; //Corrente em Amperes
Label14->Visible = true; //Resposta em Ohm
29
Label17->Visible = false; //V em Volts
Label1->Visible = false; //V em Volts
Label15->Visible = false; //Resposta em Amperes
Label13->Visible = false; //Resposta em Volts
Label18->Visible = false; //Resistncia em Ohm
Label3->Visible = false; //Resposta em Watts
Label12->Visible = false; //Resistncia em Ohm
break;
case 6:
Label16->Visible = true; //Potncia em Watts
Label17->Visible = true; //V em Volts
Label15->Visible = true; //Resposta em Amperes
case 7:
Label16->Visible = true; //Potncia em Watts
Label18->Visible = true; //Resistncia em Ohm
Label15->Visible = true; //Resposta em Amperes
Antes de mostrar o comando FOR TO DO, conveniente conhecer e aprender uma outra opo para poder
mostrar na tela o funcionamento deste comando, e o ListBox. Ele encontrado no menu superior e possui o
smbolo que segue:
Este comando facilita muito para mostrar vrios valores em forma de tabela.
Na tabela que segue, esto abertos dois ListBox, o ListBox1 e o ListBox2, estes so mostrados abaixo onde
mostrado tambm o boto FECHAR:
30
Para mostrar melhor o funcionamento do comando FOR TO DO, ser feito tambm uma apresentao com
diversos Edits.
O comando FOR TO DO um comando de repetio, ou seja, com ele possvel fazer uma determinada rotina
de programao ser repetida diversas vezes. Isso facilita muito na programao de diversos programas,
principalmente quando tiver que gerar tabelas ou diversos valores para fazer grficos.
Para poder melhor entender este comando o programa que segue ajudar.
Usando o comando, o ListBox, e usando os Comandos Edit, Label e Button pode-se fazer a tela de apresentao
que segue:
31
Alguns comandos vo aparecer abaixo e significam o seguinte:
for (e=0;e<=b;e++) ou for (e=0;e<=b;e=e+1) Linha de atuao do comando For que diz o seguinte; o e
inicial deve ser 0 (e=0), o e deve ser menor e igual a b (e<=b), e o valor de e deve sempre ser somado 1 (e++)
ou (e=e+1), ou seja, na primeira passagem o e igual a 0, na segunda, deve-se adicionar 1 ao valor 0, ou seja, o
e passa a valer agora 1 ( e=0+1), na prxima passagem o e ser novamente somado 1, ficando este valendo
ento 2 (e=1+1), e assim por diante. Se desejar fazer o loop pulando de 15 em 15 ficaria da seguinte forma =>
(e=e+15). Para pular de 20 em 20 ficaria => (e=e+20).
f= pow(a,e); Frmula que ser usada no programa, onde pow(a,e) significa ae, ou seja f = ae
-----------------------------------------------------Programa 7 ---------------------------------------------------
//---------------------------------------------------------------------------
32
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
ListBox1->Clear();
ListBox2->Clear();
for (e=0;e<=b;e++)
{
ListBox1->Items->Add(FloatToStr(e));
f= pow(a,e);
ListBox2->Items->Add(FloatToStr(f)+" xxx");
if (e==0)
Edit3->Text=FormatFloat("0.00",f);
if (e==1)
Edit4->Text=FormatFloat("0.00",f);
if (e==2)
Edit5->Text=FormatFloat("0.00",f);
if (e==3)
Edit6->Text=FormatFloat("0.00",f);
if (e==4)
Edit7->Text=FormatFloat("0.00",f);
if (e==5)
Edit8->Text=FormatFloat("0.00",f);
if (e==6)
Edit9->Text=FormatFloat("0.00",f);
if (e==7)
Edit10->Text=FormatFloat("0.00",f);
if (e==8)
Edit11->Text=FormatFloat("0.00",f);
if (e==9)
Edit12->Text=FormatFloat("0.00",f);
if (e==10)
Edit13->Text=FormatFloat("0.00",f);
}
}
//---------------------------------------------------------------------------
33
No programa acima, na coluna esquerda, formada com os Edits, os resultados foram feitas sem o for, e
usando os comandos IF. Neste caso para preencher estas 11 linhas, foram necessrio criao de 23 linhas de
programao. Caso fosse para fazer apenas a coluna da esquerda, o programa ficaria como o mostrado a seguir;
//---------------------------------------------------------------------------
for (e=0;e<=b;e++)
{
f= pow(a,e);
if (e==0)
Edit3->Text=FormatFloat("0.00",f);
if (e==1)
Edit4->Text=FormatFloat("0.00",f);
if (e==2)
Edit5->Text=FormatFloat("0.00",f);
if (e==3)
Edit6->Text=FormatFloat("0.00",f);
if (e==4)
Edit7->Text=FormatFloat("0.00",f);
if (e==5)
Edit8->Text=FormatFloat("0.00",f);
if (e==6)
Edit9->Text=FormatFloat("0.00",f);
if (e==7)
Edit10->Text=FormatFloat("0.00",f);
if (e==8)
Edit11->Text=FormatFloat("0.00",f);
34
if (e==9)
Edit12->Text=FormatFloat("0.00",f);
if (e==10)
Edit13->Text=FormatFloat("0.00",f);
}
}
//---------------------------------------------------------------------------
Na coluna do meio e na coluna a direita, os onze valores existentes em cada coluna, foram gerados por apenas 3
linhas. Se fossem fazer apenas as colunas do meio e da direita o programa ficaria como segue o exemplo:
Repare que o ListBox1 mostra s o valor do e, e no ListBox2 feito os clculos,
for (e=0;e<=b;e++)
{
ListBox1->Items->Add(FloatToStr(e));
f= pow(a,e);
ListBox2->Items->Add(FloatToStr(f)+" xxx");
}
}
//---------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
Exemplos de programas
-----------------------------------------------------Programa 8 ---------------------------------------------------
No esquecer da linha
#include<math.h> ( relambrando, serve para fazer os clculos matemticos)
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a,b,c,d,e,f,g,h;
a=StrToFloat(Edit1->Text);
d=floor(a); // floor Retorna o menor inteiro menor que a
e=a-d;
b=e*60;
f=floor(b); // floor Retorna o menor inteiro menor que d
g=b-f;
h=g*60;
Edit2->Text=FormatFloat("0",d)+ " graus " +FormatFloat("0",f)+ " minutos e "+FormatFloat("0.000",h)+ "
segundos";
35
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
Este o resultado que deve aparecer.
-----------------------------------------------------Programa 9 ---------------------------------------------------
Exemplo com comando FOR
36
e colocar na FORM.
D dois click sobre o quadro que se abre da IMAGE (sem nada dentro),
e ir aparecer uma tela com a tecla LOAD que dever ser clicado para aparecer a tela LoadPicture.
37
Clicando ali se pode carregar a imagem.
O PROGRAMA
Frmulas usadas
/---------------------------------------------------------------------------
tensao=StrToFloat(Edit1->Text);
carga=StrToFloat(Edit2->Text);
comprimento=StrToFloat(Edit3->Text);
largura=StrToFloat(Edit4->Text);
estacao=StrToFloat(Edit5->Text);
38
ListBox1->Clear();
ListBox1->Items->Add(" Estao | Momento | Altura | Carga Cisalhamento que
suporta");
for (e = 1 ; e <= estacao ; e++)
{
distancia = (comprimento / estacao) * e;
momento = carga * distancia;
altura = pow((momento/tensao)*6 / (largura*1.0000),0.333333333333);
cisalha = tensao * 0.75 * ( altura * largura);
Veja o final
-----------------------------------------------------Programa 10 ---------------------------------------------------
39
Programa sobre a Lei de WHEATSTONE
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float r1,r2,r3,r4,vcc,vo,e,rx;
r4=StrToFloat(Edit1->Text);
vcc=StrToFloat(Edit2->Text);
r1=StrToFloat(Edit3->Text);
r2=StrToFloat(Edit4->Text);
r3=StrToFloat(Edit5->Text);
ListBox1->Clear();
ListBox2->Clear();
Edit6->Clear();
Edit7->Clear();
40
for (e = (r4-100) ; e <= (r4+100) ; e=e+10)
{
vo=(((r1*r3)-(r2*e))/((r1+r2)*(r3+e)))*vcc;
ListBox1->Items->Add( FloatToStr(e));
ListBox2->Items->Add( FloatToStr(vo));
if (vo==0)
{
Edit6->Text=("Ponte em Equilbrio");
Edit7->Text=("0.0",e);
}
}
rx=(r1*r3)/(r2*1.000);
Edit8->Text=(" Ponte em Equilbrio s");
Edit9->Text= " acontecer com R4 = " +FormatFloat("0.000",rx);
}
//---------------------------------------------------------------------------
-----------------------------------------------------Programa 11 ---------------------------------------------------
41
Programa CDIGO DE CORES DE RESISTORES
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
42
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a,b,c,d;
String e;
switch(RadioGroup1->ItemIndex)
{
case 0:
a=0;
break;
case 1:
a=1;
break;
case 2:
a=2;
break;
ase 3:
a=3;
break;
case 4:
a=4;
break;
case 5:
a=5;
break;
case 6:
a=6;
break;
case 7:
a=7;
break;
case 8:
a=8;
break;
case 9:
a=9;
break;
}
switch(RadioGroup2->ItemIndex)
{
case 0:
b=0;
break;
case 1:
b=1;
break;
case 2:
b=2;
break;
43
case 3:
b=3;
break;
case 4:
b=4;
break;
case 5:
b=5;
break;
case 6:
b=6;
break;
case 7:
b=7;
break;
case 8:
b=8;
break;
case 9:
b=9;
break;
}
switch(RadioGroup4->ItemIndex)
{
case 0:
d=10;
break;
case 1:
d=5;
break;
}
switch(RadioGroup3->ItemIndex)
{
case 0:
c=0;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + " Ohm -- " + " Tolerncia de " +
FormatFloat("0",d)+"%";
break;
case 1:
c=1;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "0" + " Ohm -- " + " Tolerncia de " +
FormatFloat("0",d)+"%";
//e=0;
break;
case 2:
c=2;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "00" + " Ohm -- " + " Tolerncia de " +
FormatFloat("0",d)+"%";
//e=00;
break;
44
case 3:
c=3;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "000" + " Ohm -- " + " Tolerncia de " +
FormatFloat("0",d)+"%";
//e=000;
break;
case 4:
c=4;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "0000" + " Ohm -- " + " Tolerncia de " +
FormatFloat("0",d)+"%";
//e=0000;
break;
case 5:
c=5;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "00000" + " Ohm -- " + " Tolerncia de " +
FormatFloat("0",d)+"%";
//e=00000;
break;
case 6:
c=6;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "0000000" + " Ohm -- " + " Tolerncia de " +
FormatFloat("0",d)+"%";
//e=000000;
break;
case 7:
c=7;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "00000000" + " Ohm -- " + " Tolerncia de "
+ FormatFloat("0",d)+"%";
//e=0000000;
break;
case 8:
c=8;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "000000000" + " Ohm -- " + " Tolerncia de "
+ FormatFloat("0",d)+"%";
//e=00000000;
break;
case 9:
c=9;
Edit1->Text=FormatFloat("0",a) + FormatFloat("0",b) + "00000000000" + " Ohm -- " + " Tolerncia
de " + FormatFloat("0",d)+"%";
//e=000000000;
break;
}
}
//---------------------------------------------------------------------------
45
46