Slide Aula2

Embed Size (px)

Citation preview

  • Introduo Programao Prof. Raimundo Osvaldo VieiraInstituto Federal de Educao, Cincia e Tecnologia do MaranhoDiretoria de Educao DistnciaUniversidade Aberta do Brasil

  • Unidade 02Estruturas de Seleo

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoSo 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:seescolha

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoEstruturas do tipo seSo 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:SimplesCompostas

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoEstrutura Se simplesUma 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 Comandose ento fimse

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estruturas CondicionaisExemplo: vamos modificar o algoritmo NovoSalario de modo que o funcionrio s receba aumento se o seu salrio for menor que R$ 1.000,00Algoritmo NovoSalarioVariveis salario, reajuste: RealIncio Escreva (Digite o valor do salario) Leia (salario) Se salario < 1000 entao reajuste salario * 0.10 salario salario + reajuste fimse Escreva (salario)fimalgoritmoEsta 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:

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

    salarioreajuste

    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.

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

    salario1200.reajuste50.

    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.

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

    salario550.reajuste50.

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Outro teste com o Algoritmo NovoSalarioPodemos 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.

    Consideremos que tenha sido digitado o valor 1200.

    salarioReajuste

    salario1200.Reajuste

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Outro teste com o Algoritmo NovoSalarioA 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 SeleoEstrutura Se compostaA 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 SeleoEstrutura se compostaSintaxe do Comandose ento

    senao

    fimseExecutado quando o teste condicional for verdadeiro.Executado quando o teste condicional for falso.

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoExemplo: 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 SeleoAlgoritmo NovoSalarioVar salario, reajuste: RealIncio 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 SeleoVamos testar nosso algoritmo, simulando as entradas de dados para descobrir as respectivas sadas.Teste 01Valor de Entrada: 600.Teste Condicional: verdadeiroReajuste: 600. * 0.10 = 60.Salrio: 600. + 60. = 660.Sada: 660.Teste 02Valor de Entrada: 2000.Teste Condicional: falsoReajuste: 2000. * 0.05 = 100.Salrio: 2000. + 100. = 2100.Sada: 2100.Estes testes podem ser resumidos numa tabela.

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoTabela de Testes

    Testesalariosalario < 1000reajuste1600.V60.660.22000.F100.2100.

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoAninhamentoUm 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 SeleoExemplo: 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

    CdigoCargoPercentual de Aumento1Escriturrio50%2Sercretria35%3Gerente10%

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoAlgoritmo NovoSalarioVar codigo: Inteiro salario, aumento: RealIncio 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)fimalgoritmoPrimeira possibilidadeComo ainda sobraram duas possibilidades, inserimos um outro Se dentro da estrutura.

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoEstrutura escolhaEste 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 SeleoEstrutura escolhaSintaxe do Comandoescolha Caso Caso ... Caso Outrocaso fimescolha

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoConsideraes sobre a estrutura escolha.A expresso avaliada e o valor ser comparado com um dos rtulos;A opo Seno opcional.Os rtulos podem ser constantes caractere ou uma constante numrica inteira.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 SeleoExemplo: um algoritmo que mostra um menu de opes, solicita dois nmeros e executa as tarefas, conforme indicaes abaixo.1 Somar dois nmeros2 Calcular a mdia de dois nmeros3 Multiplicar dois nmeros

    Introduo Programao| Prof. Esp. Raimundo Osvaldo Vieira

    Estrutura de SeleoAlgoritmo OpesVar num1, num2, media: Real opcao: InteiroIncio 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