03 - Estruturas de Decisão.pdf

download 03 - Estruturas de Decisão.pdf

of 32

Transcript of 03 - Estruturas de Decisão.pdf

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    1/32

    Universidade Federal da Paraba

    Centro de Informtica

    Introduo Programao

    Prof. Bruno Jefferson

    [email protected]

    1Bruno Jefferson (2015)

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    2/32

    Roteiro Estrutura sequencial

    Estruturas de deciso Deciso Simples

    Deciso Composta

    Exerccios

    Bruno Jefferson (2015) 2

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    3/32

    Estruturas bsicas Na construo de algoritmos, existem

    basicamente trs tipos de estruturas decontrole:

    Estrutura sequencial.

    Estrutura de deciso.

    Estrutura de repetio.

    Bruno Jefferson (2015) 3

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    4/32

    Fluxo de execuo Est relacionado com a ordem e o

    nmero de vezes com que as instruesde um programa so executadas.

    O fluxo natural de execuo seguido se todas as instrues doprograma so executadas exatamente

    uma vez.

    Bruno Jefferson (2015) 4

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    5/32

    Estrutura sequencial Em um algoritmo, os comandos devero

    ser executados numa sequncia linear,seguindo a direo de cima para baixo eda esquerda para a direita.

    Linguagem Algortmica

    incio

    comando-1

    comando-2

    ...

    comando-n

    fim

    algoritmo ADICAO

    real A,B,SOMA

    leia(A,B)

    SOMA

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    6/32

    Estruturas de deciso Deciso simples

    Quando se deseja executar um comando ou uma

    sequncia de comandos caso uma determinadacondio seja verdadeira.

    Linguagem Algortmica Fluxograma

    se condio entocomando-1comando-2

    . . .comando-nfim-se

    Bruno Jefferson (2015) 6

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    7/32

    Deciso simples Exemplo

    Algoritmo para ler da entrada padro trs notas, calcular

    sua mdia e exibir na tela a palavra Aprovado, caso oaluno tenha uma mdia maior ou igual a sete.

    algoritmo CALCULA_MEDIA_NOTAS

    real media, n1, n2, n3string situacao

    leia(n1, n2, n3)

    media (n1 + n2 + n3) / 3

    se (media 7) ento

    situacao "Aprovado

    escreva(situacao)

    fim-se

    fim-algoritmo

    Bruno Jefferson (2015) 7

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    8/32

    Estrutura sequencialExerccios1. Determine os valore finais de A, B e C aps a execuo do

    trecho do algoritmo abaixo:

    2. A ordem das atribuies importante? A

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    9/32

    Estrutura de deciso Deciso composta

    Utilizada quando se deseja executar um entredois ou mais blocos de comandos, conformeo resultado da avaliao de uma condio.

    Bruno Jefferson (2015) 9

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    10/32

    Estrutura de deciso Deciso composta

    Linguagem Algortmica Fluxograma

    se (condio) entocomando-A1

    comando-A2...comando-An

    senocomando-B1

    comando-B2...comando-Bn

    fim-se

    Bruno Jefferson (2015) 10

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    11/32

    Expresses Lgicas Quadro resumo

    Expresso 1 Operador Expresso 2 Resultado

    V V V

    F F

    F F F

    V ou V V

    V ou F V

    F ou F F

    - no V F

    - no F VBruno Jefferson (2015) 11

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    12/32

    Deciso composta Exemplo

    Faa um algoritmo que leia o peso de umapessoa com altura mediana e exiba na tela sua

    situao de acordo com o quadro abaixo:

    Bruno Jefferson (2015) 12

    Peso Situao

    > 80 Voc est acima do peso.

    >70 e

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    13/32

    Deciso composta Soluo

    algoritmo analisa_pesoreal peso

    leia(peso)

    se (peso > 80) ento

    escreva("Voc est acima do peso.)escreva("Faa atividades fsicas)

    senose (peso > 70 e peso

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    14/32

    Estrutura de decisoExerccios1. Verificar se um nmero menor, igual ou maior que

    zero.2. Escreva um algoritmo que leia dois nmeros e exiba-osem ordem crescente.

    3. Escreva um algoritmo que determine o grau de

    obesidade de uma pessoa, sendo fornecido o peso e aaltura da pessoa. O grau de obesidade determinado pelondice da massa corprea (IMC = Peso /Altura ) atravs databela abaixo:

    Bruno Jefferson (2015) 14

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    15/32

    Estruturas de Deciso em C Comando if-else

    se (condio) entoinstruo 1

    instruo 2

    (...)

    seno

    instruo 3instruo 4

    (...)

    fim-se

    No h a necessidade do uso das chaves { } quando existeapenas uma instruo no corpo do if-else.

    Obs.: Em C as instrues devem ser terminadas com

    ponto e vrgula (;).

    if (condio) {instruo 1;

    instruo 2;

    (...)

    } else {

    instruo 3;instruo 4;

    (...)

    }

    Bruno Jefferson (2015) 15

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    16/32

    Expresses Lgicas Expresses lgicas em C

    Expresso 1 Operador Expresso 2 Resultado

    V V V

    && F F

    F && F F

    V || V V

    V || F V

    F || F F

    - ! V F

    - ! F V

    Bruno Jefferson (2015) 16

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    17/32

    Acompanhamento da execuo do

    programas Exemplo

    Considere o seguinte algoritmo onde i1, i2, i3, i4 e i5

    representam instrues:

    a) Instrues executadas quando b1 = V, b2 = V eb3 = F?

    b) Instrues executadas quando b1 = F, b2 = V eb3 = F?

    Respostasa) I1 e i5

    b) i3, i4 e i5

    Bruno Jefferson (2015) 17

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    18/32

    Acompanhamento da execuo do

    programas Exemplo

    #include

    int main() {

    int x = 1, y = -10, z; // I1

    if (x > 0)

    if (y > 0)z = x + y; // I2

    else

    z = x y; // I3

    else

    if (y < 5)

    z = x * y; // I4

    else

    z = x / y; // I5

    return 0;

    }

    Instruo x y z

    I1 1 -10 -

    I2 - - -

    I3 1 -10 11

    I4 - - -

    I5 - - -

    Bruno Jefferson (2015) 18

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    19/32

    Comando if-else Exerccio Resolvido 1

    Escreva um programa que leia a mdia de umaluno e escreva na tela a sua situao de

    acordo com quadro abaixo:

    Mdia Situao

    >= 7.0 Aprovado

    >=4.0 e < 7.0 Final

    < 4.0 Reprovado

    Bruno Jefferson (2015) 19

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    20/32

    Comando if-else Exerccio Resolvido 1(Esboo da

    Soluo) Entrada de dados Mdia do aluno

    Processamento Estruturas de Controle

    if-else

    Sada de dados Situao: Aprovado, Final ou Reprovado.

    Bruno Jefferson (2015) 20

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    21/32

    Comando if-else Exerccio Resolvido I (Soluo)

    #include

    int main() {

    float media;

    printf("Informe a media do aluno: ");

    scanf("%f", &media);

    if (media >= 7){

    printf("O aluno esta' aprovado.");

    } else {

    if (media >= 4) {

    printf("O aluno esta' na final.");

    } else {printf("O aluno esta' reprovado.");

    }

    }

    return 0;

    }

    Bruno Jefferson (2015) 21

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    22/32

    escolha (varivel) {

    caso VALOR1:

    instruao1

    instruo2caso VALOR2:

    instruao3

    instruo4

    padro:

    instruao5instruo6

    }

    Estruturas de Deciso em C Comando switch-case

    switch (varivel) {

    case VALOR1:

    instruao1;

    instruo2;

    break;

    case VALOR2:

    instruao3;

    instruo4;

    break;

    default:

    instruao5;

    instruo6;

    break;

    }

    deve

    ser do tipo int

    ou char.

    Bruno Jefferson (2015) 22

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    23/32

    Comando switch-case Exerccios Resolvido II

    Elabore um programa que leia o nmero decampeonatos brasileiros de 1 (um) a 4

    (quatro) que seu time de futebol ganhou e

    depois exiba sua classificao correspondente(1= campeo, 2=bicampeo, ...,

    4=tetracampeo). Caso um valor fora do

    intervalo de 1 a 4 seja digitado, deve serexibida uma mensagem informando que o

    valor invlido.

    Bruno Jefferson (2015) 23

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    24/32

    Comando switch-case Exerccio Resolvido1I (Esboo da

    Soluo) Entrada de dados Inteiro de 1 a 4

    Processamento Estruturas de Controle

    switch (inteiro) case

    Sada de dados Classificao do time

    Bruno Jefferson (2015) 24

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    25/32

    #include

    int main() {

    int quant; // quantidade de titulos

    printf("Digite um numero de 1 a 4: ");

    scanf("%d", &quant);

    switch (quant) {

    case 1:

    printf(Campeao");

    break;

    case 2:

    printf(Bicampeao");

    break;

    case 3:

    printf(Tricampeao");

    break;

    case 4:

    printf(Tetracampeao");

    break;

    default:

    printf("Numero fora do intervalo permitido.");break;

    }

    return 0;

    }

    SO

    LUO

    Bruno Jefferson (2015) 25

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    26/32

    Exerccio 1Considere o seguinte algoritmo onde i1, i2, i3, i4 e i5representam instrues:

    a) Que instrues sero executadas quando b1 = F, b2 = V e b3 = V?

    b) Que valores b1, b2 e b3 devem assumir para que apenas i5 seja

    executada?

    leia(b1, b2, b3);

    se b1 ento i1;seno

    se b2 ento

    se b3 ento

    i2;

    senoi3;

    i4;

    fim-se

    fim-se

    fim-sei5;

    Bruno Jefferson (2015) 26

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    27/32

    Exerccio IIEscreva um algoritmo que leia um nmero

    inteiro e imprima se esse nmero par oumpar.

    Bruno Jefferson (2015) 27

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    28/32

    Exerccio IIIEscreva um programa em C que troque o

    valor de duas variveis inteiras. Sugesto: Pense na soluo que voc usaria

    para trocar um lquido de um copo para

    outro.

    Bruno Jefferson (2015) 28

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    29/32

    Exerccio IVEscreva um algoritmo que receba o valor dosalrio bruto, calcule e apresente o valor dedesconto do INSS e o valor do salrio lquido(o salrio bruto descontado do INSS),considerando que:

    Para um salrio de at R$ 420, o desconto deINSS de 8%;

    Para um salrio de at R$ 420 at R$ 1350, o

    desconto de INSS de 9%; Para um salrio acima de R$ 1350,00, o desconto

    de INSS de 10%;

    Bruno Jefferson (2015) 29

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    30/32

    Exerccio VEscreva um programa em C que receba as 3 notas obtidas

    por um aluno, calcule a mdia aritmtica de

    aproveitamento e apresente o conceito e a situao doaluno (APROVADO ou REPROVADO). O aluno

    considerado APROVADO se tiver conceito A, B ou C eREPROVADO, caso obtenha conceitos D e E. A atribuiode conceitos obedece tabela abaixo:

    Bruno Jefferson (2015) 30

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    31/32

    Exerccio VIElabore um programa em C que leia um

    nmero de 1 (um) a 12 (doze) e depoisexiba o ms correspondente (1= janeiro,

    2=fevereiro, ..., 12=dezembro). Caso um

    valor fora do intervalo de 1 a 12 sejadigitado, deve ser exibida uma mensagem

    informando que o valor invlido. Obs.:Utilize o comando switch.

    Bruno Jefferson (2015) 31

  • 7/23/2019 03 - Estruturas de Deciso.pdf

    32/32

    Referncias ASCENCIO, A. F. G., CAMPOS, E. A. V.;

    Fundamentos da Programao deComputadores, 3. Ed., So Paulo: Pearson,

    2012.

    Schildt, H; C Completo e Total. MakronBooks. 1997.

    Oliveira, U.; Programando em C -

    Fundamentos. Volume I. Editora Cincia

    Moderna. 2008.

    Bruno Jefferson (2015) 32