Sie sind auf Seite 1von 9

Lógica de Programação e Algoritmos - LPA

Estrutura de Decisão Escolha

Este tipo de estrutura é uma generalização da estrutura se, onde somente uma condição
era avaliada e dois caminhos podiam ser seguidos. Na estrutura de decisão do tipo
escolha pode haver uma ou mais condições a serem testadas e um comando composto
diferente associado a cada uma destas.

A sintaxe é a seguinte:

escolha
caso (condição_1)
<comando_1>
caso (condição_2)
<comando_2>
...
caso (condição_n)
<comando_n>
senão
<comando_s>
fim_escolha

O diagrama de blocos ficaria assim:

A estrutura “escolha” funciona da seguinte forma:

1
Lógica de Programação e Algoritmos - LPA

• Ao iniciar a construção da instrução “escolha”, a condição_1 é testada: se for


verdadeira, o comando_1 é executado e, após seu término, o fluxo de execução
prossegue para a primeira instrução após o final da construção fim_escolha.

• Se a condição_1 for falsa, a condição_2 é testada: se esta for verdadeira, o


comando_2 é executado e, ao seu término, a execução prossegue normalmente
para a instrução seguinte ao fim_escolha.

• O mesmo raciocínio é estendido a todas as condições da construção. Caso todas


as condições sejam avaliadas como falsas, o comando_s (correspondente ao
senão da construção) é executado.

Vejamos um exemplo da aplicação desta construção, baseado num algoritmo de reajuste


salarial variável em função da profissão.

Descrição Narrativa

Passo 1. Leia o salário do funcionário Passo


2. Leia a profissão do funcionário Passo 3.
Verifique a profissão do funcionário:
a. caso a profissão seja ‘Técnico’, reajustar o salário em 50%
b. caso a profissão seja ‘Gerente’, reajustar o salário em 30%
c. caso seja qualquer outra profissão, reajustar o salário em 10%
Passo 4. Exibir o salário do funcionário reajustado

Pseudocódigo

programa reajuste
var
salario, novo_sal : real
profissao : caractere
início
escreva (“Digite o salário:”)
leia (salario)
escreva (“Digite a profissão:”)
leia (profissao)
escolha
caso profissao = "Técnico"
novo_sal ← (1.5 * salario)
caso profissao = "Gerente"
novo_sal ← (1.3 * salario)
senão
novo_sal ← (1.1 * salario)
fim_escolha
escreva (“Salário reajustado =”, novo_sal)
fim

2
Lógica de Programação e Algoritmos - LPA

Diagrama de bloco

Um caso particular desta construção é aquele em que o comando_s não contém


nenhuma instrução. Isto ocorre nas situações em que não se deseja efetuar nenhuma
ação quando todas as condições testadas são falsas. Assim, pode-se dispensar o uso do
senão na construção, como acontece também na construção se.

Estrutura Condicional com Operadores Lógicos

Em algum momento pode ser necessário trabalhar com o relacionamento de duas ou


mais condições ao mesmo tempo na mesma instrução se, efetuando desta forma testes
múltiplos. Para estes casos é necessária a utilização dos operadores lógicos: e, ou, não.

Em muitas ocasiões, o uso de operadores lógicos evita a utilização de muitas instruções


se encadeadas.

Operador Lógico e
3
Lógica de Programação e Algoritmos - LPA

O operador lógico “e” é utilizado quando dois ou mais relacionamentos lógicos de uma
determinada condição necessitam ser verdadeiros.

Portanto, o operador “e” faz com que somente seja executada uma determinada operação
se todas as condições mencionadas forem simultaneamente verdadeiras.

A sintaxe é a seguinte:

se (<condição 1>) e (<condição 2>) então


<comando executado se condição1 e condição2 verdadeiras>
fim_se

O diagrama de bloco ficaria assim:

Vejamos um exemplo. Alguém lembra do porco???

Para que ele seja um porco pintado e feliz, as sentenças R e S precisam ser
verdadeiras...

4
Lógica de Programação e Algoritmos - LPA

se (o porco está feliz) e (o porco tem pintas) então


escreva (“O porco é feliz e tem pintas!”)
senão
escreva (“O porco tem problemas...”)
fim_se

Vamos para outro exemplo.

