Você está na página 1de 19

Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.

br

6. ESTRUTURA DE SELEÇÃO ou ESTRUTURAS DE DECISÃO

Frase do Dia: O
segredo para fazer os sonhos se tornarem realidade pode ser
resumido em quatro C’s: Curiosidade, Confiança, Coragem e Constância, e o
maior de todos esses é a Confiança. (Walt Disney )

Objetivos da Aula: Introduzir as estruturas de seleção simples e seleção composta (se-senão-


se) e seleção encadeada homogênea e Heterogênea; Aplicação em Portugol, C, Fluxogramas
usando as estruturas If-else-if;

6.1. Estrutura de seleção simples (IF ou Se):


Urna estrutura de seleção permite a escolha de um grupo de ações (bloco) a ser executado
quando determinadas condições, representadas por expressões lógicas ou relacionais (produzem
resultados lógico Falso ou Verdadeiro), são ou não satisfeitas.
Na seleção simples se a condição for verdadeira é executado o bloco de comandos 1. Se for
falso, apenas sai do teste condicional

Sintaxe da estrutura de seleção Simples:

Portugol Studio Na Linguagem C


se (condicao ) if ( condição )
{ Apenas 1 comando; //não precisa usa
bloco_de_comandos; chaves
}
OU

If ( condição ) { //usa chaves. Mais de 1


comando_1; //comando no bloco
Comando_2;
comando_n;
}

Resultados lógicos em C
 0 – para Falso
 1 – para verdadeiro

If (1) {
printf(“1 é sempre verdade”);
}
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

(Condição) → pode ser uma expressão lógica (ou um valor lógico) que após ser avaliado gera
um resultado lógico (Falso =0 ou Verdadeiro=1)
Na Seleção simples se a condição for verdadeira, executa-se os comandos da cláusula “então”
- . Já se a condição for falsa apenas encerra-se a seleção (fimse) e nenhum comando é
executado.

Exemplo 1:
Construa um programa que receba a idade de um jovem e mostre se ele pode ir ou não se
alistar e servir no serviço militar. Considera-se apto ao serviço militar, jovens com idade igual ou
superior a 18 anos.

Implementação com Fluxograma;


Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Implementação em C: Bloco verdade com apenas 1 (uma) linha de comando, não é


obrigatório o uso de chaves para delimitar início e fim de bloco.

Implementação em C: Bloco verdade com apenas mais de uma linha de comando, obrigatório
o uso de chaves para delimitar o início e fim do bloco.

Exemplo 2:
Construa um algoritmo que receba dois números e avalie se o primeiro número é maior do que
o segundo.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Para pensar um pouco:


 No programa anterior, o que acontece se o segundo número for maior do que o primeiro
número?
 O que faz o %d na linha 11;
 O que está acontecendo na linha 4?
 Qual o porquê do & ao lado das variáveis num1 e num2 nas linhas 6 e 8?

Para Praticar

a. Construa um Algoritmo que receba um número e verifique se ele é par.


R = num % 2 == 0

b. Construa um Algoritmo que receba um número e verifique se ele é múltiplo de 5.


R= num % 5 == 0
14 % 5 == 0
4 == 0
0 → falso

R= num % 5 == 0
55 % 5 == 0
0 == 0
1 → verdadeiro

6.2. Estrutura de seleção composta (if- else OU se-senão)


Quando temos duas alternativas que dependem do resultado de uma mesma condição (Falso
ou Verdadeiro) então a seleção composta é utilizada.
Na seleção composta se a condição for verdadeira são executados os comandos do bloco
Verdade. Se for falso são executados os comandos do bloco falsidade.
Sintaxe da estrutura de seleção Composta:

Portugol Studio Na Linguagem C


If ( condição )
comandos_bloco_verdade;
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Se (condicao ) else
{ comandos_bloco_falsidade;
comandos_bloco_verdade
} OU
senao
{ If ( condição ) {
comandos_bloco_falsidade comandos_bloco_verdade;
} } else{
comandos_bloco_falsidade;
comando_n;
}

Exemplo 1:
Construa um programa que receba um número e informe se ele é PARA ou IMPAR.
Implementação no Portugol Studio:

Implementação em C:

Implementação com Fluxograma


Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Exemplo 2:
Construa um programa que receba a idade de uma pessoa e informe se ele é maior de idade
ou menor de idade.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

6.3. Seleção Encadeada ou Estrutura de decisão aninhada


