Resolução dos Exercícios

Capítulo 3
Programação e Utilização de Funções



1. Faça uma função CMparaPOL que recebe uma medida em centímetros e a devolve em polegadas, onde 1 polegada = 2,54 cm. Faça também a função inversa POLparaCM, que converte de polegadas para centímetros.

Resolução:

Function CMparaPOL(centimetro As Double) As Double
    
    ' Esta função recebe uma medida em centímetro (número real - double)
    'e a devolve em polegada (número real - double)
    
    ' Podemos declarar uma variável para guardar a nova
    'medida em polegada (embora não seja necessário)

    Dim polegada As Double
    
    ' Calculamos a medida em polegada
    polegada = centimetro * 2.54
    
    ' Por fim, retornamos a medida em polegada
    CMparaPOL = polegada
    
End Function

Function POLparaCM(polegada As Double) As Double
    
    ' Esta função recebe uma medida em polegada (número real - double)
    'e a devolve em centímetro (número real - double)

    
    Dim centimetro As Double
    
    centimetro = polegada / 2.54
    
    POLparaCM = centimetro
    
End Function



2. Considere um polinômio do segundo grau p(x) = a * x2 + b*x + c.
(a)
Escreva uma função PDEX que recebe números reais (isto é, números do tipo DOUBLE) a, b, c e x e calcula o valor de um polinômio do segundo grau. Use uma variável interna que armazena o valor de x2.
(b)
Crie uma planilha com três colunas, que avalia o polinômio p(x) = x2 - 7*x + 12 para valores de x de 0 a 10. A primeira coluna contém os valores de x, a segunda os de p(x) e a terceira escreve o texto ``Raiz'' caso p(x) seja 0; caso contrário não escreve nada.
Resolução:
(a)

Function pdex(a As Double, b As Double, c As Double, x As Double) As Double
    
    ' A nossa função PDEX recebe número reais a, b, c e x e calcula o
    'valor do polinômio do segundo grau p(x) = a*x^2 + b*x + c
    
    ' Como precisamos utilizar uma variável interna que armazena o valor
    'de x^2, iremos declará-la

    Dim quadrado As Double
    
    quadrado = x * x
    ' Uma alternativa para este calculo seria utilizar a função EXP do
    'Excel que eleva um número ao quadrado. Teríamos:
    'quadradro = EXP(x)

    
    pdex = a * quadrado + b * x + c
    
End Function

(b)

Function analisaRaiz(pdex As Double) As String
    
    ' Vamos declarar uma variável do tipo String para
    'guardar nosso texto de resposta (a palavra "Raíz ' ou nada)

    Dim resposta As String
    
    If pdex = 0 Then
        resposta = "Raíz"
    Else
        ' Como o exercício pede para não escrever nada quando o x não é raiz,
        'apenas retornaremos uma string vazia neste caso

        resposta = ""
    End If
    
    analisaRaiz = resposta
    
End Function

Há outra forma de resolver este item. Podemos simplesmente utilizar a função 'SE' já implementada no Excel. Dessa forma, bastaríamos digitar a linha abaixo em uma célula:

=SE( E3=0; "Raíz"; "")

Obs: Estou supondo que o valor de pdex está na célula E3.



3. Considere uma equação do segundo grau a * x2 + b*x + c = 0.
(a)
Escreva uma função DELTA, que recebe como parâmetros os números reais a, b e c e retorna o valor do discriminante da equação, b2 -4ac.
(b)
Crie uma planilha de 5 colunas. As três primeiras contêm os coeficientes da equação do segundo grau. A quarta contém o valor do discriminante. A quinta contém o texto:
(c)
Invente valores para as três primeiras colunas que gerem os três tipos de determinante. Insira uma sexta coluna que, no caso de discriminante nulo, calcula esta raiz única, que será igual a -b/2a.
Resolução:
(a)

Function delta(a As Double, b As Double, c As Double) As Double

    delta = b ^ 2 - 4 * a * c
    
    ' Outra forma de elevar um número ao quadrado é
    'utilizar o síbolo ^. Por exemplo: x^2

    
End Function

(b)

Function analisaDELTA(delta As Double) As String
    
    Dim resposta As String
    
    If delta = 0 Then
        resposta = "Uma única raíz"
    Else
        If delta > 0 Then
            resposta = "Duas raízes reais"
        Else
            ' Observe que o programa só executará esta linha
            'se delta < 0

            resposta = "Nenhuma raíz real"
        End If
    End If
    
    analisaDELTA = resposta
    
End Function

(c)

O cálculo da raíz pode ser feito diretamente na planilha, utilizando a função 'SE'.

[ Voltar ]