Post on 07-Jul-2020
transcript
FUNÇÕES O que são e para que servem?
Dividir para conquistar! Vantagens.
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
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).
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
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
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
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
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!
fn.m script.m
Entrada Chamada da função Imprimi resultado
func1on saída = fn (in) saída = valor end
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.
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.
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
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.
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.
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
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.
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.
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.