Elementos básicos da programação estruturada
Tem Parâmetros e Retorno
Podem ter efeitos colaterais
Anatomia de um código
Funções sem retorno
Função com retorno
Composição de funções
Armazenamento do retorno da função
Divisão de um problema complexo em pedaços menores
Reduz complexidade
Facilita a manutenção
Permite o compartilhamento de código
Técnica de refinamentos sucessivos (top down)
Também existe técnica bottom-up
Vamos chamar o pedaço associado à função de bloco de código
O Processing ajuda a localizar as chaves
são formadas por um bloco principal
podem ser chamadas a partir de seu nome
Função setup
Chamada automaticamente quando o programa inicia
Pode chamar outras funções
void setup() {
rect(10,10,80,80);
rect(30,30,60,60);
}
Se você usar a função setup todos os comandos deverão ser chamados a partir dela
Colocar comando fora do setup
Esquecer a abertura da chave
Esquecer o fechamento da chave
Declaração da função
tipo retorno nome(parametros) {
instruções;
// Opcional:
return valor;
}
Função sem parâmetros e sem retorno
void desenharCabeca() {
noFill();
ellipse(40,20,10,10);
ellipse(60,20,10,10);
ellipse(50,30, 40,40);
}
void desenharCabeca() {
noFill();
ellipse(40,20,10,10);
ellipse(60,20,10,10);
ellipse(50,30, 40,40);
}
Função com parâmetros e sem retorno
void desenharCabeca(float diametro) {
noFill();
ellipse(40,20,diametro/4,diametro/4);
ellipse(60,20,diametro/4,diametro/4);
ellipse(50,30,diametro,diametro);
}
void setup() {
desenharCabeca(60);
}
void desenharCabeca(float diametro) {
noFill();
ellipse(40,20,diametro/4,diametro/4);
ellipse(60,20,diametro/4,diametro/4);
ellipse(50,30,diametro,diametro);
}
void setup() {
desenharCabeca(60);
}
Função sem parâmetros e com retorno
color sortearCor() {
float vermelho = random(0,256);
float verde = random(0,256);
float azul = random(0,256);
color c = color(vermelho, verde, azul);
return c;
}
void setup() {
color c = sortearCor();
background(c);
}
color sortearCor() {
float vermelho = random(0,256);
float verde = random(0,256);
float azul = random(0,256);
color c = color(vermelho, verde, azul);
return c;
}
void setup() {
color c = sortearCor();
background(c);
}
Função com parâmetros e com retorno
float maiorDistancia(float x1, float y1, float x2, float y2, float x3, float y3) {
float dist1 = dist(x1,y1,x2,y2);
float dist2 = dist(x1,y1,x3,y3);
float maxDist = max(dist1,dist2);
return maxDist;
}
void setup() {
line(10,10,20,20);
line(10,10,10,50);
float maiorDistancia = maiorDistancia(10,10,
20,20,
10,50);
println("Distancia maxima:" + maiorDistancia);
}
float maiorDistancia(float x1, float y1, float x2, float y2, float x3, float y3) {
float dist1 = dist(x1,y1,x2,y2);
float dist2 = dist(x1,y1,x3,y3);
float maxDist = max(dist1,dist2);
return maxDist;
}
void setup() {
line(10,10,20,20);
line(10,10,10,50);
float maiorDistancia = maiorDistancia(10,10,
20,20,
10,50);
println("Distancia maxima:" + maiorDistancia);
}
Chamada a uma função criada
Escrever o nome da função seguido dos parâmetros
void desenharCabeca() {
noFill();
ellipse(40,20,10,10);
ellipse(60,20,10,10);
ellipse(50,30, 40,40);
}
void setup() {
desenharCabeca();
}
Boa prática de formatação de código
dois espaços na frente de cada comando
Fácil de dar manutenção
void setup() {
line(10,10,20,20);
line(10,10,10,50);
}
void setup() {
line(10,10,20,20);
line(10,10,10,50);
}
void setup() {
line(10,10,20,20);
line(10,10,10,50);
line(10,10,20,20);
}
As variáveis criadas em uma função valem apenas para esta função