Baixe o app para aproveitar ainda mais
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.
Compartilhar