Variáveis locais e variáveis globais

Produzido por Gustavo Barbosa
Ver Todos os Exercícios

Teoria

Iae ta tudo bem?

Hoje vamos conversar sobre variáveis locais e globais. No Matlab uma variável pode ser definida como global ou como local, mas o que é isso né?

Uma variável é dita local quando é definida dentro de uma função e toda variável local deixa de existir assim que a função executa seu trabalho.

Por exemplo vamos criar a seguinte função:

Ao executar a função simplesmente os valores de x e y não são armazenadas na workspace, pois essas variáveis são ditas como locais, ou seja, elas apenas existem dentro da função. A consequência disso é que não podemos criar uma saída de dados, pois não tem como chamar essas variáveis para o command window, como mostrado abaixo:

Logo, se desejamos ficar aproveitando valores das funções existentes dentro do código, precisamos de alguma ferramenta que pegue esses valores locais e os anexe na workspace, mas que função seria essa né?

Seeeem mais enrolações, essa função se chama global, ou seja, se eu desejo que uma variável local seja anexada na workspace preciso declará-la como variável global.

Você já deve estar se perguntando ‘E como eu declaro isso?’

Simples, vamos realizar o seguinte exemplo:

Vamos montar um programa que resolva a seguinte equação de segundo grau:

a x 2 + b x + c = 0

Pelo que sabemos de como resolver uma equação dessas, podemos montar o seguinte algoritmo:

Implementando o código no matlab na forma de função temos algo assim:

Primeiramente colocaríamos as entradas de dados indicando quem são as variáveis globais, que aqui no nosso caso será o delta, então temos:

g l o b a l   d e l t a    

Depois, vamos pedir a entrada de dados dos coeficientes da equação:

d i s p ( ' a   e q u a ç ã o   d o   s e g u n d o   g r a u   é   d o   t i p o   a x ^ 2 + b x + c ' ) ;

a = i n p u t ( ' d i g i t e   o   v a l o r   d e   a   = ' ) ;

b = i n p u t ( ' d i g i t e   o   v a l o r   d e   b   = ' ) ;

c = i n p u t ( ' d i g i t e   o   v a l o r   d e   c   = ' ) ;

Uma vez que colocamos a entrada de dados, vamos colocar a saída de dados do código que no nosso caso é:

r a i z = e q u a c a o _ s e g u n d o _ g r a u ( a , b , c )

f = d e l t a

Uma vez que criamos a entrada e a saída de dados vamos criar a função. Aqui vamos utilizar o delta como teste lógico para caracterizar que tipo de solução temos, pois podemos ter 3 tipos de solução.

Sendo assim a função se torna:

function x=equacao_segundo_grau(a,b,c)

global delta

delta=b^2-4*a*c

if delta>0

x(1)=(-b+sqrt(delta))/(2*a)

x(2)=(-b-sqrt(delta))/(2*a)

elseif delta==0

x(1)=-b/(2*a)

x(1)=-b/(2*a)

else

fprintf('raiz complexa não calculamos')

end

end

Podemos perceber que também declaramos as variáveis globais dentro da própria função.

Logo, sempre que tivermos um caso em que se precise declarar a variável como global, precisamos inserir a variável global tanto dentro da função quanto fora dela, ok?

E o que aconteceria se não colocássemos isso?

Olhe a estrutura do código, se você olhar direitinho vai perceber que o delta está dentro da função, ou seja, após a finalização essa variável não ia para a workspace então não era possível criar uma saída de dados ou realizar qualquer operação com esses valores fora da função, entende?

Beeeeeem hoje iremos ficar por aqui, mas não fique tristeee.

Selecionamos diversos exercícios para você treinar, então vamos lá.