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
Download

Exercício F05 - Proposto na Aula 05