Você está na página 1de 11

Ministério da Educação

Universidade Tecnológica Federal do Paraná


Departamento Acadêmico de Matemática
Disciplina: Cálculo Numérico
ProfªAngelaOlandoski Barboza
Aula de Laboratório nº 1
Método da Posição Falsa para encontrar
raízes de funções com uma variável

Objetivo:
Nesta aula vamos desenvolver um aplicativo computacional usando Visual Basic for
application (VBA) do Excel 2007 para resolver o algoritmo do Método da Posição Falsa.

1) Inicie o aplicativo Microsoft Excel 2007. Você verá a tela à seguir. Se você ainda
não está visualizando a guia “Desenvolvedor”, terá que habilitá-la para poder
acessar o VBA;

2) Pressione o ícone no canto esquerdo superior da janela do Excel. Você verá


a caixa de diálogo a seguir.
3) Pressione o botão “Opções do Excel” e você terá a nova caixa de diálogo a seguir.

4) Dê um clique na opção “Mostrar guia Desenvolvedor na Faixa de Opções” e


pressione o botão “OK”. Você então poderá observar a guia do desenvolvedor na
barra de menus como mostra a figura a seguir.

5) Clique na guia “Desenvolvedor”. Você poderá visualizar as opções do


desenvolvedor.
6) Para que você não tenha problemas em abrir pastas que contenham programas
desenvolvidos em VBA, você terá que alterar a opção de segurança de macro.
Pressione então o ícone . Você terá a seguinte caixa de diálogo.

7) Escolha a opção “Habilitar todas as macros” e clique em “OK”.

8) Feche o aplicativo Excel 2007 para que sua configuração seja aceita e em seguida
abra novamente o Excel. Em seguida, clique na guia “Desenvolvedor”.

9) Para abrir o VBA, pressione o ícone . Você veráa janela do VBA mostrada na
figura a seguir.
10) Na janela do Microsoft Visual Basic, no menu Inserir, escolha UserForm, conforme
indica a figura;

11) A próxima tela encontrada é a mostrada na seguinte figura com indicação dos
objetos rótulo, caixa de texto e botão de comando;
Label ou
Rótulo

Command Button ou
Botão de Comando

TextBox ou
Caixa de Texto

12) Vamos inserir 6rótulos (Label), 6 caixas de texto (TextBox) e dois botões de
comando (CommandButton).As caixas são para os dados de entrada: função a, b,
TOL eN0 e para o dado de saída p. Estas caixas e os botões, serão inseridos na
janela UserForm1. Para fazer a inserção de um rótulo, posicione o cursor do mouse
sobre o rótulo, indicado na figura acima, clique no botão esquerdo do mouse e
arraste para a janela do Form e então solte o botão do mouse. O procedimento é
igual para a inserção de caixas de texto e botões de comando. Quando inserimos o
primeiro rótulo, podemos observar que dentro do mesmo vem escrito “Label1”.
Para trocar o que vem escrito, usamos a janela Propriedades (Properties). Na linha
onde temos a propriedade “Caption”, escrevemos na linha ao lado direito o que
desejarmos. Quando você desejar fazer alteração de propriedades de algum
objeto (Rótulo, Caixa de Texto, Botões, etc.) em primeiro lugar clique com o
mouse sobre este objeto para marcá-lo. Nos seis rótulos, escreveremos
“Função”,“a”, “b”, “TOL”, “N0” e “p”, respectivamente. As caixas de texto, por
enquanto, deverão ser deixadas em branco.Para os botões o processo é semelhante.
Tente deixar o UserForm1 como mostra a figura.
13) Para mudar o nome“UserForm1” para “Método da Posição Falsa”, clique na parte
azul do UserForm1, em seguida clique na propriedade “Caption” na janela
“Properties” eentão faça a alteração. Seu UserForm deverá estar semelhante ao
mostrado na figura a seguir. A interface com o usuário é este UserForm que
acabamos de construir. Os passos seguintes, irãodescrever como construir o módulo
para o funcionamento do nosso aplicativo.

14) Antes de continuarmos, vamos salvar a pasta do Excel. Para retornar à janela das
planilhas, clique no ícone do Excel que está no canto esquerdo superior da tela
como mostra a figura a seguir.

15) Crie na pasta “Meus documentos” uma pasta onde você irá salvar seu aplicativo.
Clique então no ícone . Você verá a caixa de mensagem a seguir. Para que você
possa salvar seu arquivo com o projeto VBA, você terá que escolher a opção
“Não”.
16) Na caixa de diálogo “Salvar como”, clique na seta de opções de “Salvar como
tipo”. Escolha a opção “Pasta de Trabalho Habilitada para Macro do Excel”. Veja
as indicações na figura a seguir. Em seguida escolha um nome para sua pasta e
salve-a no local escolhido por você.

17) Antes de retornarmos à janela do VBA, vamos digitar na “Plan1” os dados,


conforme mostra a figura.
18) Agora, vamos começar a desenvolver as rotinas para os botões de comando que
inserimos. Primeiramente, vamos fazer o botão”Sair” funcionar. Volte ao VBA
usando o ícone . Em seguida, dê um duplo clique com o botão esquerdo do
mouse sobre o botão Sair. Você terá a janela de códigos mostrada na figura a
seguir:

