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 encadeado
if (<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
b
x
2



Aula02 condicionais

  • 1.
    Condicionais em C YuriTavares dos Passos
  • 2.
    Comandos de seleção● Comovimos 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 ?:
  • 3.
    Comando if ● O comandoif 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 “;”.
  • 4.
  • 5.
    Comando if ● Ocomando 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> }
  • 6.
    Comando if ● Casoa 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.
  • 7.
  • 8.
    Comando if ● Ocomando 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> }
  • 9.
    Comando if ● Ouso ou não de chaves determina se a via do comando else executa apenas um comando ou vários comandos.
  • 10.
  • 11.
    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.
  • 12.
    Comando if encadeado if(<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> }]
  • 13.
    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.
  • 14.
    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>.
  • 15.
    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.
  • 16.
    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.
  • 17.
  • 18.
    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.
  • 19.
    Comando switch ● Asintaxe é: switch (<expressão>){ case <valor>: [<comandos>] [break;] case <valor>: [<comandos>] [break;] … default: [<comandos>] [break;] }
  • 20.
    Comando switch ● Apenasuma 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.
  • 21.
    Comando switch ● Aausê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.
  • 22.
  • 23.
    Operador ternário ?:● Ooperador 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.
  • 24.
    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.
  • 25.
  • 26.
    Exercícios ● Utilizando ocomando 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.
  • 27.
    Exercícios ● Utilizando ocomando 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.
  • 28.
    Exercícios ● Utilizando ocomando 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.
  • 29.
    Exercícios ● Utilizando o comandoswitch: 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.
  • 30.
    Exercícios ● Utilizando o comandoswitch: 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
  • 31.
    Exercícios ● Usando ooperador 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|
  • 32.
    Exercícios ● Usando ooperador 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 b x 2  