Buscar

Algoritmos de seleção

Prévia do material em texto

Algoritmos e Estruturas de Dados I
1
Algoritmos e 
Estruturas de Dados I
Algoritmos com Seleção
Profa. Márcia Cristina Moraes
Profa. Milene Selbach Silveira
Material para estudo:
Forbellone, A. e Eberspächer, H. (2005) 
� capítulo 2 (operadores relacionais e lógicos) 
� capítulo 3 (apenas estrutura de seleção)
� a sintaxe utilizada em nossos algoritmos será diferenciada 
em alguns poucos detalhes, mas a lógica é a mesma
Algoritmos com Seleção
� Um algoritmo em que se tem a execução de 
determinados passos subordinada à 
veracidade de uma condição é denominado 
de algoritmo de seleção (Orth, 2001)
� Uma seleção permite a escolha de um grupo 
de ações (bloco) a ser executado quando 
determinadas condições, representada por 
expressões lógicas ou relacionais, são ou 
não satisfeitas (Forbellone e Eberspächer, 
2005)
Algoritmos e Estruturas de Dados I
2
Seleção Simples
� se <condição> então <instrução>
� Instrução: é qualquer uma das instruções já 
vistas ou ainda a serem vistas ou uma 
seqüência de instruções. Quando existe uma 
seqüência é necessária a marcação de inicio 
e fim de bloco.
se <condição> então <instrução> se <condição> entãoinicio
<instrução1>
.....
<instruçãon>
fim
Uma única Instrução Uma seqüência de Instruções
Seleção Composta
� se <condição> então <instrução>
senão <instrução>
� Se condição verdadeira executa instrução 
relacionada a então
� Se condição falsa executa instrução 
relacionada a senão
� Quando instrução for uma seqüência, precisa 
do marcador de início e fim de bloco
Algoritmos e Estruturas de Dados I
3
Seleção Composta
se <condição> então <instrução>
senão <instrução>
Uma única Instrução
se <condição> então
Inicio
<instrução1>
.....
<instruçãon>
fim
senão
Início
<instrução1>
.....
<instruçãon>
fim
Uma seqüência de Instruções
Condição
� É uma expressão lógica, composta por relações e operadores 
lógicos
� Relações: 
� = = igual (usaremos == como em C)
� < menor
� <= menor igual
� > maior
� >= maior igual
� <> diferente
� Operadores Lógicos:
� não negação
� e produto lógico
� ou soma lógica
Algoritmos e Estruturas de Dados I
4
Condição
� Resultam em um valor lógico verdadeiro (V) 
ou falso (F)
� Exemplos
� a < 2
� (a == b)
� (a == b) e (a < 2)
� não( a > 10)
� (a > 10) ou (b < 30)
Expressões Lógicas
A não A 
V F
F V
Tem resultado verdadeiro (V) ou falso (F). É possível traduzir os resultados das 
operações através de tabelas-verdade.
Negação (não)
A B A e B
V V V
V F F
F V F
F F F
Produto Lógico (e)
A B A ou B
V V V
V F V
F V V
F F F
Soma Lógica (ou)
Algoritmos e Estruturas de Dados I
5
Condição
� Ou uma comparação de expressões 
aritméticas (relações) por meio de 
operadores relacionais (==,<,>,<=,>=,<>)
� Ou uma combinação de comparações por 
meio de operadores lógicos (não, e, ou)
Exercício 1
� Faça um algoritmo que lê um valor e verifica 
se ele é positivo escrevendo a mensagem: “É 
positivo”.
� Qual a condição para um número ser 
positivo?
Algoritmos e Estruturas de Dados I
6
Resolução do Exercício 1
Algoritmo Positivo
real: a
Início
Escreva(“Digite um número”)
Leia(a)
Se (a > 0) então Escreva(“É positivo”)
Fim
Exercício 2
� Escreva um algoritmo que verifica se um 
número é positivo e escreve a mensagem: “É 
positivo” e caso contrário escreve a 
mensagem: “Não é positivo”
Algoritmos e Estruturas de Dados I
7
Resolução do Exercício 2
Algoritmo PositivoModificado
real: a
Início
Escreva(“Digite um número”)
Leia(a)
Se (a > 0) então Escreva(“É positivo”)
senão Escreva(“Não é positivo”)
Fim
Exercício Extra
� Escrever um algoritmo que lê duas notas e o 
tipo de média desejada (média aritmética ou 
média ponderada). Se o tipo de média 
desejado for aritmética, fazer a soma das 
duas notas e dividir por 2. Se for ponderada, 
a primeira nota tem peso 4 e a segunda, 
peso 6. Escrever as notas e o resultado da 
média.
Algoritmos e Estruturas de Dados I
8
Estruturas Aninhadas
� A instrução dentro de um comando de 
seleção pode ser um outro comando de 
seleção. Quando isto ocorre tem-se as 
estruturas aninhadas (uma dentro da outra). 
se <condição> então 
se <condição> então <instrução>
senão <instrução>
senão 
se <condição> então <instrução>
Por exemplo:
Exercício 3
� Escreva um algoritmo que verifique se um 
número é positivo, negativo ou zero.
� Qual condição para positivo?
� Qual condição para negativo?
� Qual condição para zero?
Algoritmos e Estruturas de Dados I
9
Exercício 3 – Solução 1
Algoritmo PositivoModificado2
real: a
Início
Escreva(“Digite um número”)
Leia(a)
Se (a > 0) então Escreva(“É positivo”)
Se (a < 0) então Escreva(“É negativo”)
Se (a == 0) então Escreva(“É Zero”)
Fim
Exercício 3 – Solução 2
Algoritmo PositivoModificado3
real: a
Início
Escreva(“Digite um número”)
Leia(a)
Se (a > 0) então Escreva(“É positivo”)
senão Se (a < 0) então Escreva(“É negativo”)
senão Se (a == 0) então Escreva(“É Zero”)
Fim
Algoritmos e Estruturas de Dados I
10
Exercício 3 – Solução 2
Algoritmo PositivoModificado3
real: a
Início
Escreva(“Digite um número”)
Leia(a)
Se (a > 0) então Escreva(“É positivo”)
senão Se (a < 0) então Escreva(“É negativo”)
senão Se (a == 0) então Escreva(“É Zero”)
Fim
Condição pode ser retirada, pois se não é positivo nem
negativo somente pode ser zero
Exercício 3 – Solução 3
Algoritmo PositivoModificado4
real: a
Início
Escreva(“Digite um número”)
Leia(a)
Se (a > 0) então Escreva(“É positivo”)
senão Se (a < 0) então Escreva(“É negativo”)
senão Escreva(“É Zero”)
Fim
Algoritmos e Estruturas de Dados I
11
Exercício 4
� Escreva um algoritmo que leia o ano de 
nascimento de uma pessoa, calcule e mostre 
sua idade, e também verifique e mostre se 
ela já tem idade para votar (16 anos ou mais) 
e para conseguir Carteira de Habilitação (18 
anos ou mais).
Exercício 5
� Tendo como dados de entrada a altura e o 
sexo de uma pessoa, construa um 
algoritmo que calcule o seu peso ideal, 
utilizando as seguintes fórmulas.
� Para mulheres: (62.1 * altura) – 44.7
� Para homens: (72.7 * altura) – 58
Algoritmos e Estruturas de Dados I
12
Seleção Múltipla
� Quando um conjunto de valores discretos 
precisa ser testado e ações diferentes são 
associadas a esses valores, estamos diante 
de uma seleção encadeada do tipo se-
senão-se.
� Neste caso podemos utilizar uma estrutura 
específica chamada de seleção de múltipla 
escolha, que é realizada através do uso da 
instrução Escolha. 
Seleção Múltipla
Escolha <expressão aritmética>
Inicio
caso <valor1>: instrução1
caso <valor2>: instrução2
caso <valor3>: instrução3
....
caso <valorn>: instruçãon-1
caso contrário: instruçãon
Fim_Escolha
Instrução pode ser
uma única instrução ou
uma seqüência de instruções
Algoritmos e Estruturas de Dados I
13
Exercício 6
� Construa um algoritmo 
que, tendo como dados 
de entrada o preço de 
um produto e o seu 
código de origem, 
mostre o preço junto 
com a sua procedência. 
Caso o código não seja 
nenhum dos 
especificados o produto 
deve ser considerado 
importado.
Código de 
Origem
Procedência
1 Sul
2 Norte
3 ou 4 Leste
5, 6 ou 7 Nordeste
8 Sudeste
Solução do Exercício 6
Algoritmo Procedência
real: preco
inteiro: codigo
Início
Leia(preco, codigo)
Escolha codigo
Inicio
caso 1: Escreva(preco, “ – Sul”)
caso 2: Escreva(preco, “- Norte”)
caso 3, 4: Escreva(preco, “- Leste”)
caso 5, 6, 7: Escreva(preco, “- Nordeste”)
caso 8: Escreva(preco, “- Sudeste”)
caso contrário: Escreva(preco, “- Importado”)
Fim_Escolha
Fim
Algoritmos e Estruturas de Dados I
14
Exercício 7
� Escrevaum algoritmo que leia o código de 
um determinado produto e mostre a sua 
classificação. Utilize a seguinte tabela como 
referência:
Bibliografia
� Orth, Afonso Inácio. Algoritmos e Programação. 
Editora AIO. 2001.
� Forbellone, A. e Eberspacher, H. Lógica de 
Programação: A Construção de Algoritmos e 
Estruturas de Dados. Makron Books, São 
Paulo, 3ª edição. 2005.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes