Buscar

Estrutura de Desvio e Operadores Lógicos em C

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 4 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

Algoritmos e Programação I 
Aula 4 – Notas de aula 
Estrutura de desvio. Operadores Lógicos. Linguagem de Programação C. 
- - Estrutura de Desvio 
 A estrutura de desvio permite desviar a execução de instruções conforme o valor de 
um dado. 
 Exemplos: Algoritmo para entrar na sala de aula; Exercício 12 da Lista 1. 
 A estrutura de desvio permite que seja testada uma condição. Se a condição for 
verdadeira, um determinado conjunto de instruções é executado. Se a condição for 
falsa, outro conjunto de instruções é executado (ou o programa segue normalmente!). 
 Desvio condicional simples, na linguagem C, tem o seguinte formato: 
o sem opção para o caso da condição ser falsa: 
if condição{ 
 //conjunto de instruções 
} 
o com opção para o caso da condição ser falsa: 
 if condição{ 
 //conjunto de instruções 
 } else { 
 //conjunto de instruções 
 } 
 O que é a condição? 
o É o resultado de uma operação com operadores relacionais e lógicos! 
o Esta operação resulta em VERDADEIRO ou FALSO. 
o Em C, como não existe o tipo booleano, se o resultado for 0, é considerado 
FALSO. Se for um número diferente de zero é considerado VERDADEIRO. 
 Operadores relacionais 
o São operadores que geram resultados lógicos 
(verdadeiro ou falso) pela comparação entre 
valores e/ou expressões. Os operadores 
relacionais tem a mesma prioridade. 
o Exemplos: 
 Comparação entre valores: 
10 > 2 
 Comparação entre variáveis: 
x <= y 
 Comparação entre expressões: 
x < (3 + 5 – y) 
(x + t – 1) != (x – 1 * z) 
o Exemplo de operador relacional nas condições das estruturas de desvio. 
if (x > 10) 
 x += 5; 
else x -= 5; 
- Estrutura de Desvio (Encadeamento de desvios condicionais, Desvio 
condicional composto ou “if” aninhado) 
if condição{ 
 //conjunto de instruções 
} else { 
 //conjunto de instruções 
} 
 O que é a condição? 
o É o resultado de uma operação com operadores relacionais e lógicos! 
o Esta operação resulta em VERDADEIRO ou FALSO. 
o Em C, como não existe o tipo booleano, se o resultado for 0, é considerado 
FALSO. Se for um número diferente de zero é considerado VERDADEIRO. 
 
 Encadeamento de desvios condicionais, Desvio condicional composto ou “if” 
aninhado: 
o É possível encadear desvios condicionais fazendo com que após um teste em 
que a condição testada for verdadeira, outro teste seja realizado. Este 
encadeamento gera estruturas como: 
if condição1 { 
 if condição2 { 
 bloco de instruções 1 
 }else { 
 bloco de instruções 2 
 } 
 bloco de instruções 3 
}else{ 
 bloco de instruções 4 
} 
 
 A execução deste algoritmo ocorre da seguinte forma: 
o se a condição1 for verdadeira, a condição2 determina qual dentre os blocos 1 e 
2 será executado, e o bloco 3 é executado independentemente da condição 2; 
o se a condição 1 for falsa, apenas o bloco 4 será executado. 
 É possível também encadear desvios condicionais fazendo com que após um teste em 
que a condição testada era falsa, outro teste seja realizado. Este encadeamento gera 
estruturas semelhantes à mostrada a seguir: 
if condição1 { 
 bloco de instruções 1 
} else if condição2 { 
 bloco de instruções 2 
 } else { 
 bloco de instruções 3 
 } 
bloco de instruções 4 
 
 A execução deste algoritmo ocorre da seguinte forma: 
o se a condição1 for verdadeira, apenas o primeiro bloco será executado; 
o se a condição 1 for falsa, a condição 2 determina qual dos blocos 2 e 3 será 
executado (se a condição 2 for verdadeira, o bloco 2 será executado; se for 
falsa, o bloco 3) 
o O bloco 4 é executado independentemente das condições 1 e 2. 
 Os desvios condicionais encadeados podem conter outro(s) desvio(s) condicional(is) 