Ocorre quando um grande conjunto de possibilidades ou combinações de situações precisam
ser satisfeitos para que uma ação, ou bloco de ações, possa ser executado.
Em seleção encadeada as estruturas SE-SENÃO podem ser colocadas dentro de outras
estruturas de decisão, formando as mais variadas estruturas (Ex: SE-SENAO-SE; SE-SE-
SENAO-SE...etc

Exemplo 1: Escreva um algoritmo para determinar se um dado número N (recebido através do


teclado) é POSITIVO, NEGATIVO ou NULO.

Implementação em C

As estruturas de seleção aninhadas podem ser classificadas como estruturas de seleção


encadeada heterogênea e homogênea.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

6.4. Seleção encadeada Homogênea


Nas estruturas de seleção encadeada homogêneas (homo = igual + gene = forma) a
construção de diversas estruturas de seleção encadeadas seguem um determinado padrão
lógico.

6.4.1. Se-Então-Se

Ocorre em problemas em que um dado comando, ou bloco de comando, só é executado após


satisfeitas um conjunto de condições.
Por exemplo, o comando “W” só é executado se as condições (condição 1), (condição 2),
(condição 3) e (condição 4) forem verdadeiras. Esse exemplo é demonstrado essa estrutura
usando a linguagem do Portugol:

Linguagem Portugol
Se (condicao 1 ) então
Se (condicao 2 ) então
Se (condicao 3) então
Se (condicao 4) então
comando_W;
fimse
fimse
fimse
fimse

Nesse tipo de construção existe um padrão: não existe senão, e após cada então existe um outro se.
Como o comando W só é executado se todas as condições forem verdadeiras, essa estrutura pode ser
simplificada agrupando as condições utilizando o operador lógico E.

Linguagem Portugol
Se ((condicao 1 ) E (condicao 2 ) E (condicao 3) E (condicao 4) ) então
comando_W;
fimse

Teste de Mesa
SE( 1 e 1 e 1 e 0) então = FALSO → E é um operador de multiplicação V e F = F
SE( 1 e 1 e 1 e 1) então = VERDADEIRO
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Tabela de decisão para seleção encadeada homogênea (se-então-se)


Condição 1 Condição 2 Condição 3 Condição 4 Ação executada
V V V V W

V V F F Não executa W

V F F F Não executa W

… … Não executa W

Exemplo:
Construa um algoritmo que informe se uma pessoa pode votar (W) no Brasil. As condições para
que uma pessoa possa votar é que seja brasileiro, maior de 16 anos, que tenha um título de
eleitor.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

6.4.2. Se-Senão-Se ...

Ocorre em problemas onde uma variável pode assumir vários valores diferentes e para cada
valor um comando diferente é executado.
Considere que a variável “X” possa receber os valores V1, V2, V3, V4 e para cada valor,
respectivamente, serão executados os comandos C1, C2, C3 e C4. Na tabela a seguir, é
apresentada uma solução que não utiliza seleção encadeada, portanto, todas as condições
deverão ser avaliadas.

Solução Sem seleção encadeada


Se (x = V1) entao
C1
fimse
Se (x = V2) entao
C2
fimse
Se (x = V3) então
C3
fimse
Se (x = V4) então
C4
fimse

Tabela de decisão para a solução que NÃO utiliza seleção encadeada

x = V1 x = V2 x = V3 x = V4 Ação executada
V F F F C1

F V F F C2

F F V F C3

F F F V C4

Solução com Seleção encadeada


Se (x = V1) entao
C1
senao
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Se (x = V2) entao
C2
senão
Se (x = V3) entao
C3
senão
Se (x = V4) entao
C4
fimse
fimse
fimse
fimse

Tabela de decisão para a solução utilizando seleção encadeada

x = V1 x = V2 x = V3 x = V4 Ação executada
V - - - C1

F V - - C2

F F V - C3

F F F V C4

Na estrutura de seleção encadeada o número médio de execuções é reduzido, quase que pela
metade.
1. Exemplo 1: Construa um algoritmo que receba números inteiros de 1 a 5, que
representam a região de nascimento de uma pessoa. Caso o valor informado seja 1
mostre a mensagem “Nasceu na região norte”, 2 = “Nasceu na região nordeste”, 3 =
“Nasceu na região centro oeste”, 4 = “Nasceu na região sul”, 5 = “Nasceu na região
sudeste”.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

2. Exemplo 2: Elabore um algoritmo que, dada a idade de um nadador, classifique-o em uma


das seguintes categorias:
Idade Categoria
5 até 7 anos Infantil A
8 até 10 anos Infantil B
11 até 13 anos Juvenil A
14 até 17 anos Juvenil B
Maiores ou igual a 18 anos Adulto
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

6 >= 5 e 6 <=7
V e V
V

9 >= 5 e 9 <=7
V e F
F

6.5. Seleção encadeada heterogênea


(Hetero = diferente + genea = forma)
Ocorre quando não é possível identificar um padrão lógico de construção em uma estrutura de
seleção encadeada.

Sintaxe da estrutura de decisão aninhada heterogênea

Portugol Na Linguagem C
Se (condicao 1 ) entao if (condicao 1 )
Se (condicao 2 ) entao {
comando_1 if (condicao 2 )
….. {
comando_n comando_1
fimse comando_n
senão }
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Se (condicao 3) entao } else


comando_1 if (condicao 3)
….. {
comando_n comando_1
senao comando_n
Se (condicao 4) entao } else
Se (condicao 5) entao if (condicao 4)
comando_verdade {
fimse if (condicao 5)
senao {
comando_falsidade; comando_verdade
fimse }
fimse } else {
fimse comando_falsidade;
}
}
}

