Buscar

Estrutura Condicional Composta e Aninhamento de Comandos

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estrutura Condicional Composta e 
Aninhamento de Comandos 
Cap. 3 do Livro Base 
Professor: Humberto Nigri 
hnigri@gmail.com 
Algoritmos 
1o Sem 2012 HNigri - ATP 2 
PRECEDÊNCIA DOS OPERADORES 
Unários - Menos unário 
 ++ Inc. pré-fixado -- Decr pré-fixado 
 ! Lógico NÃO 
Aritméticos * Multiplicação / Divisão 
 % Módulo 
 + Soma - Subtração 
Relacionais < <= Menor (ou igual) > >= Maior (ou igual) 
 == Igual != Diferente 
Lógicos && E lógico 
 || OU lógico 
1o Sem 2012 HNigri - ATP 3 
EXERCÍCIOS SOBRE OPERADORES 
!  Qual o valor das expressões? 
a) 1 > 2 
b) !( 1> 2) 
c) 3 == 2 
d) ! (-5) 
e) ‘j’ != ‘j’ 
f) ‘j’ != ‘j’ + 2 
g) 0 < X < 100 
1o Sem 2012 HNigri - ATP 4 
EXERCÍCIOS SOBRE OPERADORES 
!   Indique o valor de cada uma das expressões 
int i = 1, j = 2, k = 3, n = 2; float x = 3.3, y = 4.4; 
a) i < j + 3 
b) 2 * i - 7 <= j - 8 
c)-x + y >= 2.0 * y 
d) x == y 
e) x != y 
f) i + j + k == -2 * -k 
g) !( n-j) 
h) !n -j 
I) !x * !x 
j) i && j && k 
1o Sem 2012 HNigri - ATP 5 
Comandos Condicionais 
!  Os comandos condicionais compostos são os 
if’s que possuem else’s 
!  Permitem se tomar dois caminhos 
diferentes em um programa 
!  Porém, um programa real exige muitas 
decisões e normalmente têm uma centena ou 
mais de caminhos possíveis 
!  Isso se consegue com o aninhamento de 
comandos 
1o Sem 2012 HNigri - ATP 6 
Aninhamento de Comandos Condicionais 
!  É quando se coloca um comando if dentro de 
outro comando if ... (pode ??) 
Exemplo 
if (expressao1) 
 if (expressao2) 
 comando1; 
 else 
 comando2; 
else 
 if (expressao3) 
 comando3; 
 else 
 comando4; cmd1 
exp1 
exp2 exp3 
cmd2 cmd3 cmd4 
1o Sem 2012 HNigri - ATP 7 
Aninhamento Comandos Condicionais - Exemplo 
 int numero; 
 cout << “Entre com um numero: “; 
 cin >> numero; 
 if (numero < 0) cout << “número menor que zero”; 
 else if (numero < 10) cout << “ número ≥ 0 e < 10”; 
 else if (numero < 100) cout << “número ≥ 10 e < 100”; 
 else cout << “número ≥ 100”; 
!   Observação: seguindo os princípios da endentação o
 código acima deveria ficar assim ... 
1o Sem 2012 HNigri - ATP 8 
Exemplo de aninhamento – Qual ficou melhor ? 
 int numero; 
 cout << “Entre com um numero: “; 
 cin >> numero; 
 if (numero < 0) 
 cout << “número menor que zero”; 
 else 
 if (numero < 10) 
 cout << “ número ≥ 0 e < 10”; 
 else 
 if (numero < 100) 
 cout << “número ≥ 10 e < 100”; 
 else 
 cout << “número ≥ 100”; 
1o Sem 2012 HNigri - ATP 9 
Aninhamento - CUIDADO ! 
!   Como o compilador decide de qual if o else 
pertence? Pela endentação ?? 
 if (n > 0) 
 if (a > b) z = a; 
 else 
 z = b; 
Quando a atribuição z = b será executada ? 
1o Sem 2012 HNigri - ATP 10 
!  O else é sempre associado ao if mais
 interno (mais próximo) 
Note a diferença: 
 if (n > 0) { 
 if (a > b) z = a; 
 } 
 else z = b; 
Aninhamento - CUIDADO ! 
1o Sem 2012 HNigri - ATP 11 
Exemplo de uma aplicação com vários if’s 
!  A partir da nota final de um aluno deve-se
 calcular o seu conceito, segundo a tabela
 abaixo: 
