18
FUNÇÕES O que são e para que servem? Dividir para conquistar! Vantagens.

FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

FUNÇÕES                              O  que  são  e              para    que  servem?  

 Dividir  para  conquistar!    Vantagens.    

Page 2: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

FUNÇÕES  PRÉ-­‐DEFINIDAS    sin;  abs;  cos;  length...  Por   exemplo,   a   função   length   calcula   um   único  valor  e  retorna  o  comprimento  do  vetor  (retorna  1  valor).    length(vec)  

>>  vec  =  1:3:10;  >>  comp  =  length(vec)  comp  =            4  

Page 3: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

FUNÇÕES  DEFINIDAS  PELO  USUÁRIO  As  funções  podem  ser  codificadas  como  subtarefas  separadas  e  cada  uma  pode  ser  testada  e  depurada  independentemente.  ! Teste  independente  das  subtarefas  ! Código  reu_lizável  ! Isolamento  de  efeitos  “colaterais”  indesejados    As   funções   fazem  a  comunicação  com  o  programa  “principal”  através  de  uma  lista  de  argumentos  de  entrada  (opcional),  e  retornam  os  resultados  para  o  programa   (script)   por   meio   de   uma   lista   de  argumentos  de  saída  (opcional).    

Page 4: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Introdução a Funções no MatLab Forma geral:

r1, r2,...: lista de argumentos de SAÍDA (retorno)

arg1, arg2,...: lista de argumentos de ENTRADA

 func_on  [r1,  r2,  ...]  =  nome_fç  (arg1,  arg2,  ...)        %  comentários        ...        Código  end  

 

Page 5: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Uma  função  é  “chamada”  u1lizando  o  seu  nome  (e  argumentos  de  entrada).  Pode  estar  em  um  arquivo  de  script.  

 Podemos  categorizar  as  funções  como:  1.   Funções  que  executam  uma  tarefa  sem  retornar  

valor  2.   Funções  que  calculam  e  retornam  UM  valor  3.   Funções  que   calculam  e   retornam  mais  do  que  

um  valor  

Page 6: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

   Para  escrever  uma  função:    File  è New  è Func/on  

 Em  seguida,  digitar  o  código  na  nova  janela.    

Salvar  o  arquivo  com  o  mesmo  nome  da  função!!    

func1on  nome_função  (    )  %  função  sem  parâmetros  e  sem  retorno      comandos  end  

Page 7: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Observe que neste caso, a função não tem parâmetros de entrada e nem de saída. Salvar com o mesmo nome da função: f1.m

func1on  f1(  )  %  função  sem  parâmetros  e  sem  retorno      fprinK('Boa  tarde!  \n');  end  

Page 8: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Em seguida, podemos testar a função: >> f1 Boa tarde!

Ou fazendo um script: (teste_f1.m)

% script para testar função f1

Observe que este script só tem a “chamada” da função. >> teste_f1 Boa tarde!

Page 9: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

fn.m script.m

Entrada  Chamada  da  função  Imprimi  resultado  

func1on  saída  =  fn  (in)        saída  =  valor  end  

Page 10: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Funções Simples (com parâmetro entrada) Ex.: File " New " Function >> f2(10) # # # # # # # # # #

