You are on page 1of 18

Prof. R. Finzi & M.

Duarte

27/11/12

SUMRIO
a. Estrutura Bsica
I. Declarao da Funo
II. Argumentos de Entrada e Sada
III. Descrio da Funo e Comentrios

b.
c.
d.
e.
f.

Variveis Globais versus Variveis Locais


Executando Funes
Funes inline
Sub-funes e Funes Privadas
Problema do lanamento oblquo.

Prof. R. Finzi & M. Duarte

27/11/12

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

a. Estrutura Bsica (cont...)

Prof. R. Finzi & M. Duarte

27/11/12

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

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

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

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

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

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

10

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

11

d. Funes inline (cont...)


Exemplos na Janela de Comandos

Vetores

Escalares

Prof. R. Finzi & M. Duarte

27/11/12

12

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

13

f. Problema do Lanamento Oblquo

Prof. R. Finzi & M. Duarte

27/11/12

14

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

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.
Prof. R. Finzi & M. Duarte

27/11/12

18

You might also like