Buscar

AED_01_REVISAO_UNA_2_2012

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

AlgoritmoEstruturade
Dados
(RevisãoI...ALP/ATP)
Prof.AlexandreWagnerChagasFaria
TópicosdarevisãoI
�Operadores:Aritiméticos,Lógicos,Relacionais;
�Estuturas condicionais:SimpleseCompostas;
�Estruturasderepetição:Comnúmerodefinido,controle
noinício,controlenofim;
OperadoresAritméticos
� Operadoresaritméticosé oconjuntode símbolos
que representam as operações básicas da
matemática:
OperadoresAritméticos:Principais
� OperadoresAritméticos
� + :soma
� - :subtração
� * :multiplicação
� /:divisão
� %:restodadivisão
Voltar
Descriçãodosoperadores:
Prioridades:
OperadoresAritméticos
a)Amultiplicaçãoé dadaatravésdooperador*:
Exemplo:z=x*y;
b)Asomaé realizadaatravésdooperador+:
Exemplo:z=x+y;
c)Asubtraçãoé dadaatravésdooperador-;
Exemplo:z=x-y;
d)Adivisãoé dadaatravésdooperador/;
Exemplo:z=x/y;
OperadoresRelacionais
� OperadoresRelacionais,fazemcomparações.
Muitoutilizadosnosalgoritmos.
OperadoresRelacionais
� ==:igualdade
� <:menor
� >:maior
� >=:maiorouigual
� <=:menorouigual
� !=:diferente
�
OperadoresRelacionais
Descrição
!= 10!=11,X!=Y
OperadoresLógicos
OperadoresLógicos
� E:conjunção&&
� OU:disjunção ||
� NÃO:negação!
TabelaverdadeNÃOEOU
Sepositivoediferentede10
Semaiorque20emenorque30
Semaioramareloouazul
Seamareloeazul
Exemplo:
Suponhaquetemos03variáveis:A=5,B=8eC=1.
Osresultadosdasexpressõesseriam:
A!=B
Atividade(continuação)
� A(1))( V&& V)(1) && ( V|| F)(1)
� b(1))( F&& V)(0) || ( F|| V)(1)
� c(1))( V|| V)(1) || ( V&& F)(0)
� d(1))(( ! V)(0) && ( V|| F)(1) )(0) || ( ! F)(1)
Operadores– RESUMOOFICIAL
� Estesoperadorescombinamasoperaçõesaritméticascom
atribuição.
� Aoperaçãodaesquerdaé sempreonomedeuma
variáveledadireita,umaexpressãoqualquer.
� Aoperaçãoconsisteematribuirumnovovalorá variável
dedempederá dooperadordaexpressãoà direita
OperadoresAritméticosdeAtribuição
OperadoresAritméticosdeAtribuição
(=+) i+=2 equivaleai=i+2;
(-+) d-=3,equivalead=d-3;
(*=) x*=y+1,equivaleax=x*(y+1);
(/=) t/=2.5,equivaleat=t/2.5;
(%=) p%=5,equivaleap=p%5;
Exercício
(=+) i+=3x equivalea;
(-+) d-=4.7,equivalea ;
(*=) x*=u-11,equivalea;
(/=) t/=7,equivalea ;
(%=) p%=12,equivalea ;
EstruturasdeSeleçãoouDecisão
� Sãoestruturasquepermitemalterarofluxodeexecução,
de forma que é possível decidir qual parte deve ser
executada;
� Essa decisão de execução é tomada a partir de alguma
condição,que temcomoresultadoapenasverdadeiroou
falso.
� Umacondiçãoé representadaporexpressões relacionais
lógicas
� Estasestruturasdedecisãopodemaindaserclassificadas
emsimplescompostasouencadeadas.
Comandosdedecisão:
� Os programas utilizam instruções de seleção ou
decisão, para escolher entre cursos/caminhos
alternativosdeações.
Comandosdedecisão:
� Os comandos de decisão, também conhecidos como
desvio, são uma importante parte das técnicas de
programação.Geralmenteassociadasaestruturasquenão
sãoseqüenciais...
� Comessasinstruções,pode-sefazercomqueoprograma
proceda de uma ou outra maneira, de acordo co as
decisões lóticas tomadas, em funções de resultados
anteriores.
� As estruturas de decisão são: SEENTÃO, SE ENTÃO
SENÃO,CASOSELECIONE
� A instrução SE consiste em um comando SE
seguidodeumaexpressãodeteste.
� Se a expressão de teste for verdadeira, então a
instruçãoé executada,casocontrario,nadaefeito
SE
Expressãodeteste.
� Aexpressãodeteste,é umaexpressãológicaque,quando
inspecionada,gera-seumresultadofalsoouverdadeiro.
� Sea(expressãodeteste)forverdadeira,ocomandoapós
a cláusula ENTÃO será executada. No entanto se a
mesma for falsa, o comando não será executado, e
continuará para os próximos comandosda seqüência de
execução.
SintaxeemC++
if (expressãodeteste)
{
instrução;
instrução;
}
if (expressãodeteste)
instrução;
UmaInstrução: MaisdeumaInstrução:
ExemploemC++
1. #include<iostream.h>
2. int main ()
3. {
4. int numero;
5. cout<<"\nEntre comumnumero:";
6. cin>>numero;
7. if (numero>20)
8. cout<<"\nVoce digitouumnumeromaiorque20!"<<endl;
9. system("pause");
10. }
ExemploemC++
1. #include<iostream.h>
2. int main ()
3. {
4. int num1,num2,soma;
5. cout<<"\nEntre com02numeros:"<<endl;
6. cin>>num1>>num2;
7. soma=num1+num2;
8. if (soma>10)
9. cout<<"\nA somaemaiorque10!";
10. cout<<"\n\n";
11. system("pause");
12. }
ExemploemC++
1. #include<iostream.h>
2. int main()
3. {
4. int idade;
5. cout<<"\nEntre comsuaidade:";
6. cin>>idade;
7. if (idade>=18&&idade<=65)
8. cout<<"\nVoce eeleitorobrigatorio!";
9. cout<<"\n\n";
10. system("pause");
11. }
ExemploemC++:
#include<iostream.h>
using namespace std;
int main ()
{
int a,b,c;
cout<<"\nEntre com02valores:";
cout<<"\n";
cin>>a>>b;
c=a+b;
if (a>b||c>10)
cout<<"\nAemenorqueBouaSOMAemaiorque10!!!";
cout<<"\n\n";
system("pause");
}
Oqueesteprogramafaz?
Exercícios
� 01.Façaumalgoritmoemportugol eC++queleiaumnúmeroe
mostreelenatelacasosejapar.
� 02.Façaumalgoritmoemportugol eC++queleiaumnúmeroe
mostreelenatelacasosejaimpar.
� 03.Façaumalgoritmoemportugol eC++queleiaumnúmeroe
mostreelenatelacasosejamúltiplode5.
� 04. Faça um algoritmo em portugol e C++ que leia 04 notas:
Algoritmos, Calculo, Física e Geometria Analítica. Calcule a
média das notas. Caso a média for menor que 70, deverá ser
mostradoamensagem:Vocêsestá REPROVADO.
Exercício01
1. #include<iostream.h>
2. int main ()
3. {
4. int num,resto;
5. cout<<"\nEntre comumnumero;";
6. cin>>num;
7. resto=(num%2);
8. if (resto==0)
9. cout<<"\nOnumero"<<num<<"epar!";
10. cout<<"\n\n";
11. system("pause");
12. }
Exercício02
1. #include<iostream.h>
2. int main ()
3. {
4. int num,resto;
5. cout<<"\nEntre comumnumero:";
6. cin>>num;
7. resto=(num%2);
8. if (resto==1)//(resto!=0)
9. cout<<"\nOnumero"<<num<<"eimpar!";
10. cout<<"\n\n";
11. system("pause");
12. }
Exercício03
1. #include<iostream.h>
2. int main ()
3. {
4. int num,resto;
5. cout<<"\nEntre comumnumero:";
6. cin>>num;
7. resto=(num%5);
8. if (resto==0)
9. cout<<"\nOnumero"<<num<<"emultiplo de5!";
10. cout<<"\n\n";
11. system("pause");
12. }
Exercício05
1. #include<iostream.h>
2. int main ()
3. {
4. int alg,calc,fis,ga;
5. float media;
6. cout<<"\nEntre comanotadeAlgoritmo:";
7. cin>>alg;
8. cout<<"\nEntre comanotadeCalculo:";
9. cin>>calc;
10. cout<<"\nEntre comanotadeFisica:";
11. cin>>fis;
12. cout<<"\nEntre comanotadeGeometriaAnalitica:";
13. cin>>ga;
14. media=(alg+calc+fis+ga)/4;
15. cout<<"\nA mediae:"<<media;
16. if (media<70)
17. cout<<"\nVoce estaREPROVADO:";
18. cout<<"\n\n";
19. system("pause");
20. }
Seleçãodedecisãocomposta
� Quandoé necessáriotestarsituaçõesondesetem
maisdeumaalternativaparaamesmacondição.
� Um grupo de instruções são realizadas se a
condiçãoforverdadeiraeoutrogrupoé realizadas
casosejafalsa
� O comando se senão, é uma expansão de um simples
comandoSE.
� Ocomandosepermitequeexecutemosalgosomentesea
suaexpressãodetesteforverdadeira,casocontrárionadaé
executado.
� Tambémconhecidacomoestruturacondicionalcompostae
encadeada
SE...SENAO
� Suponhamos que você queira executar alguma
coisaseaexpressãodetesteforverdadeiraeoutra
coisaseaexpressãodetesteforfalsa.
� Nestecaso,deveusarocomandoSENAO.
SE...SENAO
Sintaxedocomandoif/else C++
01instrução
if (teste)
instruções;
else
instruções;
Váriasinstruções
if (teste)
{
instruções;
instruções;
}
else
{
instruções;
instruções;
}
Exemplodeumaseleçãocomposta
� Construa um algoritmo em PORTUGOL que
determine (imprima) se um dado número N
inteiro (recebido através do teclado) é PAR ou
ÍMPAR.
Algoritmo
ALGORITMO
DECLARE N,resultadoNUMERICO
ESCREVA “Entrecomumnúmero:”;
LEIAN);
resultado<-resto(N,2);
SE (resultado==0)ENTÃO
ESCREVA N,"é PAR";
SENÃO
ESCREVA N,"é ÍMPAR";
FIM_SE
FIM_ALGORITMO
ExemploemC++
1. #include<iostream.h>
2. int main ()
3. {
4. int N,resultado;
5. cout<<"\nFavor entrarcomumnumero:";
6. cin>>N;
7. resultado=(N%2);
8. if (resultado==0)
9. cout<<"\nO numero"<<N<<"ePAR!";
10. else
11. cout<<"\nO numero"<<N<<"eIMPAR!";
12. cout<<"\n\n";
13. system("pause");
14.}
Inédito exemploda
média!C++
1. #include<iostream.h>
2. int main()
3. {
4. float nota1,nota2,nota3,nota4,media;
5. cout<<"\nEntre comsuasnotasentre0-100!";
6. cout<<"\nEntre comanotadeCalculo:";
7. cin>>nota1;
8. cout<<"\nEntre comanotadeGeometria:";
9. cin>>nota2;
10. cout<<"\nEntre comanotadeATP:";
11. cin>>nota3;
Continuação...
12. cout<<"\nEntre comanotadeQuimica:";
13. cin>>nota4;
14. media=(nota1+nota2+nota3+nota4)/4;
15. cout<<"\nSua mediae:"<<media;
16. if (media>=70)
17. cout<<"\nVoce estaAPROVADO!";
18. else
19. cout<<"\nVoce estaREPROVADO!";
20. cout<<"\n\n";
21. system("pause");
22. }
Exercícios
1. Construa um algoritmo emC++que determine (imprima) se umdado númeroN
inteiro(recebidoatravésdoteclado)é PARouÍMPAR.
2. EscrevaumalgoritmoemC++queleiaumnúmeroe imprimaaraizquadradado
númerocasoelesejapositivoouigualazeroeoquadradodonúmerocasoeleseja
negativo.
3. Escreva um algoritmo em C++ que receba um número e imprima uma das
mensagens:“é múltiplode3” ou“nãoé múltiplode3”.
4. ConstruaumalgoritmoemC++queimprimaqualomenorequalomaiorvalorde
doisnúmerosAeB,lidosatravésdoteclado
5. Construa um algoritmo em C++ que indique se um número digitado está
compreendidoentre20e90ounão(20e90nãoestãonafaixade valores).
6. CriarumalgoritmoemC++queleiadoisnúmeroseimprimiroquadradodomenor
númeroeraizquadradadomaiornúmero,seforpossível.
ResoluçãoemC++
ConstruaumalgoritmoemC++quedetermine(imprima)seumdadonúmeroN
inteiro(recebidoatravésdoteclado)é PARouÍMPAR.
#include<iostream.h>
int main ()
{
int numero,resto;
cout<<"\nEntrecomumnumero:";
cin>>numero;
resto=(numero%2);
if (resto==0)
cout<<"\nO numero"<<numero<<"epar";
else
cout<<"\nO numero"<<numero<<"eimpar";
cout<<"\n";
system("pause");
}
EscrevaumalgoritmoemC++que leiaumnúmeroe imprimaa raizquadradadonúmero
casoelesejapositivoouigualazeroeoquadradodonúmerocasoelesejanegativo.
#include<iostream.h>
#include<math.h>
int main ()
{
float n,r,q;
cout<<"\nEntre comumnumero:";
cin>>n;
r=sqrt(n);
q=pow(n,2);
if (n>=0)
cout<<"\nAraize:"<<r;
else
cout<<"\nApotenciae:"<<q;
cout<<"\n\n";
system("pause");
}
Escreva um algoritmo em C++ que receba um número e imprima uma das
mensagens: “é múltiplo de 3” ou “não é múltiplo de 3”.
#include<iostream.h>
int main ()
{
int numero,resto;
cout<<"\nEntrecomumnumero:";
cin>>numero;
resto=(numero%3);
if (resto==0)
cout<<"\nO numero"<<numero<<"emultiplo de3!";
else
cout<<"\nO numero"<<numero<<"nao emultiplo de3!";
cout<<"\n";
system("pause");
}
ConstruaumalgoritmoemC++queimprimaqualomenorequalo
maiorvalordedoisnúmerosAeB,lidosatravésdoteclado.
#include<iostream.h>
int main ()
{
int num1,num2;
cout<<"\nEntrecomumnumero:";
cin>>num1;
cout<<"\nEntre comoutronumero:";
cin>>num2;
if (num1>num2)
cout<<"\nO primeironumeroemaiorqueosegundo";
else
cout<<"\nO segundonumeroemaiorqueoprimeiro";
cout<<"\n";
system("pause");
}
ConstruaumalgoritmoemC++queindiqueseumnúmerodigitado
está compreendidoentre20e90ounão(20e90nãoestãona
faixadevalores).
#include<iostream.h>
int main ()
{
int num;
cout<<"\nEntrecomumnumero:";
cin>>num;
if (num>20&&num<90)
cout<<"\nO numero"<<num<<"estaentre20e90!";
else
cout<<"\nO numero"<<num<<"nao estaentre20e90!";
cout<<"\n";
system("pause");
}
Criar um algoritmo em C++ que leia dois
números e imprimir o quadrado do
menornúmeroeraizquadradadomaior
número,seforpossível.
#include<iostream.h>
#include<math.h>
int main ()
{
int num1,num2;
float q,r;
cout<<"\nEntrecomumnumero:";
cin>>num1;
cout<<"\nEntre comoutronumero:";
cin>>num2;
if (num1<num2)
{
q=pow(num1,2);
r=sqrt(num2);
cout<<"\nOquadradodomenornumeroe:"<<q;
cout<<"\nAraizdomaiornumeroe:"<<r;
}
else
{
q=pow(num2,2);
r=sqrt(num1);
cout<<"\nOquadradodomenornumeroe:"<<q;
cout<<"\nAraizdomaiornumeroe:"<<r;
}
cout<<"\n";
system("pause");
}
SEaninhados
� Comandos SE aninhados, são comandos SE
dentrodeoutrocomandoSE.
SE(teste)ENTÃO
instruções;
SE(teste)ENTÃO
instruções;
SENÃO
instruções;
FIM_SE
SENÃO
instruções;
FIM_SE
if (teste){
instruções;
if (teste){
instruções;}
else {
instruções;}
}
else {
instruções;
}
Exemplo:umpoucomaiscomplexo!!
�Dados três valores A, B e C, construa um
algoritmoemPORTUGOL,queimprimaos
valoresdeformaascendente(domenorpara
omaior).
1. ALGORITMO;
2. DECLAREA,B,C;
3. ESCREVA“Digiteos3n° ”;
4. LEIAA,B,C;
5. SE(A<B)e(A<C)ENTÃO
6. ESCREVA"1º - ",A;
7. SE(B<C)ENTÃO
8. ESCREVA"2º - ",B;
9. ESCREVA"3º - ",C;
10. SENÃO
11. ESCREVA"2º - ",C;
12. ESCREVA"3º - ",B;
13. FIM_SE
14. FIM_SE
15. SE(B<A)E(B<C)ENTÃO
16. ESCREVA"1º - ",B;
17. SE(A<C)ENTÃO
18. ESCREVA"2º - ",A;
19. ESCREVA"3º - ",C;
20. SENÃO
21. ESCREVA"2º - ",C;
22. ESCREVA"3º - ",A;
23. FIM_SE
24. FIM_SE
25. SE(C<A)E(C<B)ENTÃO
26. ESCREVA"1º - ",C;
27. SE(A<B)ENTÃO
28. ESCREVA"2º - ",A;
29. ESCREVA"3º - ",B;
30. SENÃO
31. ESCREVA"2º - ",B;
32. ESCREVA"3º - ",A;
33. FIM_SE
34. FIM_SE
35. FIM_ALGORITMO
1. #include<iostream.h>
2. using namespace std;
3. int main ()
4. {
5. int a,b,c;
6. cout<<"\nEntre com3numeros:";
7. cout<<"\n";
8. cin>>a>>b>>c;
9. if (a<b&&a<c)
10. {
11. cout<<"\nO primeironumeroe:"<<a;
12. if (b<c)
13. {
14. cout<<"\nO segundonumeroe:"<<b;
15. cout<<"\nO terceironumeroe:"<<c;
16. }
17. else
18. {
19. cout<<"\nO segundonumeroe:"<<c;
20. cout<<"\nO terceironumeroe:"<<b;
21. }
22. }
23.
ExemploemC++
24. if (b<a&&b<c)
25. {
26. cout<<"\nO primeironumeroe:"<<b;
27. if (a<c)
28. {
29. cout<<"\nO segundonumeroe:"<<a;
30. cout<<"\nO terceironumeroe:"<<c;
31. }
32. else
33. {
34. cout<<"\nO segundonumeroe:"<<c;
35. cout<<"\nO terceironumeroe:"<<a;
36. }
37. }
38. if (c<a&&c<b)
39. {
40. cout<<"\nO primeironumeroe:"<<c;
41. if (b<a)
42. {
43. cout<<"\nO segundonumeroe:"<<b;
44. cout<<"\nO terceironumeroe:"<<a;
45. }
46. else
47. {
48. cout<<"\nO segundonumeroe:"<<a;
49. cout<<"\nO terceironumeroe:"<<b;
50. }
51. }
52. cout<<"\n";
53. system("pause");
54. }
Exercícios:
� Escreva um algoritmo em PORTUGOL para
determinar se um númeroA é divisível por um outro
número B. Esses valores devem ser fornecidos pelo
usuário(9):
� ConstruirumalgoritmoemC++queleiadoisnúmeros
eefetueaadição.Casoovalorsomadosejamaiorque
20,estedeverá serapresentadosomando-seaelemais
8;casoovalorsomadosejamenorou iguala20,este
deverá serapresentadosubtraindo-se5.
Seleçãoencadeada
� Quandosurgeanecessidade,devidoaquestõesde
processamento,agrupar-seváriasseleções,nestes
casossetemaSeleçãoencadeada.
� Normalmenteusa-seestaestruturaquandosetem
várias combinações de condições a serem
satisfeitasparaseexecutarumadeterminadaação
oublocodeações.
Sintaxeumaseleçãocompostaencadeada
SE(teste)ENTÃO
instruções;
SENÃO
SE(teste)ENTÃO
instruções;
SENÃO
SE(teste)ENTÃO
instruções;
SENÃO
instruções;
FIM_SE
FIM_SE
FIM_SE
Exemplode
múltiplas
opções
ALGORITMO
DECLAREnotaNUMERICO;
ESCREVA“Entrecomsuanota:”;
LEIAnota;
SE(nota>=90)ENTÃO
ESCREVA“SeuconceitoeA!”;
SENÃOSE(nota>=80)ENTÃO
ESCREVA“SeuconceitoeB!”;
SENÃOSE(nota>=70)ENTÃO
ESCREVA“SeuconceitoeC!”;
SENÃOSE(nota>=60)ENTÃO
ESCREVA“SeuconceitoeD!”;
SENÃO
ESCREVA“Asituacao estadificil!!!!”;
FIM_SE
FIM_ALGORITMO
Exemplode
múltiplas
opçõesC++
#include<iostream.h>
int main()
{
int nota;
cout<<"\nEntrecomsuanota:";
cin>>nota;
if (nota>=90)
cout<<"\nSeuconceitoe:A!";
else if (nota>=80)
cout<<"\nSeuconceitoe:B!";
else if (nota>=70)
cout<<"\nSeuconceitoe:C!";
else if (nota>=60)
cout<<"\nSeuconceitoe:D!";
else
cout<<"\nAsituacao estabemdificil!!";
cout<<"\n\n";
system("pause");
}
Exemplodeumaseleçãocomposta
encadeada
� EscrevaumalgoritmoemPORTUGOL/C++para
determinar se um dado número N (recebido
atravésdoteclado)é POSITIVO,NEGATIVOou
NULO.
Algoritmoemportugol
ALGORITMO
DECLARENNUMERICO;
ESCREVA“Entrecomumnumero:“;
LEIA(N);
SE(N>0)ENTÃO
ESCREVAN,"é POSITIVO";
SENÃO
SE(N<0)ENTÃO
ESCREVAN,"é NEGATIVO";
SENÃO
ESCREVAN,"é NULO";
FIM_SE
FIM_SE
FIM_ALGORITMO
AlgoritmoemC++
#include<iostream.h>
#include<math.h>
int main ()
{
int num1;
cout<<"\nEntre comumnumero:";
cin>>num1;
if (num1>0)
cout<<"\nOnumeroepositivo!";
else
if (num1<0)
cout<<"\nO numeroenegativo!";
else
cout<<"\nO numeroenulo!";
cout<<"\n";
system("pause");
}
Exemplodeumaseleçãocompostaencadeada:
� ConstruaumalgoritmodePORTUGOL/C++para
determinar se o indivíduo esta com um peso
favorável.Essasituaçãoé determinadaatravésdo
IMC(ÍndicedeMassaCorpórea),queé definida
como sendo a relação entre o peso (PESO) e o
quadradodaAltura(ALTURA)doindivíduo.Ou
seja
2ALTURA
PESOIMC =
Tabela:
e,asituaçãodopesoé determinadapelatabela
abaixo:
ExemploemC++
1. #include<iostream.h>
2. #include<math.h>
3. int main ()
4. {
5. float altura,peso,imc;
6. cout<<"\nEntre comseupeso:";
7. cin>>peso;
8. cout<<"\nEntre comsuaaltura:";
9. cin>>altura;
10. imc=peso/(pow(altura,2));
11. cout<<"\nSeu indice e:"<<imc;
12. cout<<"\n";
13. if (imc<20)
14. cout<<"\nAbaixo dopeso!";
15. else if (imc>=20&&imc<25)
16. cout<<"\nPeso normal!";
17. else if (imc>=25&&imc<30)
18. cout<<"\nSobre Peso!";
19. else if (imc>=30&&imc<40)
20. cout<<"\nObseso!!";
21. else
22. cout<<"\nObseo Morbido!!!!";
23. cout<<"\n\n";
24. system("pause");
25. }
Exemplodaformulaçãodasoluçãodeum
problema.(adaptadodeForbellone eEberspacher (2005))
� Dado três valoresX,Y,Z, verificar se eles podem
ser comprimentos dos lados de um triângulo. Se
forem, verificar se compõem um triângulo
eqüilátero, isósceles ou escaleno. Também
informarsenãocompuseremnenhumtriângulo.
EntradaseSaídas
� Dados de entrada: 3 lados de um “suposto”
triangulo(X,YeZ);
� Dados de saída: Mensagens: Não compõe um
triangulo, Triângulo eqüilátero, Triângulo
Isósceles,Triânguloescaleno
Oqueé umtriângulo?
� Definição formal:Figurageométrica fechadados
três lados, emquecadaumé menorquea soma
dosoutrosdois:
A<(B+C)
B<(A+C)
C<(A+B)
Tiposdetriângulos:
� Oqueé umtrianguloeqüilátero?
� Umtriângulocomos3ladosiguais.
� Oqueé umtriânguloisósceles?
� Umtriângulocomdoisladosiguais.
� Oqueé umtriânguloescaleno?
� Umtriângulocomtodososladosdiferentes
TabelaVerdade
Expressõeslógicas
� É triangulo:(X<Y+Z)e(Y<X+Z)e(Z<X+Y)
� É eqüilátero:(X=Y)e(Y=Z)
� É isósceles:(X=Y)ou(Y=Z)ou(X=Z)
� É escaleno:(X<>Y)e(Y<>Z)e(Z<>X)
C++
1. #include<iostream.h>
2. #include<math.h>
3. int main ()
4. {
5. int x,y,z;
6. cout<<"\nEntre comosvaloresdosladosdotriangulo:";
7. cout<<"\n";
8. cin>>x>>y>>z;
9. if ((x<y+z)&&(y<z+x)&&(z<x+y))
10. {
11. cout<<"\nEste eumtriangulo!";
12. if ((x==y)&&(y==z))
13. cout<<"\nEste eumtrianguloEquilatero!";
14. else {
15. if((x==y)||(y==z)||(x==z))
16. cout<<"\nEste eumtrianguloIsosceles!";
17. else
18. cout<<"\nEste eumtrianguloEscaleno!";}
19. }
20. else
21. cout<<"\nEste nãoeumtriangulo!!!";
22. cout<<"\n\n";
23. system("pause");
24. }
ExemploemC++
� Faça um programa em C++, que ao entrar com
umnúmero,correspondenteaosmeses,apresente
natelaqualomêscorrespondente.
Obs:Paraefeitosdidáticosserá efetuadosomenteaté omês4.
Exemploem
C++
#include<iostream.h>
int main()
{
int mes;
cout<<"\nEntre comonumerodomes:";
cin>>mes;
if (mes==1)
cout<<"\nJaneiro";
else if (mes==2)
cout<<"\nFevereiro";
else if (mes==3)
cout<<"\nMarco:";
else if (mes==4)
cout<<"\nAbril";
else
cout<<"\nMes desconhecido";
cout<<"\n\n";
system("pause");
}
ExemploemC++
� CrieumprogramaemC++que leia a idadede
umapessoaeinformeasuaclasseeleitoral:
� nãoeleitor(abaixode16anos);
� eleitorobrigatório(entreafaixade18emenorde65
anos);
� eleitor facultativo(de16até 18anosemaiorde65
anos,inclusive).
ProgramaemC++
#include<iostream.h>
using namespace std;
int main ()
{
int idade;
cout<<"Porfavor,entrecomsuaidade:";
cin >>idade;
if (idade<16)
cout<<"\nVoce nao eeleitor!";
else
if (idade<18||idade>=65)
cout<<"\nVoce eeleitorfacultativo.";
else
cout<<"\nVoce eeleitorobrigatorio!!";
cout<<"\n";
system("pause");
}
Exercícios:
I. ConstruirumalgoritmoemC++paracalcularasraízesdeuma
equaçãodo2º grau, sendoqueosvaloresdoscoeficientesA,
B,eCdevemserfornecidospelousuárioatravésdoteclado.
II. CriarumalgoritmoemC++querecebaovalordex,ecalcule
eimprimaovalordef(x).







