Baixe o app para aproveitar ainda mais
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.
Compartilhar