1. Exemplo 1: Dados três valores A, B, C, verificar se eles podem ser os comprimentos dos lados de
um triângulo e, se forem, verificar se compõem um triângulo equilátero, isósceles ou escaleno. Informar se
não compuserem nenhum triângulo.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

2. Exemplo 2:Transcreva em C o algoritmo que receba três valores, A, B e C, e armazene-os


em três variáveis com os seguintes nomes: MAIOR, INTER e MENOR (os nomes correspondem
aos valores ordenados). Escreva esses valores ordenados.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

EXERCÍCIOS:
1. Converta para a linguagem C e para o Portugol Studio, o algoritmo que lê a idade de
uma pessoa e informe a sua classe eleitoral:
 Não eleitor (abaixo de 16 anos);
 Eleitor obrigatório (entre a faixa de 18 e menor de 65 anos);
 Eleitor facultativo (de 16 até 18 anos e maior de 65 anos, inclusive).

Algoritmo “Eleitor”
Inicio
inteiro: IDADE;
escreva(“Insira a idade da pessoa..: ”);
leia(IDADE);
se ( IDADE < 16 ) então
escreva("não eleitor");
senão
se (( IDADE < 18 ) ou (IDADE >= 65))entao
escreva("eleitor facultativo");
senao
escreva("eleitor obrigatório");
fimSe
fimSe
fim.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Para pensar um pouco


 Após transcrever o código para C, execute-o 4 vezes para cada execução, insira os
seguintes valores: 17, 23, 67, 14 respectivamente. Anote os resultados;
 Explique porque para os valores 14 e 67 não foi preciso criar um teste condicional após o
último senão;

2. Construa um algoritmo em ‘C’ que dada a idade de uma pessoa, determine sua
classificação segundo a seguinte tabela:
 Maior de idade;
 Menor de idade;
 Pessoa idosa (idade superior ou igual a 65 anos).

6.6. Seleção por múltipla escolha

Toda vez que tivermos uma estrutura de seleção encadeada homogênea do tipo se-senão-se,
podemos usar uma estrutura de seleção por múltipla escolha escolha-caso, que é mais
adequada para tais situações.
Observações:
1. Em Portugol Studio multipla escolha só pode ser utilizado para casos em que a variável do
escolha, seja do tipo INTEIRO.
2. Em C, usando a estrutura switch-case, só é possível para valores do tipo INTEIRO e
CHAR. Não é possível fazer comparações utilizando operadores lógicos e relacionais.

O mesmo exemplo com seleção por múltipla escolha

1. Construa um algoritmo que receba a região de nascimento de uma pessoa, e informe se é,


1=norte, 2=nordeste, 3 = centro oeste, 4 = sul, 5= sudeste e mostre o nome da região de
nascimento.
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

Solução em C –

PARA PRATICAR:
a. Criar um algoritmo em PORTUGOL que leia um número inteiro entre 1 e 12 e escrever o
mês correspondente. Caso o usuário digite um número fora desse intervalo, deverá aparecer uma
mensagem informando que não existe mês com este número.

b. Escreva um algoritmo que leia três valores inteiros e mostre-os em ordem crescente.
Utilize para tal uma seleção encadeada;

a. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo
que calcule seu peso ideal, utilizando as seguintes fórmulas, utilizando as seguintes
fórmulas;
 Para homens (72.7 * h) -58;
 Para mulheres (62.1 * h) – 44.7;
Professor Me. Gunnar Ramos Fermino - e-mail: gunnar.ramos@unemat.br

6.7. Operador condicional Ternário em C: (?:)

exp1 ? exp2 : exp3;


 Se exp1 for diferente de zero então executa exp2
 Se exp1 == 0 então executa a exp3

Você também pode gostar