32
Condicionais em C Yuri Tavares dos Passos

Aula02 condicionais

Embed Size (px)

Citation preview

Page 1: Aula02   condicionais

Condicionais em C

Yuri Tavares dos Passos

Page 2: Aula02   condicionais

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 ?:

Page 3: Aula02   condicionais

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 “;”.

Page 4: Aula02   condicionais

Comando if

Page 5: Aula02   condicionais

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

Page 6: Aula02   condicionais

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.

Page 7: Aula02   condicionais

Comando if

Page 8: Aula02   condicionais

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

Page 9: Aula02   condicionais

Comando if● O uso ou não de chaves determina se a via do comando else executa apenas um comando ou vários comandos.

Page 10: Aula02   condicionais

Comando if

Page 11: Aula02   condicionais

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.

Page 12: Aula02   condicionais

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>}]

Page 13: Aula02   condicionais

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.

Page 14: Aula02   condicionais

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

Page 15: Aula02   condicionais

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.

Page 16: Aula02   condicionais

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.

Page 17: Aula02   condicionais

Comando if encadeado

Page 18: Aula02   condicionais

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.

Page 19: Aula02   condicionais

Comando switch● A sintaxe é:

switch (<expressão>){

case <valor>: [<comandos>]

[break;]

case <valor>: [<comandos>]

[break;]

default: [<comandos>]

[break;]

}

Page 20: Aula02   condicionais

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.

Page 21: Aula02   condicionais

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.

Page 22: Aula02   condicionais

Comando switch

Page 23: Aula02   condicionais

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.

Page 24: Aula02   condicionais

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.

Page 25: Aula02   condicionais

Operador ternário ?:

Page 26: Aula02   condicionais

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.

Page 27: Aula02   condicionais

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.

Page 28: Aula02   condicionais

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.

Page 29: Aula02   condicionais

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.

Page 30: Aula02   condicionais

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

Page 31: Aula02   condicionais

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|

Page 32: Aula02   condicionais

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