Exercícios Resolvidos de Variáveis locais e variáveis globais

Ver Teoria

Enunciado

Escreva uma função em Matlab que imprima os pontos do vértice de uma dada função de segundo grau definida por:

y x = a * x 2 + b * x + c

E a partir do valor do coeficiente a, imprima se o vértice corresponde a um ponto de máximo ou de mínimo.

Passo 1

A questão pede uma criação de uma function para se possa calcular os vértices e através da função global poder imprimir os valores dos vértices na saída de dados.

Para realização dos cálculos precisamos de algumas informações das funções de segundo grau. O delta da fórmula de Bhaskara

∆ = b 2 - 4 * a * c

As coordenadas do vértice:

y v = - ∆ 4 * a

X v = - b 2 a

Além disso, se o valor do a for menor que 0, temos um ponto de máximo no vértice, pois a concavidade é pra baixo. E se o valor de a for positivo, a concavidade da parábola é pra cima e temos um ponto de mínimo no vértice.

Mas primeiramente vamos definir quais variáveis são globais e porquê. As variáveis globais são as variáveis delta e o x. Vamos defini-las como variáveis globais porque são as variáveis da function que desejamos armazenar na nossa workspace.

E mais um detalhe, lembre-se sempre disso: a function ela sempre vai ser o último componente do seu código. Primeiramente você escreve tudo e apenas no final que coloca a function, belezinha?

O Matlab segue essa sintaxe na hora que escrever a function no meio de um código.

Passo 2

Para implementar o código começaremos com uma entrada de dados onde informa-se os coeficientes da equação de segundo grau e informando quais são as variáveis globais

g l o b a l   d e l t a   x

d i s p ( ' o   m o d e l o   d e   s e g u n d a   o r d e m   é   d a d o   p o r   y = 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   = ' ) ;

Após isso precisaremos incluir o teste lógico para informar se temos um ponto de máximo ou um ponto de mínimo:

i f   a < 0

        f p r i n t f ( ' o   Y v   é   u m   p o n t o   d e   m á x i m o ' )

e l s e

        f p r i n t f ( ' o   Y v   é   u m   p o n t o   d e   m i n i m o ' )

e n d

Uma vez que já foi implementado o teste lógico precisaremos apenas implementar a saída de dados junto com a function.

f p r i n t f ( ' o   v a l o r   d o   X v   e   Y v   s ã o   r e s p e c t i v a m e n t e   % f   e   % f \ n ' , x ( 1 ) , x ( 2 ) )

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

g l o b a l   d e l t a   x

        d e l t a = b ^ 2 - 4 * a * c ;

        x ( 1 ) = - d e l t a / ( 4 * a ) ;

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

e n d

Passo 3

Implementando tudo certinho no Matlab e executando o código podemos obter os seguintes resultados:

Resposta

Ei, a resposta está no passo a passo :)