>
≤<
≤<
≤
=
3xse,
32se,
21se,*2
1se,5
)(
3
2
x
xx
xx
x
xf
1. #include<iostream.h>
2. #include<math.h>
3. int main ()
4. {
5. float a,b,c;
6. float delta,x1,x2;
7. cout<<"\nEntre comoscoeficientesdaeq!";
8. cout<<"\n";
9. cin>>a>>b>>c;
10. delta=((b*b)-(4*a*c));
11. cout<<"\nO valordedeltae:"<<delta;
12. if (delta>0)
13. {
14. cout<<"\nA eq possui2raizes diferentes!";
15. x1=(-b+sqrt(delta))/(2*a);
16. x2=(-b-sqrt(delta))/(2*a);
17. cout<<"\nA primeiraraize:"<<x1;
18. cout<<"\nA segundaraize:"<<x2;
19. }
20. else if (delta==0)
21. {
22. cout<<"\nA eq.possui2raizes diferentes!";
23. x1=(-b/(2*a));
24. x2=x1;
25. cout<<"\nA primeiraraize:"<<x1;
26. cout<<"\nA segundaraize:"<<x2;
27. }
28. else
29. cout<<"\nA eq.nao possuiraizes!";
30. cout<<"\n\n";
31. system("pause");
32. }
1;-4;-5
1;-2;6
4;20;25
EXERCICIOI
Equaçãodo2°Grau!
EXERCICIO.II
Criarumalgoritmoemc++
que receba o valor de x, e
calcule e imprima o valor
def(x).







>
≤<
≤<
≤
=
3xse,
32se,
21se,*2
1se,5
)(
3
2
x
xx
xx
x
xf
1. #include<iostream.h>
2. #include<math.h>
3. int main ()
4. {
5. int x,fx;
6. cout<<"\nEntre comovalordeX:";
7. cin>>x;
8. if (x<=1)
9. {
10. fx=5;
11. cout<<"\nO valordefx e:"<<fx;
12. }
13. else if (x<=2)
14. {
15. fx=2*x;
16. cout<<"\nO valordefx e:"<<fx;
17. }
18. else if (x<=3)
19. {
20. fx=x*x;
21. cout<<"\nO valordefx e:"<<fx;
22. }
23. else
24. {
25. fx=pow(x,3);
26. cout<<"\nO valordefx e:"<<fx;
27. }
28. cout<<"\n";
29. system("pause");
30. }
Exercícios:
� ConstruirumalgoritmoemC++queleiaumnúmeroeimprimase
eleé iguala5,a200,a400,seestá nointervaloentre500e1000,
inclusive,ouseelaestá foradosescoposanteriores(19):
� Depoisdaliberaçãodogovernoparaasmensalidadesdosplanosde
saúde,aspessoascomeçaramafazerpesquisasparadescobrirum
bomplano, nãomuito caro.Umvendedor de umplano de saúde
apresentouatabelaaseguir.CriarumalgoritmoemC++queentre
comaidadedeumapessoaeimprimaovalorqueeladeverá pagar,
segundoaseguintetabela(26):
CASO/SELECIONA
� O comando SELECIONA, permite selecionar
entreváriasaçõesalternativas.
� Embora as construções SE-SENÃO (if-else)
possam executar testes para a escolha de uma
entre várias alternativas, muitas vezes são
deselegantes.
� OcomandoSELECIONAtemumformatolimpo
eclaro.
� O corpo de cada caso é composto por qualquer
númerodeinstruções.
� Geralmenteaúltimainstruçãoé obreak emC++.
� Ocomandobreak causaasaídaimediatade todo
corpoSELECIONA.
� Na falta do comando break, todas as instruções
após o caso escolhido serão executadas, mesmo
quepertencemaoscasosseguintes:
CASO/SELECIONA
SintaxedocomandoCASO/SELECIONA
seleciona (variável){
caso(valor1):
instrução;
caso(valor2):
instrução;
caso(valor3):
instrução;
casocontrario:
instrução;
}
varmes;
inicio
escreva“Entrecomonumerodomes:”;
leiames;
seleciona(mes)
{
caso1:
escreva“Janeiro”;
caso2:
escreva“Fevereiro”;
caso3:
escreva“Março”;
caso4:
escreva“Abril”;
casocontrario:
escreva“Valornãoencontrado”;
}
fim
Exemplo:
switch (variávelouconstante)
{
case(constante1):
instrução;
instrução;
break;
case(constante2):
instrução;
instrução;
break;
case(constante3):
instrução;
instrução;
break;
default:
instrução;
}
SintaxedocomandoCASO/SELECIONAC++
com;
com:
com;
com:
com;
com:
com:
com;
ExemploemC++
� Faça um programa em C++, que ao entrar com
umnúmero,correspondenteaosmeses,apresente
natelaqualomêscorrespondente.
Obs:Paraefeitosdidáticosserá efetuadosomenteaté omês4.
Exemploem
C++
#include<iostream.h>
int main()
{
int mes;
cout<<"\nEntre comonumerodomes:";
cin>>mes;
switch(mes)
{
case1:
cout<<"\nJaneiro";break;
case2:
cout<<"\nFevereiro";break;
case3:
cout<<"\nMarco";break;
case4:
cout<<"\nAbril";break;
default:
cout<<"\nMes desconhecido:";
}
cout<<"\n\n";
system("pause");
}
Exercício01
� Façaumalgoritmoemportugol,eseurespectivo
programa em C++, que ao digitar um numero,
entre 1 e 7, ele forneça o dia da semana
correspondente.Casoousuárioinsiraumnúmero
fora desta faixa o algoritmo/programa deverá
informaraousuárioquenãoexistediadasemana
correspondente.
Até apróximaaula
AlexandreWagner
alexandre.faria@prof.una.br

Outros materiais