Bruno C. de Paula Introdução à Programação usando Processing Programação Gráfica 2D Estrutura de Seleção Exercícios de Revisão Estrutura de Seleção 2º Semestre 2009 > PUCPR > Design Digital Revisão Estrutura de Seleção Simples if(condição) { Primeira instrução a ser executada; Segunda instrução a ser executada; ... } Se a condição for verdadeira, as instruções do fluxo principal são executadas; 2 Revisão Condição Condição pode ser verdadeira ou falsa; Exemplo: int peso = 100; if(peso>100) { println("Você está com 3 dígitos, Cuidado!"); } // No exemplo acima, só se o peso for maior que 100 a mensagem é exibida. 3 Revisão Estrutura de Seleção Composta if(condição) { Fluxo principal; Primeira instrução a ser executada; Segunda instrução a ser executada; } else { Fluxo alternativo; Primeira instrução a ser executada; Segunda instrução a ser executada; } Se a condição for verdadeira, as instruções do fluxo principal são executadas, caso contrário, o fluxo alternativo é executado. 4 Exercício 1 Cada um dos fragmentos de código a seguir apresenta uma estrutura de seleção; Identifique: Quais são as condições sendo testadas; Qual é o bloco principal; Qual é o bloco alternativo (se houver); Qual dos dois (principal, alternativo ou nenhum) blocos é executado. 5 Exercício 1, letra a String nome = "Admin"; if(nome=="admin") { println("Olá, Administrador!"); } Condição: Bloco principal: Bloco alternativo: Bloco executado: 6 Exercício 1, letra b String nome = "admin"; String senha = "1234"; if(nome=="admin" && senha=="1234") { println("Olá, Administrador!"); } else { println("Acesso negado!"); } Condição: Bloco principal: Bloco alternativo: Bloco executado: 7 Exercício 1, letra c bool portaAberta = true; bool janelaAberta = false; if(portaAberta || janelaAberta) { println("O alarme está tocando!"); } Condição: Bloco principal: Bloco alternativo: Bloco executado: 8 Exercício 2 O código a seguir exibe um objeto diferente conforme o valor inicial dos parâmetros da função criarFace; Indique qual é o objeto gerado a partir dos valores iniciais das variáveis; 9 Exercício 2, letra a void criarFace(int rosto, int nariz) { if(rosto==0) { rect(10,10,80,80); if(nariz==0) { rect(40,40,20,20); } else { ellipse(50,50,10,5); } } else { ellipse(50,50,90,90); } } void setup () { criarFace(0,0); } 10 Exercício 2, letra b void criarFace(int rosto, int nariz) { if(rosto==0) { rect(10,10,80,80); if(nariz==0) { rect(40,40,20,20); } else { ellipse(50,50,10,5); } } else { ellipse(50,50,90,90); } } void setup () { criarFace(0,1); } 11 Exercício 2, letra c void criarFace(int rosto, int nariz) { if(rosto==0) { rect(10,10,80,80); if(nariz==0) { rect(40,40,20,20); } else { ellipse(50,50,10,5); } } else { ellipse(50,50,90,90); } } void setup () { criarFace(1,0); } 12 Exercício 2, letra d void criarFace(int rosto, int nariz) { if(rosto==0) { rect(10,10,80,80); if(nariz==0) { rect(40,40,20,20); } else { ellipse(50,50,10,5); } } else { ellipse(50,50,90,90); } } void setup () { criarFace(1,1); } 13 Exercício 2, letra e void criarFace(int rosto, int nariz) { if(rosto==0) { rect(10,10,80,80); if(nariz==0) { rect(40,40,20,20); } else { ellipse(50,50,10,5); } } else { ellipse(50,50,90,90); } } void setup () { criarFace(2,2); } 14 Exercício 3 Baseado no código fornecido no exercício anterior, crie uma função que recebe como parâmetros: Rosto; Olhos; Óculos; Nariz; Boca; Bigode; Dependendo dos parâmetros passados, uma face diferente é construída. 15 Exercício 4 Crie a seguinte simulação: Um personagem anda da esquerda para a direita; Ao chegar no fim da tela, ele volta para o início; Uma porta, no centro da tela, se abre e se fecha de 5 em 5 segundos; Se a porta estiver fechada, o personagem não passa. Se estiver aberta, ele passa. 16