1 CONSTRUÇÃO DO CONCEITO DE FUNÇÃO - CTEC

Propaganda
Universidade Federal de Alagoas – UFAL
Unidade Acadêmica Centro de Tecnologia – CTEC
Introdução à Computação
NOTAS DE AULA SOBRE FUNÇÃO
por
Marllus Gustavo F. P. das Neves
Pesquisador-Bolsista DCR
Maceió, setembro de 2007
1
CONSTRUÇÃO DO CONCEITO DE FUNÇÃO
Quando estudamos funções na matemática, temos alguns termos como variável
independente e variável dependente. Assim, uma função y = f(x) = 2.π . x nos diz que para cada
valor de x que nós escolhemos f nos retorna y.
Vamos usar então a notação y=f(x) e fazer a transição da linguagem matemática para a
linguagem computacional:
Tabela 1. Construção do conceito de função em computação
Antes
x
Abscissa ou variável
independente
Agora
y
Ordenada ou variável
dependente
x
y
Argumento de entrada
Valor de retorno
Vamos agora dar um nome à função. Ao invés de f, vamos chamá-la de circunferencia (sem
acento mesmo). Desse jeito, temos uma função chamada circunferencia que tem como argumento
de entrada x e retorna y, ou seja,
y=circunferencia(x)
Se a gente trocar agora, y por c e x por r, temos
c=circunferencia(r)
Ora, isto parece familiar, pois se r for o raio de uma circunferência, c é a própria
circunferência 2.π . r. Daí, podemos imaginá-la uma função como um programa de computador que
aceita como entrada o raio e retorna c.
r
circunferencia
c
Pois é dessa forma que fazemos quando usamos funções pré-definidas no MATLAB. Por
exemplo, para calcular a raiz quadrada, m=sqrt(w)
w
sqrt
m
sqrt retorna para m a raiz quadrada do argumento de entrada w. Qual a diferença entre sqrt e
circunferencia? A primeira, já vem no MATLAB; a segunda, nos vamos criar, sendo nossa função.
Uma semelhança? As duas podem ser chamadas dentro de outro programa, ou seja, elas não deixam
de ser módulos que são chamados em outros módulos ou em um programa principal.
Universidade Federal de Alagoas – UFAL
Unidade Acadêmica Centro de Tecnologia – CTEC
Introdução à Computação
No MATLAB, função é um arquivo m ou programa que tem argumentos de entrada e
valores de retorno que dependem destes argumentos de entrada.
2
CRIAÇÃO DE FUNÇÕES NO MATLAB
Como se faz no MATLAB a criação da função circunferencia? Digite no editor de textos do
MATLAB seguinte:
Figura 1. Criando a função circunferencia.
Salve com o nome circunferencia.m. Vamos então, na janela de comandos do MATLAB
usar ou chamar esta função para calcular a circunferência de um círculo de raio igual a 2 e jogar o
valor de retorno na variável p (Figura 2).
Figura 2. Chamando a função circunferencia pela primeira vez na janela de comandos.
O que aconteceu?
A janela de comandos do MATLAB é “cega” em relação à função, ou seja, a janela de
comandos não vê o que ocorre dentro da função.
Todas as variáveis criadas dentro de uma função só podem ser usadas na própria função.
Elas não existem fora deste contexto. Dessa forma, quando chamamos a função circunferencia, o
MATLAB toma uma cópia do valor 2 e coloca este valor no endereço de memória da variável r da
função. O MATLAB não toca, não mexe no endereço que reservamos para o valor 2. Assim, ele
preserva o valor 2.
Dentro da função circunferência, há um cálculo (Figura 1). O resultado deste vai para o
endereço de memória da variável c. Contudo, novamente, a janela de comandos do MATLAB é
“cega” para a variável c. Assim, a cópia de c é colocada no endereço da variável p. Essa variável p é
vista pela janela de comandos.
Vamos usar novamente a função circunferencia. Observe a Figura 3; o resultado será o
mesmo, pois será feita uma cópia do valor da variável raio e colocada na variável r. Assim, o
MATLAB não altera o valor que está no endereço de memória reservado para a variável raio. Por
exemplo, se por algum motivo, o valor copiado para r mudasse, dentro da função, para 4,5, o
mesmo não ocorreria em raio; o valor de raio estaria preservado.
Universidade Federal de Alagoas – UFAL
Unidade Acadêmica Centro de Tecnologia – CTEC
Introdução à Computação
Figura 3. Novo uso da função circunferencia na janela de comandos.
De maneira geral, para se criar uma função deve-se seguir o modelo abaixo. Lembrar que
isto é feito dentro de um arquivo m.
function [vr1, ..., vrn] = nome (ae1, ae2, ..., aen)
onde:
function é a palavra-chave (obrigatória);
vr1, ..., vrn são os valores de retorno (opicionais);
nome é o nome que damos à função (obrigatório);
ae1, ..., aen são os argumentos de entrada (opcionais).
Quando criamos a função, damos um nome, como foi o caso de circunferencia. Ao salvar o
arquivo m da função, devemos fazer isto com o mesmo nome, como foi o caso da função
circunferencia.
Uma função pode ter um ou mais valores de retorno. Se houver um, não é necessária a
presença de colchetes. Por exemplo, function c = circunferencia (r).
O exemplo a seguir cria uma função que calcula a área e o perímetro de um triângulo
retângulo, dados a base e a altura. Perceba a presença dos colchetes.
Figura 4. Criando a função triret.
Usando a função triret na janela de comandos, para um triângulo de base 2 e altura também
2, o resultado fica como mostrado na Figura 5.
Universidade Federal de Alagoas – UFAL
Unidade Acadêmica Centro de Tecnologia – CTEC
Introdução à Computação
Se, por um acaso, colocamos uma
só variável de retorno, esta receberá o
valor da área como mostra a Figura 6
com a variável chamada variavel.
Se não colocarmos nenhuma, o
MATLAB cria a variável ans e esta
receberá o valor da área como mostra a
mesma Figura 6.
Figura 5. Chamando a função triret pela primeira vez na janela de comandos.
Figura 6. Chamando a função triret de diferentes maneiras na janela de comandos.
3
USANDO FUNÇÕES DENTRO DE OUTROS PROGRAMAS
Como estamos falando de técnicas de modularização, vamos mostrar agora o uso da função
triret dentro de outro programa. Esta é, na verdade, a maior utilidade de se estudar função. No
contexto da Engenharia, estamos constantemente criando funções para serem utilizadas em outros
programas.
O exemplo a seguir mostra um programa chamado testetriret, salvo como arquivo
testetriret.m. Ele solicita ao usuário a base e a altura e chama a função triret. Os valores de retorno
são alocados nas variáveis area e perimetro.
Figura 7. Criando um programa que chame a função triret.
A execução na janela de comandos fica:
Universidade Federal de Alagoas – UFAL
Unidade Acadêmica Centro de Tecnologia – CTEC
Introdução à Computação
Figura 8. Usando o programa testetriret.
Download