Condicionais em C
Yuri Tavares dos Passos
Comandos de seleção● Como vimos anteriormente, são utilizados para tomadas de
decisões;● Desvia o fluxo do programa para uma determinada sequência de
comandos;● Conforme a análise de uma expressão lógica, o fluxo do
programa é alterado ou não;● Podem ser Simples ou Composto;● Utilizamos dois comandos para esta finalidade:
– if
– swich
– Operador ternário ?:
Comando if● O comando if simples é estruturado como segue:
– if (<expressão-lógica>) <comando>;
– if (<expressão-lógica>) <comando>;
● Caso a expressão em <expressão-lógica> retornar 1 (ou qualquer valor diferente de 0), o <comando> é executado.
● Caso a expressão em <expressão-lógica> retornar 0, o <comando> não é executado. O fluxo passará para o comando após o if.
● Note que o <comando> pode ser formado apenas por uma instrução, terminada por “;”.
Comando if
Comando if● O comando if permite a execução de um determinado bloco de comandos.
● Para isto deve-se construir o bloco com o uso de chaves ({ … }):
if (<expressão-lógica>){ <bloco de comandos>}
Comando if● Caso a expressão lógica (<expressão-lógica>) retorne um valor diferente de 0, a sequência dentro das chaves será executada.
● Caso a expressão lógica (<expressão-lógica>) retorne um igual a 0, o bloco não é executado, passando a execução para o que vem após o bloco.
Comando if
Comando if● O comando de seleção com duas vias é feito com a palavra else.
if (<expressão-lógica>){ <seqüência-de-comandos-1>}else {
<seqüência-de-comandos-2>}
Comando if● O uso ou não de chaves determina se a via do comando else executa apenas um comando ou vários comandos.
Comando if
Comando if encadeado● É utilizado quando várias condições poderão ser testadas.
● É utilizado quando se deseja executar após o teste de uma condição anterior.
● Cada teste é executado por vez. Quando um deles é verdadeiro, apenas o bloco referente a este teste é executado.
Comando if encadeadoif (<expressão-lógica-1>){ <seqüência-de-comandos-1>}else if (<expressão-lógica-2>){ <seqüência-de-comandos-2>}else if (<expressão-lógica-3>) { <seqüência-de-comandos-3>}. . .[else{ <seqüência-de-comandos-n>}]
Comando if encadeado● A execução será feita seqüencialmente. Se a <expressão-lógica-1> for verdadeira a <seqüência-de-comandos-1> é executada pelo programa. O fluxo de execução retornará para a próxima instrução abaixo desse comando if.
Comando if encadeado
● Se a <expressão-lógica-1> for falsa o programa avaliará a próxima instrução eles if do comando if expandido. Neste caso, a expressão a ser avaliada será <expressão-lógica-2>.
Comando if encadeado
● Este processo se repetirá até que encontre uma expressão lógica que seja verdadeira ou encontre o comando else, caso seja especificado.
Comando if encadeado● É utilizado quando várias condições poderão ser testadas.
● É utilizado quando se deseja executar após o teste de uma condição anterior.
● Cada teste é executado por vez. Quando um deles é verdadeiro, apenas o bloco referente a este teste é executado.
Comando if encadeado
Comando switch● É útil quando o valor analisado na expressão lógica possui diversos valores possíveis.
● É semelhante ao comando ESCOLHA do portuguol e a seleção de múltiplas vias do fluxograma.
Comando switch● A sintaxe é:
switch (<expressão>){
case <valor>: [<comandos>]
[break;]
case <valor>: [<comandos>]
[break;]
…
default: [<comandos>]
[break;]
}
Comando switch● Apenas uma expressão por case pode ser enunciada.
● O comando break serve para encerrar estruturas de controle.– No caso do comando switch,
desviando o fluxo do programa para o fim de seu bloco.
Comando switch● A ausência do comando break fará com que o fluxo do programa prossiga executando os comandos declarados dentro dos cases seguintes.– Trampolins, piscina e portais
dimensionais.
Comando switch
Operador ternário ?:● O operador ternário ?: é utilizado para pequenas expressões de atribuição que envolvam seleção.
● O nome ternário significa que o operador possui três argumentos:– A expressão lógica;
– O valor retornado caso a expressão lógica seja verdadeira;
– O valor retornado caso ela seja falsa.
Operador ternário ?:● Sintaxe:
– (<expressão lógica>)?<expressão-1>:<expressão-2>;
● Caso a <expressão lógica> antes do símbolo “?” for verdadeira, o valor da <expressão-1> será retornado.
● Caso contrário, o valor de <expressão-2> será retornado.
Operador ternário ?:
Exercícios● Utilizando o comando if:
1) Faça um programa para ler um número inteiro e informar se o número é par ou ímpar. Utilize a função o operador %.
2) Faça um programa para ler as três notas de uma aluno e imprima se o mesmo foi aprovado ou reprovado. Adote a média aritmética e média para aprovação maior ou igual 7,0.
3) Faça um programa para ler três valores reais e informar se estes podem ou não formar os lados de um triângulo e qual tipo de triângulo seria: equilátero, isóceles ou escaleno.
Exercícios● Utilizando o comando if:
4) Faça um programa que leia o número de eleitores de um município, o número de votos brancos, nulos e válidos. Calcule o percentual que cada um representa em relação ao total de eleitores. Ao final, o programa deve:– Imprimir o percentual de votos branco, nulos e válidos;
– Se a soma de votos nulos mais votos brancos for maior que votos válidos, informar que a eleição foi cancelada.
Exercícios● Utilizando o comando if:
5) A jornada de trabalho semanal de um funcionário é de 44 horas. O funcionário que trabalhar mais de 44 horas receberá hora extra, cujo cálculo é o valor da hora regular com um acréscimo de 30%. Escreva um programa que leia o número de horas trabalhadas em um mês, o salário por hora e escreva o salário total do funcionário, que deverá ser acrescido das horas extras, caso tenham sido trabalhadas.
Exercícios● Utilizando o comando switch:
6) Faça um programa para ler valores inteiros em duas variáveis distintas e:– Se o resto da divisão da primeira pela segunda for 1 mostre a soma
dessas variáveis mais o resto da divisão;
– Se o resto da divisão da primeira pela segunda for 2 escreva se os valores lidos são pares ou ímpares
– Se o resto da divisão da primeira pela segunda for igual a 3, multiplique a soma dos valores lidos pelo primeiro;
– Se o resto da divisão da primeira pela segunda for igual a 4, divida a soma dos números lidos pelo segundo;
– Em qualquer outra situação mostre o quadrado dos números lidos.
Exercícios● Utilizando o comando switch:
7) Faça um algoritmo que receba a idade de um nadador e mostre a sua categoria usando as regras a seguir:– Categoria Idade
– Fraldinha: até 4 anos
– Dentinho: 5 anos
– Infantil: de 6 a 7 anos
– Juvenil: de 8 a 12 anos
– Adolescente: de 13 a 17 anos
– Adulto: de 18 a 30 anos
– Sênior: acima de 30
Exercícios● Usando o operador ternário ?::
8) Faça um programa que leia um número e retorne o módulo deste número.
9) Faça um programa que leia dois pontos no espaço bidimensional e encontre a distância dada pela fórmula a seguir:
d(A,B) = |xA – xB| + |yA – yB|
Exercícios● Usando o operador ternário ?::
10) Escreva um algoritmo que leia os coeficientes a, b e c de uma equação do segundo grau da forma:
ax2 + bx + c = 0
E escreva na tela as raízes desta equação. Lembrando que
∆ = b2 – 4ac
e:
Caso ∆ seja menor que 0, deve-se escrever na tela que sua equação não possui soluções reais.
a
bx
2
Recommended