Você está na página 1de 23

Comandos de condição

Comando se
Condições compostas
Comandos de condição encadeados
Comando caso

Comandos de condição

Até agora, todos os algoritmos que foram


vistos têm um fluxo de execução único.

Algumas vezes executamos determinados


procedimentos dependendo de uma série de
condições.

Comandos de condição

Exemplo de compras em um mercado.


Fatores de decisão: tempo, dinheiro, meio de
transporte, etc.

Comandos de condição em algoritmos altera o


fluxo de execução das instruções.

Comando se

...
escolha o produto que quer comprar
se tem dinheiro para comprá-lo então
Coloque no carrinho

senão
Devolva para a prateleira
Escolha uma marca mais barata

...

Comando se

Sintaxe em pseudocódigo:

se <valor booleano> então


<bloco de instruções>
[senão
<bloco de instruções>]

<continuação do algoritmo>

Exemplo 1

var a: inteiro;
inicio
escreva (“entre com um valor: “);
leia (a);
se (a = 5) então
inicio
escreva(“condição verdadeira”);
escreva (“o valor lido é “ a);
fim
senão
inicio
escreva(“condição falsa”);
escreva (“o valor lido não é 5, é “ a);
fim
escreva(“fim do algoritmo.”);
fim

Comando se

A cláusula senão é opcional

se <valor booleano> então


<bloco de instruções>

<continuação do algoritmo>

Exemplo 2

var a: inteiro;
inicio
escreva (“entre com um valor: “);
leia (a);
se (a = 5) então
inicio
escreva(“condição verdadeira”);
escreva (“o valor lido é “ a);
fim
escreva(“fim do algoritmo.”);
fim

Condições compostas

As condições que vimos até agora sempre


foram únicas.
Mas é necessário a utilização de condições
mais elaboradas
Por exemplo, verificar se um número é maior
que 50 mas menor que 60.

Exemplo 3

var a: inteiro;
inicio
escreva (“entre com um valor: “);
leia (a);
se (a > 50 e a < 60) então
inicio
escreva(“condição verdadeira”);
escreva (“o valor lido é “ a);
fim
escreva(“fim do algoritmo.”);
fim

Condições encadeadas

O encadeamento acontece quando o bloco de


instruções subordinado ao comando se/então
contém outros comandos se/então
Exemplo:
se <valor booleano> então
<bloco de instruções>
senão
se <valor booleano> então
<bloco de instruções>
senão
se <valor booleano> então
<bloco de instruções>

Condições encadeadas

A indentação pode atrapalhar, é melhor fazer


assim:

se <valor booleano> então


<bloco de instruções>
senão se <valor booleano> então
<bloco de instruções>
senão se <valor booleano> então
<bloco de instruções>
senão se <valor booleano> então
<bloco de instruções>

Comando caso

O comando caso pode ser visto como uma


especialização do comando se.

Foi criado para facilitar um uso particular de


comandos se encadeados.

Comando caso

Sintaxe:

caso <valor inteiro/caractere> seja:


<primeiro valor>:
<bloco de instruções>

<segundo valor>:
<bloco de instruções>

.....

default:
<bloco de instruções>

Comando caso

Algoritmo Exemplo_Caso1
var n1: inteiro;
inicio
escreva (entre com o valor a ser testado: “);
leia(n1);
caso n1 seja:
5:
escreva(“valor introduzido é válido: 5”);
default:
escreva (“valor inválido: “ n1);
fim

Comando caso

Algoritmo Exemplo_Caso2
var n1: inteiro;
inicio
escreva (entre com o valor a ser testado: “);
leia(n1);
caso n1 seja:
1:
escreva (“valor introduzido é válido: 1”);
5:
escreva(“valor introduzido é válido: 5”);
10:
escreva(“valor introduzido é válido: 10”);
default:
escreva (“valor inválido: “ n1);

fim

Exercício 1

Fazer um algoritmo para verificar se uma


pessoa é maior de idade. Seu algoritmo deve
ser flexível de modo a contemplar uma
mudança na legislação.
Solução do exercício 1
Algoritmo Maior_Idade
constante MAIOR = 21;
var idade: inteiro;
inicio
escreva (“entre com a idade: “);
leia (idade);
se (idade >= MAIOR) então
inicio
escreva(“a pessoa é maior de idade”);
escreva (“a idade lida é “ idade);
fim
escreva(“fim do algoritmo.”);
fim

Exercício 2

Elaborar um algoritmo para ler dois números


distintos e determinar qual é o maior.
Solução do exercício 2
Algoritmo Maior_Inteiro
var n1,n2: inteiro;
inicio
escreva (“entre com um valor inteiro: “);
leia (n1);
escreva (“entre com outro valor inteiro: “);
leia (n2);
se (n1 > n2) então
início
escreva(“o maior valor é” n1);
fim
senão
inicio
escreva (“o maior valor é “ n2);
fim
fim

Exercício 3

Fazer um algoritmo para identificar se um


caractere é igual a A, B ou C. Caso não seja
nenhum desses caracteres, retornar a
mensagem “caracter inválido”.
Solução do exercício 3

Algoritmo Caso_A_B_C
var c1: caractere;
inicio
escreva (entre com o caracter a ser testado: “);
leia(c1);
caso c1 seja:
’A’:
escreva (“caractere introduzido é válido: A”);
‘B’:
escreva(“caractere introduzido é válido: B”);
‘C”:
escreva(“caractere introduzido é válido: C”);
default:
escreva (“caractere inválido: “ c1);
fim

BIBLIOGRAFIA

MOKARZEL & SOMA. Introdução à Ciência


da Computação
Capítulo 4

Você também pode gostar