Escolar Documentos
Profissional Documentos
Cultura Documentos
Slide Aula2
Slide Aula2
Introduo Programao
Prof. Raimundo Osvaldo Vieira
Estrutura de Seleo
So estruturas que permitem a tomada de decises em funo de condies estabelecidas e assim, o algoritmo apresenta aes alternativas. A classificao das estruturas de seleo feita de acordo com o nmero de condies que devem ser testadas para que se decida qual o caminho a ser seguido. Segundo esta classificao, tm-se dois tipos de estruturas de deciso: se escolha
Estrutura de Seleo
Estruturas do tipo se
So estruturas de controle de fluxo, que executam um ou vrios comandos se a condio testada for verdadeira e, em alguns casos, executam um ou vrios comandos se for falsa. Podem ser:
Simples Compostas
Estrutura de Seleo
Estrutura Se simples
Uma condio verificada e, caso seja verdadeira, um conjunto de comandos executado. Caso seja falsa, o fluxo de execuo continua normalmente pela primeira instruo aps o bloco. Sintaxe do Comando
se <condio> ento <bloco de comandos> fimse
Estruturas Condicionais
Exemplo: vamos modificar o algoritmo NovoSalario de modo que o funcionrio s receba aumento se o seu salrio for menor que R$ 1.000,00
Algoritmo NovoSalario Variveis salario, reajuste: Real Incio Escreva (Digite o valor do salario) Leia (salario) Se salario < 1000 entao reajuste salario * 0.10 salario salario + reajuste fimse Escreva (salario) fimalgoritmo
Esta condio verificada e se for verdadeira, o bloco ser executado. Aqui foi utilizada a mesma varivel para guardar o novo salrio. Isto possvel, mas o valor do salrio antigo ser substitudo pelo novo valor.
2 Em seguida, cada instruo ser executada pela CPU, obedecendo a ordem em que aparecem e os resultados dos testes condicionais.
O primeiro comando no interior do bloco o clculo do reajuste e seu armazenamento na varivel reajuste. Para este caso, temos: 500. * 0.10 = 50.
salario 1200. reajuste 50.
A execuo segue para a prxima instruo aps o bloco (o bloco termina com a instruo fimse). Ser mostrado, ento, o valor 1200, que est armazenado na varivel salrio.
Estrutura de Seleo
Estrutura Se composta
A condio avaliada.
Se o resultado for verdadeiro, ento o Conjunto de Comandos 1 executado. Ao trmino de sua execuo o fluxo do algoritmo prossegue pela instruo seguinte construo. Nos casos em que a condio avaliada como falsa, o Conjunto de Comandos 2 executado e, ao trmino do mesmo, o fluxo de execuo prossegue pela primeira instruo seguinte estrutura.
Estrutura de Seleo
Estrutura se composta
Sintaxe do Comando se <condio> ento
<bloco de comandos 1> senao <bloco de comandos 2> fimse
Executado quando o teste condicional for falso.
Estrutura de Seleo
Exemplo: vamos alterar o algoritmo NovoSalario para que um funcionrio receba 10% de aumento se o seu salrio for menor que 1000 e de 5% se for maior ou igual a 1000.
Estrutura de Seleo
Algoritmo NovoSalario Var salario, reajuste: Real Incio Escreva (Digite o valor do salario) Leia (salario) Se salario < 1000 entao reajuste salario * 0.10 salario salario + reajuste Seno reajuste salario * 0.05 salario salario + reajuste FimSe Escreva (salario) Fimalgoritmo
Estrutura de Seleo
Vamos testar nosso algoritmo, simulando as entradas de dados para descobrir as respectivas sadas.
Teste 01
Valor de Entrada: 600. Teste Condicional: verdadeiro Reajuste: 600. * 0.10 = 60. Salrio: 600. + 60. = 660. Sada: 660. Valor de Entrada: 2000. Teste Condicional: falso Reajuste: 2000. * 0.05 = 100. Salrio: 2000. + 100. = 2100. Sada: 2100.
Teste 02
Estrutura de Seleo
Tabela de Testes
Teste salario 600. 660. 2000. 2100. salario < 1000 V F reajuste 60. 100.
1
2
Estrutura de Seleo
Aninhamento
Um aninhamento o fato de se ter qualquer um dos tipos de construo apresentados anteriormente dentro do conjunto de comandos (comando composto) de uma outra construo.
No caso da estrutura Se o aninhamento necessrio quando temos um problema que apresenta um nmero de possibilidades de execuo superior a 2.
Estrutura de Seleo
Exemplo: um algoritmo que recebe o cdigo correspondente ao cargo de um funcionrio e seu salrio atual e mostra o valor do seu aumento, calculado com base na tabela abaixo.
Considere que sempre seja digitado um cdigo vlido
Cdigo 1 Cargo Escriturrio Percentual de Aumento 50%
2 3
Sercretria Gerente
35% 10%
Estrutura de Seleo
Algoritmo NovoSalario Var codigo: Inteiro salario, aumento: Real Incio Escreva (Digite o cdigo do funcionrio) Leia (codigo) Escreva (Digite o valor do salario) Leia (salario) se codigo = 1 entao aumento salario * 0.50 senao se codigo = 2 entao aumento salario * 0.35 senao aumento salario * 0.10 fimse fimse Escreva (aumento) fimalgoritmo
Primeira possibilidade
Estrutura de Seleo
Estrutura escolha
Este tipo de estrutura uma generalizao da estrutura Se, onde somente uma condio era avaliada e dois caminhos podiam ser seguidos. Na estrutura de deciso do tipo Escolha pode haver uma ou mais condies a serem testadas e um comando composto diferente associado a cada uma destas.
Estrutura de Seleo
Estrutura escolha
Sintaxe do Comando
escolha <expresso> Caso <rtulo 1> <bloco de comandos> Caso <rtulo 2> <bloco de comandos> ... Caso <rtulo n> <bloco de comandos> Outrocaso <bloco de comandos> fimescolha
Estrutura de Seleo
Consideraes sobre a estrutura escolha.
1. A expresso avaliada e o valor ser comparado com um dos rtulos; 2. A opo Seno opcional. 3. Os rtulos podem ser constantes caractere ou uma constante numrica inteira. 4. A estrutura muito usada em algoritmos com menus, tornando-os mais claros do que quando usamos Ses aninhados.
Estrutura de Seleo
Exemplo: um algoritmo que mostra um menu de opes, solicita dois nmeros e executa as tarefas, conforme indicaes abaixo.
1 Somar dois nmeros 2 Calcular a mdia de dois nmeros 3 Multiplicar dois nmeros
Estrutura de Seleo
Algoritmo Opes Var num1, num2, media: Real opcao: Inteiro Incio Escreva (Opes Disponveis) Escreva (1 somar) Escreva (2 calcula a mdia) Escreva (3 multiplicar) Escreva (Escolha uma Opo) Leia (opcao) Escreva (Digite o primeiro nmero) Leia (num1) Escreva (Digite o segundo nmero) Leia (num2) ...
Estruturas Condicionais
... Escolha opcao Caso 1 Escreva (A soma :, num1 + num2) Caso 2 media <- (num1 + num2)/2 Escreva (A mdia : , media) Caso 3 Escreva (O produto : , num1 * num2) Outrocaso Escreva (Opo Invlida) fimescolha Fimalgoritmo
Estrutura de Seleo
Detalhes do Algoritmo Opes
So alocados quatro espaos na memria, identificados pelas variveis declaradas no incio do algoritmo.
num1 num2 media opcao
A execuo iniciada pela exibio no monitor de vdeo do menu de opes e da ordem para que seja feita a escolha de uma delas. Em seguida, uma opo lida atravs do teclado e armazenada na memria (varivel opcao).
Estrutura de Seleo
Detalhes do Algoritmo Opes
Imaginemos que tenha sido digitada a opo 2. Assim,
num1 num2 media opcao 2
Na sequncia, mostrada a ordem para que seja inserido o primeiro nmero. Que lido em seguida e guardado na memria (varivel num1). O mesmo feito posteriormente para o segundo nmero.
Estrutura de Seleo
Detalhes do Algoritmo Opes
Imaginemos que tenha sido digitados os nmeros -8 e 10. Assim,
num1 -8 num2 10 media opcao 2
Agora, ser executado o comando escolha, tendo como parmetro para verificar os rtulo o contedo da varivel opcao. feita uma comparao com os rtulos e verificado que a opo corresponde ao rtulo 2. Por isso, sero executados os comandos ali definidos.
Estrutura de Seleo
Detalhes do Algoritmo Opes
A mdia calcula e armazenada na memria (varivel media),
num1
-8
num2
10
media
1
opcao
2
O algoritmo encerrado.
Estrutura de Seleo
O que aconteceria se fosse digitado o nmero 4 para a opo?
Seria executado o comando do Seno, ou seja, seria mostrada na tela a frase Opo Invlida e o algoritmo seria encerrado.