aula02
TRANSCRIPT
Condicionais em Scilab
Yuri Tavares dos PassosJoel Alves de Oliveira
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;
Comandos de seleção
● Utilizamos dois comandos para esta finalidade:– if
– select case
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.
Exemplo
Exemplo
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
Exemplo
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.
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
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
Exemplo
Comando Select Case
● É útil quando o valor analisado na expressão lógica possuir diversos valores.
● Similar ao comando “ESCOLHA” do Portugol.
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
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.
Exemplo
Exemplo (continuação)
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.
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
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
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.
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