Bruno C. de Paula Introdução à Programação usando Processing Programação Gráfica 2D Chamada a funções, variáveis e criação de funções Exercícios de Fixação 2º Semestre 2009 > PUCPR > Design Digital Revisão (ver material da disciplina, tópicos 13, 14, 15 e 16) 05/11/2015 2 Exercícios 05/11/2015 3 Exercício 01 Indique: - quantos parâmetros cada função recebe; - se possui ou não um retorno; - exemplo de chamada à função. 05/11/2015 4 a) int somaTodos(int a, int b, int c, int d) { return a+b+c+d; } 05/11/2015 5 a) Resposta Exemplo int somaTodos(int a, int b, int c, int d) { return a+b+c+d; } Parâmetros: 4 (a, b, c e d) Possui retorno; Exemplo de chamada: int x = somaTodos(1,2,3,4); 05/11/2015 6 b) void exibeMensagem(String msg) { PFont f = createFont("",30); textAlign(CENTER); textFont(f); text(msg, width/2,height/2); } 05/11/2015 7 c) void salvarESair(String arquivo) { save(arquivo); exit(); } 05/11/2015 8 d) String obterHorarioAtual() { int hora = hour(); int minuto = minute(); String horarioAtual = nf(hora,2) + ":" + nf(minuto,2); return horarioAtual; } 05/11/2015 9 Exercício 02 Execute o teste de mesa para cada um dos fragmentos de código a seguir. 05/11/2015 10 Objetivo do exercício Revisar a técnica de teste de mesa; Entender a diferença entre a definição e a chamada a uma função. 05/11/2015 11 Letra a) float c(float a, float b, float c, float d) { float x = sq(a-b); float y = sq(c-d); return x + y; } void setup() { float a = c(1,2,3,4); float b = c(a,2,a,3); float c = c(2,b,b,2); } 05/11/2015 12 Dicas sq(a) é a mesma coisa que a*a; A função setup é chamada automaticamente. 05/11/2015 13 Resposta da letra A c.a c.b c.c c.d c.x c.y setup setup setup .a .b .c 1.0 2.0 3.0 4.0 1.0 1.0 2.0 2.0 1.0 2.0 3.0 0 1.0 2.0 1.0 05/11/2015 1.0 2.0 14 Letra b) int n(int a, int b, int c) { int x = a % 2; int y = b % 3; int z = c % 4; return x + y + z; } void setup() { int a = n(1,2,3); int b = n(4,5,6); int c = n(7,8,9); int d = n(10,11,12); } 05/11/2015 15 Dica para resolver a letra b) 35 % 3 é igual a 2 – 35 dividido por 3 é igual a 11 – 3 * 11 = 33 – resto é 2. 3 % 10 é igual a 3 – 3 dividido por 10 é igual a 0 –3 * 0 = 0 – resto é 3. 05/11/2015 16 Comportamento periódico do operador % x X%3 0 0 1 1 2 2 3 0 4 1 5 2 6 0 05/11/2015 17 Exercício 03 Recrie seu robô dividindo seu código em funções. Além disso, você também deverá usar as funções vertex e curveVertex no desenho de seu robô. Use também a função javax.swing.JOptionPane.showInputDialog para perguntar algo ao usuário que influencie no desenho. Por fim, utilize a função random para determinar algum aspecto aleatório de seu robô. 05/11/2015 18