Você está na página 1de 33

Instituto Federal de Educao, Cincia e Tecnologia do Maranho Diretoria de Educao Distncia Universidade Aberta do Brasil

Introduo Programao
Prof. Raimundo Osvaldo Vieira

Unidade 02 Estruturas de Seleo

Introduo Programao| Prof. Esp. 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

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

Como este algoritmo seria executado pelo Computador?


Vamos testar o nosso algoritmo, simulando sua execuo pelo computador.
1 Inicialmente, so alocados espaos na memria para guardar os dados. Esses espaos so representados pelas variveis. Assim, representamos a memria como:
salario reajuste

2 Em seguida, cada instruo ser executada pela CPU, obedecendo a ordem em que aparecem e os resultados dos testes condicionais.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

Como esse algoritmo seria executado pelo computador?


A execuo iniciada pela primeira linha, tendo como resultado a exibio (no monitor de vdeo) da frase Digite o valor do salrio. Em seguida, o algoritmo aguarda que seja digitado um valor. Aps esse valor ter sido digitado, ele guardado na memria e seu endereo ser representado pela varivel salario.
Vamos supor que tenha sido digitado o valor 500.
salario 500. reajuste

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

Como esse algoritmo seria executado pelo computador?


Na sequncia, feito o teste explicitado na estrutura condicional.
Considerando o valor digitado, o resultado deste teste verdadeiro (1000 < 500). Por isso, os comandos do bloco sero executados.

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

Como esse algoritmo seria executado pelo computador?


Em seguida, esse valor adicionado ao salrio e o novo valor armazenado na memria, substituindo o valor anteriormente guardado na varivel salario.
Para a situao considerada, temos: 500. + 50. = 550.
salario 550. reajuste 50.

Por fim, o valor armazenado na varivel salario mostrado ao usurio.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

Outro teste com o Algoritmo NovoSalario


Podemos realizar outros testes, simulando os valores digitados e verificando a sada para cada um dos valores de entrada.
Mais uma vez, devemos representar as variveis na memria e simulamos a execuo de cada uma das instrues.
salario Reajuste

Consideremos que tenha sido digitado o valor 1200.


salario 1200. Reajuste

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

Outro teste com o Algoritmo NovoSalario


A prxima instruo o teste condicional.
Neste caso, o teste falso, pois 1200 no menor que 1000. Com isso, o bloco no ser executado.

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Executado quando o teste condicional for verdadeiro.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Estes testes podem ser resumidos numa tabela.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

Estrutura de Seleo
Tabela de Testes
Teste salario 600. 660. 2000. 2100. salario < 1000 V F reajuste 60. 100.

1
2

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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%

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Como ainda sobraram duas possibilidades, inserimos um outro Se dentro da estrutura.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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) ...

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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).

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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 contedo da varivel media mostrado e termina a execuo do bloco Escolha.

O algoritmo encerrado.

Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

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.

Você também pode gostar