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