19) A rotina que desejamos que seja executada ao pressionarmos esse botão, deverá
estar escrita entre essas duas linhas. A primeira linha indica o início da rotina e o
nome desta, que no nosso caso é “CommandButton2”. O comando “Click” indica
que esta rotina será executada quando pressionarmos esse botão. Entre estas duas
linhas escreva:“End” que é o comando que encerra o aplicativo. Ficará como
mostra a figura.Para voltar a visualizar o UserForm, clique no ícone indicado pelo
balão na figura.

Para visualizar o
UserForm

20) Vamos agora verificar se o botão “Sair”já está funcionando. Para tanto, pressione
na barra de ferramentas o botão “start”. O projeto é então executado.
Pressione o botão sair. A execução é então encerrada.

21) Para facilitar os testes durante a execução, vamos digitar nas caixas de texto,dados
para a execução do aplicativo. Digite-os como mostra a figura. Para digitar, basta
clicar sobre a caixa, esperar uns instantes e clicar novamente. O cursor se
posicionará dentro da caixa, esperando a digitação.
22) Vamos agora escrever o código para o botão “Executar”: (as explicações sobre o
que cada parte do programa irá fazer aparecerão como comentários no próprio
código).
Obs.: a primeira e última linhas (em cor verde) do código já aparecem quando
clicamos duplo no botão Executar. Não incluí-las novamente.

Private Sub CommandButton1_Click()

'Declaração das variáveis


Dim a As Double
Dim b As Double
Dim TOL As Double
Dim N As Integer
Dim p As Double
Dim FA As Double
Dim FB As Double
Dim FP As Double
Dim Função As String
Dim FunçãoA As String
Dim FunçãoB As String
Dim FunçãoP As String

'Limpar a plan1
Worksheets("Plan1").Range("B2:G500000").Clear

'Para carregar os dados no programa, iremos utilizar as caixas de texto

Função = "=" &TextBox1.Text


a = TextBox2.Text
Cells(2, 2) = a
b = TextBox3.Text
Cells(2, 4) = b
TOL = TextBox4.Text
N = TextBox5.Text
'Passo 1:Vamos calcular o valor de f(a) e f(b)

'Cálculo de f(a)
FunçãoA = Função
FunçãoA = Replace(FunçãoA, "exp", "y")
FunçãoA = Replace(FunçãoA, "x", a)
FunçãoA = Replace(FunçãoA, "y", "exp")
FunçãoA = Replace(FunçãoA, ",", ".")
Cells(2, 3).Formula = FunçãoA
FA = Cells(2, 3)

'Cálculo de f(b)
FunçãoB = Função
FunçãoB = Replace(FunçãoB, "exp", "y")
FunçãoB = Replace(FunçãoB, "x", b)
FunçãoB = Replace(FunçãoB, "y", "exp")
FunçãoB = Replace(FunçãoB, ",", ".")
Cells(2, 5).Formula = FunçãoB
FB = Cells(2, 5)

'Vamos testar se f(a).f(b) < 0 e colocar uma mensagem caso não seja verdadeiro
If FA * FB > 0 Then
MsgBox "f(a).f(b)>0 - Fornecer outros valores para a e b"
End
End If

'Iniciar o valor do contador i


i=1

'Passo 2: Enquanto i<=No execute os passos 3-6


Do While i <= N

'Passo 3:
p = (a * FB - b * FA) / (FB - FA)
Cells(i + 1, 6) = p
FunçãoP = Função
FunçãoP = Replace(FunçãoP, "exp", "y")
FunçãoP = Replace(FunçãoP, "x", p)
FunçãoP = Replace(FunçãoP, "y", "exp")
FunçãoP = Replace(FunçãoP, ",", ".")
Cells(i + 1, 7).Formula = FunçãoP
FP = Cells(i + 1, 7)

'Passo 4:
If FP = 0 Or Abs(FP) < TOL Then
TextBox6.Text = p
MsgBox "Procedimento efetuado com sucesso" 'Caixa de mensagem
Exit Do
Else

'Passo 5:
i=i+1
'Passo 6:
If FA * FP > 0 Then
a=p
FA = FP
Cells(i + 1, 2) = a
Cells(i + 1, 3) = FA
Cells(i + 1, 4) = Cells(i, 4)
Cells(i + 1, 5) = Cells(i, 5)
Else
b=p
FB = FP
Cells(i + 1, 3) = b
Cells(i, 3) = b
Cells(i + 1, 2) = Cells(i, 2)
Cells(i + 1, 2) = Cells(i, 3)
EndIf
EndIf
Loop

'Passo 7
If i > N Then
MsgBox "Solução não encontrada" 'Caixa de mensagem
EndIf

End Sub

23) Os resultados para o primeiro exemplo devem ser como os mostrados na figura a
seguir.

24) Agora tente resolver utilizando os seguintes dados:


função ;
intervalo: [ ];
tolerância: 0,00000001
N0: 10000
Você deverá encontrar os resultados na “Plan1” conforme mostrado na figura.
25) Finalmente, resolva para os seguintes dados:
Função
Intervalo: [ ]
tolerância: 0,00000001
N0: 10000
Os resultados devem ser:

Você também pode gostar