Post on 10-Jan-2016
description
Prof. R. Finzi & M. Duarte
27/11/12 1
Prof. R. Finzi & M. Duarte
27/11/12 2
SUMRIO a. Estrutura Bsica I. Declarao da Funo II. Argumentos de Entrada e Sada III. Descrio da Funo e Comentrios
b. Variveis Globais versus Variveis Locais c. Executando Funes d. Funes inline e. Sub-funes e Funes Privadas f. Problema do lanamento oblquo.
Prof. R. Finzi & M. Duarte
27/11/12 3
a. Estrutura bsica um tipo especial de arquivo M que modulariza um bloco de cdigo
sendo executado em um Workspace diferente, ou seja, o espao de memria exclusivo para a funo.
Diferentemente de um script, a funo pode receber uma lista de argumentos e retornar outra lista de valores para o Workspace do MATLAB.
A seguir, temos as caractersticas de estruturao de funes no MATLAB.
Prof. R. Finzi & M. Duarte
27/11/12 4
a. Estrutura Bsica (cont...)
Prof. R. Finzi & M. Duarte
27/11/12 5
a. Estrutura Bsica (cont...) I. Declarao da funo Deve ser feita sempre na primeira linha do arquivo M. Define o
nome e a lista de argumentos de entrada e sada.
O editor/depurador do MATLAB sensvel ao contexto e ir colocar as palavras reservadas na cor azul.
Jamais use nomes de funes e variveis pr-definidas na declarao da funo.
Prof. R. Finzi & M. Duarte
27/11/12 6
a. Estrutura Bsica (cont...) II. Argumentos de Entrada/Sada Essa a forma de comunicao de dados entre a funo e o
Worksapce do MATLAB. Em geral, toda funo ter pelo menos um argumento de entrada.
Os argumentos podem ter q u a l q u e r dimensionalidade porm, o cdigo interno da funo deve prever apenas as dimenses de clculos p r e v i a m e n t e estabelecidas.
Veja exemplos de arranjos de parmetros de funes:
Prof. R. Finzi & M. Duarte
27/11/12 7
a. Estrutura Bsica (cont...) III.Descrio da Funo e Comentrios A primeira linha de comentrios, linha H1, apresenta a descrio
rpida do objetivo funcional da funo. Mesmo no sendo obrigatria, sua incluso necessria para melhorar a inteligibilidade da funo.
O comando lookfor usa as palavras da linha H1 para retornar seu resultados de busca por palavras chaves. necessrio que o arquivo M da funo esteja no search path do MATLAB para que ela faa parte dos resultados da busca.
As outras linhas de comentrios, que sucedem a H1, contm a descrio dos argumentos de entrada e sada. O comando help pode ser usado para obter essas descries na Janela de Comandos. Exemplo: >> help mean
Prof. R. Finzi & M. Duarte
27/11/12 8
b. Variveis Locais versus Variveis Globais As variveis de funes so locais, o que implica dizer que elas
pertencem a um Workspace separado. Esse Workspace privado construdo, cada vez que a funo chamada no prompt de comando, e destrudo quando a funo finalilzada.
Apesar dessa caracterstica privada das variveis de uma funo, possvel definir a visibilidade de uma varivel para alm do domnio da funo.
O comando acima informa que a varivel ter visibilidade externa ao cdigo da funo. Ela poder ter sido criada tanto dentro quanto fora do corpo da funo e quaisquer alteraes, feitas tanto dentro quanto fora da funo, sero visveis em qualquer lugar.
Se vrias funes fizerem uso dessa varivel global, todas devero declara-la em seu corpo usando o comando global. Use letras maisculas no nome dessas variveis para diferencia-las. Exemplo:
Prof. R. Finzi & M. Duarte
27/11/12 9
c. Executando Funes Ex1: distncia entre dois pontos no plano
Mude o diretrio corrente para o local onde voc salvou a funo.
Teste os comandos help e lookfor.
Execute a funo para os pontos (1,1) e (4,5).
Prof. R. Finzi & M. Duarte
27/11/12 10
c. Executando Funes Ex2: converso entre coordenadas cartesianas e polares.
Salve a funo e execute uma chamada para as coordenadas (4,3).
Prof. R. Finzi & M. Duarte
27/11/12 11
d. Funes inline Maneira simples de se declarar uma funo matemtica menos
complexa e usa-la no corpo de um script ou outra funo. A declarao feita em uma nica linha.
Existem duas formas de declarao. A primeira usada para funes com um nico argumento de entrada.
A segunda prev vrios argumentos de entrada, cuja ordem definida na declarao.
Funes inline s retornam um nico argumento (escalar, matricial, etc).
Prof. R. Finzi & M. Duarte
27/11/12 12
d. Funes inline (cont...) Exemplos na Janela de Comandos Escalares
Vetores
Prof. R. Finzi & M. Duarte
27/11/12 13
e. Sub-funes e Funes Privadas possvel declarar duas ou mais funes em um mesmo arquivo
M. Neste caso, a primeira ser a funo acessvel e as demais sero privadas, acessveis somente pela primeira funo do arquivo. Exemplo: implemente o cdigo abaixo.
- Apenas a funo mystats estar acessvel. Faa testes.
- Tambm possvel criar funes privadas em arquivos individuais. Basta armazenar os arquivos dessas funes um um subdiretrio com o nome de private. Esse diretrio deve estar contido no mesmo dietrio do arquivo da funo que chamar as funes privadas.
Prof. R. Finzi & M. Duarte
27/11/12 14
f. Problema do Lanamento Oblquo
Prof. R. Finzi & M. Duarte
27/11/12 15
Prof. R. Finzi & M. Duarte
27/11/12 16
Prof. R. Finzi & M. Duarte
27/11/12 17
Prof. R. Finzi & M. Duarte
27/11/12 18
RESOLVER TODOS OS EXERCCIOS PROPOSTOS:
Cap 05 CHAPMAN, S. J. Programao em MATLAB para engenheiros. Traduo tcnica de Flvio Soares Correa da Silva. So Paulo: Pioneira Thomson Learning, 2003.
Cap 06 Amos, G. MATLAB com aplicaes em Engenharia. Traduo de Glayson Eduardo de Figueiredo. 2a Ed. Porto Alegre. Bookman, 2006.