!   Nota de 10 a 8 (inclusive) - Conceito ‘A’ 
!   Nota menor que 8 e até 7 - Conceito ‘B’ 
!   Nota menor que 7 e até 6 - Conceito ‘C’ 
!   Nota menor que 6 e até 5 - Conceito ‘D’ 
!   Nota menor que 5 e até 0 - Conceito ‘E’ 
1o Sem 2012 HNigri - ATP 12 
Exemplo de uma aplicação com vários if’s 
Portugol 
inicio 
 declare notaf numerico; 
 leia notaf; 
 se notaf >= 8 E notaf <= 10 então 
 escreva “Conceito A”; 
 se notaf >= 7 E notaf < 8 então 
 escreva “Conceito B”; 
 se notaf >= 6 E notaf < 7 então 
 escreva “Conceito C”; 
 se notaf >= 5 E notaf < 6 então 
 escreva “Conceito D”; 
 se notaf >= 0 E notaf < 5 então 
 escreva “Conceito E”; 
fim. 
C 
void main() 
{ 
 float notaf; 
 cin >> notaf; 
 if (notaf >= 8 && notaf <= 10) 
 cout << “Conceito A”; 
 if (notaf >= 7 && notaf < 8) 
 cout << “Conceito B”; 
 if (notaf >= 6 && notaf < 7) 
 cout << “Conceito C”; 
 if (notaf >= 5 && notaf < 6) 
 cout << “Conceito D”; 
 if (notaf >= 0 && notaf < 5 ) 
 cout << “Conceito E”; 
} Podemos melhorar esse código ??? 
1o Sem 2012 HNigri - ATP 13 
Primeira otimização: usar os else’s 
Portugol 
inicio 
 declare notaf numerico; 
 leia notaf; 
 se notaf >= 8 E notaf <= 10 então 
 escreva “Conceito A” 
 senão 
 se notaf >= 7 E notaf < 8 então 
 escreva “Conceito B” 
 senão 
 se notaf >= 6 E notaf < 7 então 
 escreva “Conceito C” 
 senão 
 se notaf >= 5 E notaf < 6 então 
 escreva “Conceito D” 
 senão 
 se notaf >= 0 E notaf < 5 então 
 escreva “Conceito E”; 
fim. 
 C 
 void main() 
 { 
 float notaf; 
 cin >> notaf; 
 if (notaf >= 8 && notaf <= 10) 
 cout << “Conceito A”; 
 else if (notaf >= 7 && notaf < 8) 
 cout << “Conceito B”; 
 else if (notaf >= 6 && notaf < 7) 
 cout << “Conceito C”; 
 else if (notaf >= 5 && notaf < 6) 
 cout << “Conceito D”; 
 else if (notaf >= 0 && notaf < 5 ) 
 cout << “Conceito E”; 
 } 
Podemos melhorar esse código ??? 
1o Sem 2012 HNigri - ATP 14 
Segunda otimização: reduzindo os testes 
Suponha que a notaf nunca é > 10 nem < 0 ... 
Portugol 
inicio 
 declare notaf numerico; 
 leia notaf; 
 se notaf >= 8 então 
 escreva “Conceito A” 
 senão 
 se notaf >= 7 então 
 escreva “Conceito B” 
 senão 
 se notaf >= 6 então 
 escreva “Conceito C” 
 senão 
 se notaf >= 5 então 
 escreva “Conceito D” 
 senão 
 escreva “Conceito E”; 
fim. 
 C 
 void main() 
 { 
 float notaf; 
 cin >> notaf; 
 if (notaf >= 8) 
 cout << “Conceito A”; 
 else if (notaf >= 7) 
 cout << “Conceito B”; 
 else if (notaf >= 6) 
 cout << “Conceito C”; 
 else if (notaf >= 5) 
 cout << “Conceito D”; 
 else cout << “Conceito E”; 
 } 
1o Sem 2012 HNigri - ATP 15 
Vamos ver fazer esse juntos ... 
1. Fazer um programa que deverá ler três notas de
 um aluno, calcula a média aritmética destas
 notas e imprimir a nota final seguida do
 resultado dado pela tabela abaixo 
!   De 0 a 3 (exclusive) – Reprovado 
!   De 3 a 7 (exclusive) - Exame especial 
!   De 7 a 10 (inclusive) - Aprovado 
1o Sem 2012 HNigri - ATP 16 
Exercícios 
1. Faça um programa que leia três valores inteiros e
 informe se estes podem formar um triangulo
 qualquer. OBS: em um triangulo vale a regra que
 um lado sempre deve ser menor que a soma dos
 outros dois lados, para todos os lados deste. 
2. Faça um programa que leia dois números inteiros e
 mostre qual número é o maior ou a mensagem “os
 números são iguais”. 
3. Faça um programa que receba três números
 inteiros indicando o dia, mês e ano de uma data e
 imprima a data com o nome do mês por extenso. 
 Exemplo: para os números: 10 3 2007 
 imprimir: 10 de março de 2007

Outros materiais