2. Comandos de seleção
● Como visto anteriormente, são utilizados
para tomadas de decisões;
● Desvia o fluxo do programa para uma
determinada seqüê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;
3. Comandos de seleção
● Utilizamos dois comandos para esta
finalidade:
– if
– select case
4. Comando IF lógico (1 Via)
● O comando “IF” para vários comandos é estruturado da seguinte
forma:
if <expressão-lógica> then
<comandos>
end
● Caso a expressão lógica (<expressão-lógica>) seja verdade, os
<comandos> são executados pelo programa;
● Caso a expressão lógica (<expressão-lógica>) seja falsa, os
<comandos> não serão executados pelo programa. O fluxo de
execução passará para o comando após o end;
● Os <comandos> podem ser uma ou mais instruções.
7. Comando IF (2 Vias)
● Neste caso, o comando “IF” é utilizado juntamente com o
comando “ELSE”
if <expressão-lógica> then
<seqüência-de-comandos-1>
else
<seqüência-de-comandos-2>
end
● Caso a expressão lógica (<expressão-lógica>) seja verdade, a
<seqüência-de-comandos-1> é executada pelo programa
● Caso a expressão lógica (<expressão-lógica>) seja falsa, a
<seqüência-de-comandos-2> é executada pelo programa
9. Comando IF Expandido
● É utilizado quando várias condições
poderão ser testadas.
● No máximo, apenas uma seqüência de
comando é executada.
● A sequência que será executada é a
primeira que retorna um valor verdadeiro.
10. Comando IF Expandido
● Os testes das expressões começam do
primeiro.
● Caso a primeira expressão seja falsa, testa
a segunda, caso esta seja falsa, testa a
terceira, e assim por diante.
● Se nenhuma for verdadeira, o comando no
bloco “else” será executado, caso este
bloco exista, pois ele é opcicional
11. Comando IF Expandido
● Sua sintaxe é:
if <expressão-lógica-1> then
<seqüência-de-comandos-1>
elseif <expressão-lógica-2> then
<seqüência-de-comandos-2>
elseif <expressão-lógica-3> then
<seqüência-de-comandos-3>
. . .
[else
<seqüência-de-comandos-N> ]
end
13. Comando Select Case
● É útil quando o valor analisado na
expressão lógica possuir diversos valores.
● Similar ao comando “ESCOLHA” do
Portugol.
14. Comando Select Case
● A sintaxe é:
select (<expressão>)
case (<expressão_de_seleção_1>) then
<seqüência-de-comandos-1>
case (<expressão_de_seleção_2>) then
<seqüência-de-comandos-2>
...
[else
<seqüência-de-comandos-N>]
end
15. Comando Select Case
● A avaliação é feita sequencialmente.
Quando o valor da expressão
(<expressão>) coincidir com um dos
valores da lista de
seleção(<expressão_de_selecao?>), a
seqüência de comandos daquele caso
(Case) será executada.
● O comando else é opcional.
18. Aviso sobre blocos de
Scilab
● Aviso: o número de caracteres utilizados
para definir o corpo de qualquer instrução
condicional (if while for or select/case) deve
ser limitado a 16000.
19. Exercícios
● Utilizando o comando IF:
– Faça um programa para ler um número inteiro e informar se
o número é par ou ímpar. Utilize a função modulo(x,y)
– 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.
– 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óscele ou Escaleno
20. Exercícios
● Utilizando o comando IF:
– 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
21. Exercícios
● Utilizando o comando Select Case:
– 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.
22. Exercícios
● Utilizando o comando Select Case:
– Faça um algoritmo que receba a idade de um nadador e
mostre a sua categoria usando as regras a seguir:
● 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