func1on  f2(  x  )        %  função  com  parâmetro  e  sem  retorno          for  i=  1:x                fprinK(’  #  ');        end        fprinK(’  \n');  end  

 Faça  um  script  p/  testar  a  função.      

Page 11: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Funções Simples (com parâmetros entrada) Ex.: File " New " Function >> imprimi(3.3, 2) O primeiro nº é 3.3 e o segundo é 2.0 Obs.: a função não retorna valor.

func1on  imprimi  (  a,  b  )        %  imprimi  2  números  formatados          fprinK(’  O  primeiro  nº  é  %.1f  e  o  segundo  é  %.1f  \n’,  a,  b);  end  

 Faça  um  script  p/  testar  a  função.      

Page 12: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Ex.  2:  Calcular  média  de  2  números.                      

>>  f3(12,  3)  Média  2  números:      n1  =  12.00  n2  =  3.00  Média  =  7.50    

func1on  f3(  n1,  n2  )      %  função  com  parâmetros  e  sem  retorno          m  =  (n1  +  n2)/2.0;      fprinK(’Média  2  números:  \n');      fprinK('  n1  =  %.2f  n2  =  %.2f  \n',  n1,  n2);      fprinK(’Média  =  %.2f  \n',  m);  end  

Page 13: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Ex.  3:  Calcular   média   de   2   números.   Fazer   a   leitura   dos  números.                    >>  teste_f3  Digite  2  números  para  calcular  a  média:    Digite  1º  nº:  5.6  Digite  2º  nº:  2.5  Média  2  números:      n1  =  5.60  n2  =  2.50  Média  =  4.05          

Script  %  teste  da  função  f3  (média  2  num.)  disp('Digite  2  números  para  calcular  a  média:  ');  x1  =  input('Digite  1º  nº:  ');  x2  =  input('Digite  2º  nº:  ');  f3(x1,  x2)        %chamada  da  função.  

Page 14: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Exercícios:  1)  Elabore  uma  função  para  calcular  e  imprimir  o  perímetro  e  a   área   de   uma   circunferência,   tendo   como   parâmetro   de  entrada  o  seu  raio.  Faça  um  script  para  testar  a  função.  2)   Faça   uma   função   para   calcular   e   imprimir   a   média  aritmé1ca   dos   “n”   primeiros   números   inteiros   posi1vos,  sendo  “n”  o  parâmetro  de  entrada.  U1lize  um  script  para  ler  o  número  “n”.  3)   Implemente  uma   função  para   calcular   a  média   aritmé1ca  de   “n”   números,   sendo   “n”   o   parâmetro   de   entrada   da  função.  (Digitar  os  “n”  números  na  função).    Imprimir  a  média  ob1da.  U1lizar  script.  4)  Faça  uma  função  que  receba  2  números   inteiros  posi1vos  como   parâmetros   de   entrada   e   calcule   a   soma   e   média  aritmé1ca   dos   “n”   números   inteiros   existente   no   intervalo  (inclusive   para   os   números   de   entrada).   Imprimir   os  resultados.  U1lizar  script  para  testar  a  função.      

Page 15: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Funções com parâmetro(s) de Entrada e Retorno de um valor

func_on  arg_saída  =  nome_fç  (  arg_entrada  )        %  função  com  parâmetro  e  retorno  1  valor          comandos  end  

Page 16: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Ex.: File " New " Function Obs.: salvar o arquivo com o mesmo nome da fç: calcarea >> calcarea(4) ans = 50.2655

func1on  area  =  calcarea  (  r  )        %  calcula  a  área  de  um  círculo        %  retorna  a  área          area  =  pi  *  r  *  r;  end  

 Faça  um  script  para  testar  a  função  com  entrada  do  raio.      

Page 17: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Passando  múl_plos  argumentos  

Ex.:  calcular  o  volume  de  um  cone:  V  =  1/3  π  r2  h  

r  =  raio  da  base  circular  h  =  altura  do  cone    Implementar  função:    func_on  volume  =  conevol  (raio,  altura)  

>>  conevol(4,  6.1)  ans  =                    102.2065  

 Faça  um  script  para  testar  a  função  com  entrada  do  raio  e  altura.      

Page 18: FUNÇÕES( (((((( ((((((((Oquesãoe (((((para (que(servem ...€¦ · Introdução a Funções no MatLab Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...:

Exercício.  1)  Elabore  uma  função  para  calcular  a  distância  entre  2  pontos   em   um   sistema   de   coordenadas   cartesianas.   A  função   tem   como   parâmetros   de   entrada   as  coordenadas   (x,   y)   dos   prontos   e   deve   retornar   a  distância   calculada.   Imprimir   as   coordenadas   e   a  distância  calculada.  2)  Faça  uma  função  para  calcular  e  retornar  o  perímetro  de   uma   circunferência,   tendo   como   parâmetro   de  entrada  o  seu  raio.  Faça  um  script  para  testar  a  função  e  imprimir  o  perímetro.  3)   Implemente   uma   função   para   calcular   e   retornar   a  área   de   um   retângulo.   “Passar”   o   comprimento   e   a  largura   como   parâmetros   de   entrada   para   a   função.  U1lize  um  script  para  testar  a  função.