programa Operador_e
var
numero : inteiro
início
leia (numero)
se (numero >= 20) e (numero <= 60) então
escreva (“O número está na faixa de 20 a 60”)
senão
escreva (“O número está fora da faixa de 20 a 60”)
fim_se
fim

No o exemplo acima, somente será apresentada a mensagem “O número está na faixa de


20 a 60”, caso o valor da variável numero esteja entre 20 e 60. Qualquer valor fornecido
fora da faixa definida apresentará a mensagem: “O número está fora da faixa de 20 a 60”.

Operador Lógico ou

O operador lógico ou é utilizado quando pelo menos um dos relacionamentos de uma


condição necessita ser verdadeiro. Portanto, o operador lógico ou faz com que seja
executada uma determinada operação se pelo menos uma das condições mencionadas
for verdadeira.

A sintaxe é a seguinte:

se (<condição 1>) ou (<condição 2>) então


<comando executado se condição1 for verdadeira ou se condição2
for verdadeira>
fim_se

E o diagrama de bloco:

5
Lógica de Programação e Algoritmos - LPA

E o porco, ficaria como?

se (o porco está feliz) ou (o porco tem pintas) então


escreva (“Ele é um porco feliz ou pintado!”)
senão
escreva (“Ele continua sendo um porco feliz ou pintado!”)
fim_se

Operador Lógico não

O operador lógico “não” é utilizado quando se necessita estabelecer que uma


determinada condição deve não ser verdadeira. Este recurso é utilizado quando mesmo
sendo uma condição verdadeira, ela será tratada como falsa.

O operador “não” é caracterizado por inverter o estado lógico de uma condição


verdadeira, portanto, faz com que seja executada uma determinada operação se a
condição não for verdadeira, ou seja, considerada falsa.

A sintaxe é a seguinte:
6
Lógica de Programação e Algoritmos - LPA

se não (<condição 1>) então


<comando executado se condição1 não for verdadeira>
fim_se

E o diagrama de bloco:

No exemplo acima somente será efetuado o cálculo de X←(A+B)*C se o valor da


variável C for menor ou igual a 10. Qualquer valor maior que 10 resultará no cálculo
X←(A-B)*C.

Se forem informados os valores 10, 1 e 2, respectivamente, para as variáveis A, B e C,


resultará para a variável X o valor 22. Explicando: a expressão (C > 10) é falsa, pois C
vale 2. Como temos o operador lógico “não” antes da expressão, o valor desta é invertido,
portanto ela passa a ser verdadeira, e é executada a instrução X←(A+B)*C, ou
X←(10+1)*2.

Mas, se forem informados os valores 10, 1 e 11, respectivamente, para as variáveis A, B e


C, resultará para a variável X o valor 99. Explicando: a expressão (C > 10) é
verdadeira, pois C vale 11. Como temos o operador lógico “não” antes da expressão, o
valor desta é invertido, portanto ela passa a ser falsa, e é executada a instrução X←(A-
B)*C, ou X←(10-1)*11.

Pois bem, vamos finalizar com o porco.

7
Lógica de Programação e Algoritmos - LPA

se não (o porco tem pintas) então


escreva (“O porco não tem pintas não, só está sujo!”)
senão
escreva (“O porco tem pintas sim, você não vê?!”)
fim_se

Exemplos Resolvidos:

Exemplo1:

programa Operador_nao
var
A, B, C, X : inteiro
início
leia (A, B, C)
se não (C > 10) então
X ← (A + B) * C
senão
X ← (A - B) * C
fim_se
escreva (C)
fim

Exemplo 2:

programa Operador_ou
var
sexo : caractere
início
leia (sexo)
se (sexo = “masculino”) ou (sexo = “feminino”) então
escreva (“O seu sexo é valido”)
senão
escreva (“O seu sexo é duvidoso”)
fim_se
fim

Exemplo 3:

8
Lógica de Programação e Algoritmos - LPA

programa Operador_e
var
numero : inteiro
início
leia (numero)
se (numero >= 20) e (numero <= 60) então
escreva (“O número está na faixa de 20 a 60”)
senão
escreva (“O número está fora da faixa de 20 a 60”)
fim_se
fim

Imagens retiradas do livro:


Introdução Ilustrada à Computação
Larry Gonick
Traduzido sob iniciativa da Itautec

Das könnte Ihnen auch gefallen