Funções
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
+ - Cada pedaço é um
Vamos chamar o pedaço associado à função de bloco de código
+ - Definição de blocos
+ - {
+ - }
O Processing ajuda a localizar as chaves
+ - Funções
são formadas por um bloco principal
podem ser chamadas a partir de seu nome
+ - tem
Função setup
Chamada automaticamente quando o programa inicia
Pode chamar outras funções
+ - Exemplo
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
+ - Erros comuns
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);
}
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);
}
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);
}
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);
}
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
+ - endentação de código
dois espaços na frente de cada comando
+ - Bom
Legível
Fácil de dar manutenção
void setup() {
line(10,10,20,20);
line(10,10,10,50);
}
+ - Razoável
void setup() {
line(10,10,20,20);
line(10,10,10,50);
}
+ - Ruim
void setup() {
line(10,10,20,20);
line(10,10,10,50);
line(10,10,20,20);
}
+ - Formatação automática CTRL + T
As variáveis criadas em uma função valem apenas para esta função