Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA Aula 02: Estruturas de Seleção Prof. André Alves Nogueira, MSc. SUMÁRIO ▪ Comando de seleção if ▪ Comando Else if ▪ Operador Ternário ▪ Estruturas aninhadas ▪ Comando Switch..Case ESTRUTURAS DE CONDIÇÃO SIMPLES ▪ Estruturas que permitem a escolha de instruções (bloco) a serem executadas, avaliação de uma expressão lógica um grupo de a partir da ▪ Somente dois caminhos serão possíveis: ▪ 1º caminho: condição verdadeira ▪ 2º caminho: condição falsa ESTRUTURAS DE CONDIÇÃO SIMPLES ▪ Fluxograma ESTRUTURAS DE CONDIÇÃO SIMPLES ▪ Sintaxe: if <condição> { bloco de instruções } Dica de programação: caso o bloco de instruções do IF tenha UMA linha no máximo, não será preciso colocar ‘{‘ e ‘}’. OPERADORES LÓGICOS ▪ C oferece operadores lógicos, que podem ser usados para formar condições mais complexas ao combinar condições simples. ▪ Os operadores lógicos são && (AND lógico), || (OR lógico) e ! (NOT lógico, também chamado de negação lógica). Operador Equivalente Sintaxe Representação matemática && AND lógico (A = C) && (B = C) (A = C) * (B = C) || OR lógico (A = C) || (B = C) (A = C) + (B = C) ! Não lógico !A Ā OPERADORES LÓGICOS – EXEMPLO float media; printf("informe sua media: "); scanf("%f",&media); if ((media >= 5) && (media <= 10)) printf("aprovado"); return 0; DICA DE PROGRAMAÇÃO – LIMPAR TELA Use os comandos: system(“clear”); //funciona no Linux com a biblioteca conio.h system(“cls”); // mais utilizada (Windows). Pode ser executado com operador lógico: system(“clear||cls”); //utilize esta ▪ Tipo de estrutura de seleção emque: ▪ a sequência de comandos 1 será executada caso a condição seja verdadeira ▪ a sequência de comandos 2 será executada caso a condição seja falsa ESTRUTURAS DE CONDIÇÃO COMPOSTO ESTRUTURAS DE CONDIÇÃO COMPOSTO ▪ Sintaxe: if <condição> { bloco de instruções (se condição verdadeira) } else { bloco de instruções (se condição falsa) } ESTRUTURAS DE CONDIÇÃO COMPOSTO OPERADOR TERNÁRIO ▪ O operador “? :” é chamado de ternário pois eleé uma TRINCA: <condição> ? <expressão verdade> : <expressão falso>; ▪ Ele substitui em alguns casos o if..else. ▪ Exemplo: float media = 3; (media >= 5) ? printf("aprovado") : printf("reprovado"); ESTRUTURAS ANINHADAS 34 ▪ Estruturas if…else aninhadas testam vários casos, colocando estruturas if…else dentro de estruturas if…else. ▪ Por exemplo, a estrutura de pseudocódigo a seguir imprimirá A para notas de exame maiores ou iguais a 90, B para notas maiores ou iguais a 80, C para notas maiores ou iguais a 70, D para notas maiores ou iguais a 60, e F para todas as outras notas: Se a nota do aluno é maior ou igual a 90 Imprime ‘A’ se não Se a nota do aluno é maior ou igual a 80 Imprime ‘B’ se não Se a nota do aluno é maior ou igual a 70 Imprime ‘C’ se não Se a nota do aluno é maior ou igual a 60 Imprime ‘D’ se não Imprime ‘F’ ESTRUTURAS ANINHADAS ESTRUTURAS ANINHADAS ▪ Sintaxe: if <condição n> { bloco de instruções (se condição-n verdadeira) } else { if <condição-m> { bloco de instruções (se condição-m verdadeira) } else { bloco de instruções (se condição-m falsa) } } DICA DE PROGRAMAÇÃO – PRINCIPAIS BIBLIOTECAS DISPONÍVEIS NO GNU GCC COMPILER Nome Descrição acos arco-coseno asin arco-seno atan arco-tangente atan2 arco-tangente (círculo cheio) ceil tecto cos co-seno cosh co-seno hiperbólico exp exponencial fabs valor absoluto (módulo de) floor chão fmod resto de uma divisão frexp fracção norm./parte exp ldexp inverso de frexp log logaritmo natural log10 logaritmo base 10 modf(x,p) retorna a parte fraccionária de x e guarda a parte inteira para onde o apontador p aponta pow(x,y) retorna o resultado de x elevado a y sin seno sinh seno hiperbólico sqrt raiz quadrada tan tangente tanh tangente hiperbólica DICA DE PROGRAMAÇÃO – FUNÇÕES DA BIBLIOTECA MATH.H (OU CMATH) - FUNÇÕES DO C89/C90 Nome Descrição acosh arco-coseno hiperbólico asinh arco-seno hiperbólico atanh arco-tangente hiperbólica cbrt raiz cúbica copysign(x,y) retorna o valor de x com o sinal de y erf função erro erfc função erro complementar exp2(x) calcula 2 elevado à x, 2x expm1(x) subtrai da exponenciação x, ex − 1 fdim(x,y) diferença positiva entre x e y, fmax(x−y, 0) fma(x,y,z) multipica e soma, (x * y) + z fmax(x,y) maior valor de x e y fmin(x,y) menor valor de x e y hypot(x,y) hipotenusa, sqrt(x2 + y2) ilogb o expoente de uma dízima, convertido num int lgamma logaritmo natural do valor absoluto da função gamma DICA DE PROGRAMAÇÃO – FUNÇÕES DA BIBLIOTECA MATH.H (OU CMATH) - FUNÇÕES DO C89/C90 FUNÇÕES ACRESCENTADAS NO C99 Nome Descrição llrint arredonda para inteiro (retorna long long) usando o modo de arredondamento corrente lrint arredonda para inteiro (retorna long) usando o modo de arredondamento currente llround arredonda para inteiro (retorna long long) lround arredonda para inteiro (retorna long) log1p(x) logaritmo natural de 1 + x log2 logaritmo binário logb extrai o expoente da dízima infinita não periódica nan(s) retorna NaN, possivelmente usando um argumento "string" nearbyint arredonda uma dízima para o inteiro mais próximo nextafter(x,y) retorna o próximo valor representável depois de x (towards y) nexttoward(x,y) o mesmo que nextafter, excepto que y é sempre um long double remainder(x,y) calcula o resto como exigido pelo IEC 60559 remquo(x,y,p) o mesmo que remainder, mas guarda o quociente (como int) no alvo do apontador p rint arredonda para inteiro (retorna double) usando o modo de arredondamento currente round arredonda para inteiro (retorna double), arredonda casa mais distante de zero scalbln(x,n) x * FLT_RADIXn (n é long) scalbn(x,n) x * FLT_RADIXn (n é int) tgamma função gamma trunc trunca uma dízima ESTRUTURAS DE SELEÇÃO MÚLTIPLA – SWITCH..CASE ▪ Ocasionalmente, um algoritmo conterá uma série de decisões em que uma variável, ou expressão, será testada separadamente para cada um dos valores inteiros constantes que ela possa vir a assumir, e diferentes ações serão tomadas. ▪ Isso é chamado de seleção múltipla. ▪ C nos oferece a estrutura de seleção múltipla switch para lidar com essa tomada de decisão. ▪ A estrutura switch consiste em uma série de rótulos case, um caso default opcional e instruções para executar cada caso. ESTRUTURAS DE SELEÇÃO MÚLTIPLA – SWITCH..CASE ▪ Sintaxe: switch (variável analisada) { case (valor 1): bloco de instruções (se valor 1 verdadeiro); break; case (valor 2): bloco de instruções (se valor 2 verdadeiro); break; case (valor 3): bloco de instruções (se valor 3 verdadeiro); break; . . (se valor n verdadeiro); break; (caso nenhum valor n seja case (valor n): bloco de instruções [default]: bloco de instruções verdadeiro); break; } A palavra reservada break serve para fechar o laço do switch quando o case for verdadeiro. EXEMPLO int main(void){ int valor; printf ("Digite um valor de 1 a 7: "); scanf("%d", &valor); switch (valor){ case 1 : printf ("Domingo\n"); break; case 2 : printf ("Segunda\n"); break; case 3 : printf(“Terca\n”); break; case 4 : printf ("Quarta\n"); break; case 5 : printf (“Quinta\n”); break; case 6 : printf (“Sexta\n”); break; case 7 : printf (“Sabado\n”); break; default : printf(“Valor invalido!\n”); } return 0; } A variável testada no switch só pode ser do tipo int echar. EXERCÍCIOS 44 1. Crie umprograma que faça a identificação da idade do usuário. Verificar se o usuário está apto a prestar o serviço militar (entre 18 a 23 anos), se ele pode tirar a CNH (Certificado Nacional de Habilitação – idade > 16) e se ele pode ingerir bebidas alcoólicas (idade > 21). Deve ser mostrada uma mensagem de aviso caso ele seja menor de idade ou maior que as condições militares aceitas, deve mostrar em conjunto as características permitidas para a idade especificada (que deve ser inserida pelo usuário). 2. Utilize uma condição de seleção caso o usuário queira realizar as operações: quadrado de 𝑛, raiz quadrada de 𝑛, potência ao cubo de 𝑛 e resto da divisão de 𝑛 por 2. Onde 𝑛 é um numero inserido pelo usuário. Faça também que se o usuário inserir uma opção invalida, o programa termine (ou recomece usando goto). EXERCÍCIOS 3. Construa um algoritmo que leia um numero inteiro e devolva o nome do mês ao qual esse numero representa. 4. Crie um aplicativo bancário em C que pede o valor do depósito inicial, o valor do investimento mensal e o número de meses que o dinheiro vai ficar rendendo na poupança. Após isso, calcule o lucro obtido, sabendo que o juros da poupança ao mês (a.m.) é de 0,5%. Conforme a formula: 𝑆𝑛 = (1 + 𝑗) 1 + 𝑗 𝑛 − 1 𝑗 𝑝 ▪ Aonde 𝑝 é o valor mensal fixo a ser aplicado. 𝑗 é o juros a.m. 𝑛 é a qtde. de meses investidos e 𝑆𝑛 é o montante final após a aplicação. REFERÊNCIAS ▪ DEITEL, Harvey M.; DEITEL, P. J. C: como programar. 6.ed. São Paulo: Pearson, 2011. ▪ DAMAS, Luís. Linguagem C. 10.ed. São Paulo: LTC, 2013. ▪ BACKES, André. Linguagem C: Completa e Descomplicada. Rio de Janeiro: Elsevier, 2012.
Compartilhar