encadeado(s), e assim sucessivamente. 
 
 Observar a Endentação do código para favorecer a legibilidade!!! 
 Exemplo: Considere que será concedido um bônus aos trabalhadores de uma 
empresa, conforme a quantidade de vendas no mês descrita abaixo. Desenvolva o 
algoritmo para ler o salário e calcular o valor em reais do aumento. Exibir na tela, o 
salário, o aumento (% e R$) e o salário novo. 
Vendas % aumento 
Até R$ 900,00 (inclusive) ...................... 5% 
De R$ 900,00 a R$ 1.400,00 ................. 8% 
Acima de R$ 1.400,00 (inclusive) .......... 10% 
 Operadores lógicos 
o São operadores que geram resultados lógicos (Verdadeiro ou Falso) pela 
avaliação de expressões lógicas. 
 
o Operador E (and): com o uso do operador E, todos os termos da expressão 
devem ser verdadeiros para que a expressão 
seja verdadeira. 
o Operador OU (or): com o uso do operador 
OU, pelo menos um dos termos da expressão 
deve ser verdadeiro para que a expressão 
seja verdadeira. 
o Operador NÃO (not): inverte ou nega valor 
lógico de uma expressão ou elemento. 
 
o Tabelas verdade dos operadores: 
E (and) 
p Q p && q 
1 1 1 
1 0 0 
0 1 0 
0 0 0 
 
OU (or) 
p q p || q 
1 1 1 
1 0 1 
0 1 1 
0 0 0 
 
NÃO (not) 
p ! p 
1 0 
1 0 
0 1 
0 1 
o Exemplos: Avalie o resultado das expressões a seguir, considerando as 
variáveis e seus valores a=4, b=5, c=9, d=1 
1. ((a!=0) && b == 5) 
2. (a > 3 || d == 1) 
3. !((a > 3 !! d < 3) && (b < c && b > c)) 
4. (b != 0 || a > 4) || (d < 3 && c >= 8) 
5. ((a > d || a < d) || a == 4) || (!( b == 5 && b > c)) 
 
 
 Operador ? 
x = z > 10 ? 100 : 200; 
 Equivale a: 
 if (z > 10) x = 100; 
 else x = 200; 
 
 O operador ‘?’ faz uma atribuição condicionada. A condição está 
entre os sinais ‘=’ e ‘?’ 
 Se a condição for verdadeira, então o valor atribuido é o que está 
após o sinal ‘?’ e antes do ‘:’ 
 Se a condição for falsa, o valor atribuído é que está após o sinal ‘:’ 
 
 
Exercícios: 
1. Considere a tabela de Alíquota de Imposto de Renda (IR) a seguir. Desenvolva um 
algoritmo para ler um valor de salário mensal, mostrar o % da alíquota do imposto de 
Renda e o valor em R$ da alíquota. 
 
Base de cálculo mensal em R$ Alíquota % 
Até 1.566,61 - 
De 1.566,62 até 2.347,85 7,5 
De 2.347,86 até 3.130,51 15,0 
De 3.130,52 até 3.911,63 22,5 
Acima de 3.911,64 27,5 
 
2. Escreva um algoritmo para ler a idade de uma pessoa e mostrar qual sua situação de 
eleitor, conforme as seguintes condições: se a idade for menor que 16 anos, informar 
que a pessoa não está apta a votar. Se a idade for maior ou igual a 16 anos e menor 
que 18 anos ou superior a 70 anos, informar que o voto é facultativo. Caso contrário, 
informar que o voto é obrigatório. 
 
Leituras e exercícios: 
EVARISTO, Jaime. Aprendendo a programar programando na linguagem C. Maceió: Vivali, 
2007. 
SCHILDT, Herbert. C completo e total. São Paulo: Makron Books, 1997. 
CORMEN, Thomas H et al. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2002.

Outros materiais