• Nenhum resultado encontrado

Páginas seleccionadas

N/A
N/A
Protected

Academic year: 2021

Share "Páginas seleccionadas"

Copied!
10
0
0

Texto

(1)

© FCA - Editora de Informática 1

[…]

Após o estudo aprofundado das facilidades da folha de cálculo Excel, impõe-se que nos debrucemos sobre a linguagem de programação Visual Basic for Appli-cations, embutida naquela aplicação da Microsoft e que permite automatizar tarefas e extender as suas funcionalidades.

O Excel 2007 e o VBA constituem, assim, uma ferramenta de desenvolvimento de aplicações que, assentando nas funcionalidades das folhas de cálculo, permite automatizá-las, personalizá-las e estendê-las através da programação, para criar poderosos sistemas de tratamento automático de dados. A Fig. 1.1 mostra a utili-zação de um programa de VBA que automatiza a efectuação de determinados cálculos. O programa assenta nas funcionalidades do Excel, nomeadamente nos seus objectos – folhas, células e botões – combina-as e automatiza-as, estendendo, assim, a funcionalidade do Excel.

A B C D E 1 P100 560 100 ... 2 P110 789 89 ... 3 P120 89 65 ... 4 P130 765 78 ... 5 P140 432 87 ... 6 ... ... ... ...

Fig. 1.1: Programa em VBA que automatiza determinados cálculos e permite a sua efectuação através de um botão colocado na folha do Excel.

[…]

4.2.4.

E

XPRESSÕES DE COMPUTAÇÃO

As expressões de computação são expressões aritméticas, expressões alfanuméri-cas ou expressões lógialfanuméri-cas que o computador entende e pode calcular.

Programa

VBA Efectuar

(2)

Expressões aritméticas

O VBA implementa várias operações aritméticas e funções matemáticas que, correctamente ligadas, formam expressões aritméticas.

Operações aritméticas

Operação Operador Prioridade Exemplo Resultado

Adição + 6 4+6 10

Subtracção – 6 70-8 62

Resto MOD 5 5 MOD 2 1

Divisão inteira \ 4 81\8 10

Multiplicação * 3 3*9 27

Divisão / 3 25/2 12,5

Potenciação ^ 2 4^3 64

As operações entre parênteses têm prioridade 1. Podemos, portanto, alterar a ordem de execução das operações, colocando-as entre parênteses

Exemplo de resolução, passo a passo, de uma expressão

5* ( 3 + 6 ^ 2 ) / 3 36 39 195 65

Resolução de expressões de computação em VBA

1. Cálculo de expressões de computação em VBA 1.1 Executar o editor de VBA

1.2 Inserir o módulo 1.3 Digitar o procedimento

(3)

1.4 Seleccionar Run - Run Sub

[...]

[…]

B) Estruturas repetitivas condicionais

A frase de controlo de ciclo das estruturas repetitivas condicionais inclui uma con-dição que determina o fim da repetição (Fig. 4.31).

Há dois tipos de estruturas repetitivas condicionais: • Repetir enquanto condição verdadeira;

• Repetir até condição verdadeira.

(4)

A estrutura repetir enquanto

Nesta estrutura repetitiva condicional, o corpo do ciclo é repetido enquanto deter-minada condição for verdadeira.

A estrutura repetir enquanto pode subdividir-se em duas outras estruturas, uma com a frase de controlo no início do ciclo, e outra com a frase de controlo no fim do ciclo:

I – Controlo no início do ciclo II – Controlo no fim do ciclo

Repetir enquanto condição Repetir

Corpo do ciclo Corpo do ciclo

Fimenq enquanto condição

Estrutura repetir enquanto com frase de controlo no início do ciclo

Nesta estrutura repetitiva condicional:

• A condição é avaliada no início do ciclo;

• O corpo do ciclo repete-se enquanto a condição for verdadeira;

• A repetição do corpo do ciclo termina quando a condição se torna falsa; • O corpo do ciclo não é executado nenhuma vez se a condição for

inicial-mente falsa.

A Fig. 4.32 mostra em fluxograma a repetição das instruções do corpo do ciclo enquanto a condição de início do ciclo for verdadeira. Quando a condição se tornar falsa, é retomada a sequência de execução.

(5)

Fig. 4.32: Fluxograma da estrutura repetir enquanto com frase de controlo no início do ciclo.

[...]

VBA da estrutura repetir enquanto condição

Instruções diversas Do While condição

Corpo do ciclo - conjunto de instruções que se repete enquanto a condição for verdadeira Loop

Restantes instruções

[...]

Exemplo de pesquisa linear de um vector

Procura do número 40 no seguinte vector:

A= 20 15 40 60 70

1. Inserção à cauda do elemento A(6)=40

A= 20 15 40 60 70 40

2. Procura do número 40, comparando

I A(I) A(I)=40 Observação 1 20 F

2 15 F

3 40 V 40 é o elemento 3 do vectorA

A procura do mesmo número 40 no vector B,

B= 20 15 35 60 70

terminava no elemento índice 6 que efectivamente não existe no vector.

B= 20 15 35 60 70 40 I B(I) B(I)=40 Observação 1 20 F

(6)

I B(I) B(I)=40 Observação 3 35 F

4 60 F 5 70 F

6 40 V A procura terminou e 40 não existe no vector B

 Top-down

1. Pesquisa linear de um número num vector com N elementos

1.1 Formação do vector por atribuição de valores aleatórios aos N elementos 1.2 Leitura do número a procurar

1.3 Inserção de um elemento fictício igual ao valor que procuramos

1.4 Procura do número enquanto não o encontrarmos e for possível encontrá-lo 1.4.1 Comparação dos números de vendedores com o número a procurar

1.5 Impressão do índice do elemento que for igual ao valor procurado, no caso de não

termos encontrado, impressão de uma mensagem apropriada  Variáveis

Variável Tipo Significado

A() Inteira + Vector de números inteiros

I Inteira + Índice linha de cada elemento do vector N Inteira + Número total de elementos do vector X Inteira + Número do vendedor a procurar

 AlgoritmoPesquisaLinear

Procura linear de um número num vector. INÍCIO

10 [ Formação do vector de N inteiros aleatórios compreendidos entre 100 e 200 ] Ler(N)

Repetir para I=1 até N

A(I)= Int((200 - 100 + 1) * Rnd + 100)

Fimpara

20 [ Leitura do número a procurar ] Ler(X)

(7)

40 [ Procurar o número enquanto não o encontrarmos e for possível procurar ] Repetir enquanto A(I,1)<>X

I:=I+1 Fimenq

50 [ Afixar o nome e volume de vendas ou mensagem apropriada ] Se I<>N+1

Então Escrever(X, “é o elemento índice”,I,”do vector”) Senão Escrever (“O número”,X, “ não existe no vector!!”) Fimse

FIM

 Procedimentos em VBA

1. Execute o editor de VBA e insira um módulo 2. Digite

Option Base 1

Public Sub PESQUISALINEAR()

Dim A() As Integer, Nomecaixa As String Dim I As Integer, N As Integer, X As Integer N = InputBox("Quantos elementos tem o vector?") ReDim A(N + 1)

For I = 1 To N

A(I) = Int((200 - 100 + 1) * Rnd + 100) Next I

X = InputBox("Digite o número a procurar", Nomecaixa) A(N + 1) = X I = 1 Do While A(I) <> X I = I + 1 Loop If I <> (N + 1) Then

MsgBox Str(X) + " é o elemento índice" + Str(I) + " do vector A", , Nomecaixa

Else

MsgBox "O número" + Str(X) + "não existe no vector!!", , Nomecaixa End If

End Sub

[...]

Exemplo da invocação de procedimentos

A Fig. 6.2 mostra o encadeamento da execução de três procedimentos. O proce-dimento ProgramaPrincipal, a certa altura da sua execução, invoca o procedi-mento P, passando-lhe três arguprocedi-mentos; P é então executado, fazendo correspon-der aos seus três parâmetros os três argumentos que recebeu. Após a conclusão de P1, o controlo e execução passa para ProgramaPrincipal. A seguir, depois de excutar mais instruções suas, o ProgramaPrincipal invoca Q, passando-lhe quatro

(8)

argumentos; Q é executado, fazendo corresponder aos seus quatro parâmetros os quatro argumentos que recebeu. Após a conclusão da execução de Q, o controlo de execução é devolvido a ProgramaPrincipal que continua a executar as suas instruções.

Fig. 6.2: Encadeamento da execução de três procedimentos de acordo com as res-pectivas ordens de execução.

[…]

FUNÇÕES DEFINIDAS PELO UTILIZADOR

As funções definidas pelo utilizador destinam-se a suprir a falta de funções embu-tidas apropriadas; obedecem à sintaxe destas e executam-se analogamente, digi-tando-se numa célula:

=NomedaFunção(lista de argumentos)

ou, se forem “Públicas”, recorrendo-se ao assistente de funções que as classifica na categoria User Defined.

As funções definidas pelo utilizador são escritas em VBA, aplicando-se, portanto, as noções fundamentais que descrevemos anteriormente.

(9)

Defina uma função que calcule as taxas de juro periódicas equivalentes a uma dada taxa efectiva anual.

 Top-down

1. Cálculo de uma taxa efectiva periódica dada a taxa efectiva anual

1.1 Cálculo da taxa equivalente periódica por aplicação da regra fundamental da equi-valência:

“Taxas de juro equivalentes, aplicadas ao mesmo capital inicial, durante o mesmo prazo, devem gerar o mesmo capital acumulado, independentemente do período de referência das taxas ou do período de capitalização” (Cadilhe, 1994).

C0 ( 1 + txanual ) = C0 (1 + i ) ^ nper

i = ( 1 + txanual ) ^ ( 1 / nper ) - 1

C0 - Capital inicial

i - Taxa efectiva periódica

nper - Número de períodos de capitalização por ano txanual - Taxa de juro anual efectiva

 Resultado, parâmetros e variável

Resultado Tipo Significado Txefect Real + Taxa efectiva periódica

Parâmetro Tipo Significado

Txanual Real + Taxa anual efectiva

Nper Inteiro + Número de períodos de capitalização por ano Variável Tipo Significado

Tx Real + Taxa efectiva periódica

 Função Txefect (Txanual, Nper) Cálculo da taxa efectiva periódica. INÍCIO

10 [ Cálculo da taxa equivalente periódica ] Txefect:= (1+Txanual)^(1/Nper)-1 REGRESSO

 Procedimentos em VBA

(10)

2. Digite

Public Function Txefect(Txanual As Single, Nper As Integer) _ As String Dim Tx As Single Tx = (1 + Txanual) ^ (1 / Nper) - 1 Txefect = Format(Tx, "#.##0%") End Function  Execução da função 1. Digite A B C D 3 Taxa anual efectiva Período Número de períodos por ano

Taxa efectiva periódica 4 6% Trimestre 4 5 Quadrimestre 3 4 6% Semestre 2 2. Digite =Txefect($A$4;C4) em D4 3. Copie D4 para D5:D6 D

3 Taxa efectiva periódica

4 1,467%

5 1,961%

Referências

Documentos relacionados

Este trabalho consistiu na colheita de amostras de água superficial do rio Douro, com o objetivo de identificar a presença de espécies do género Staphylococcus, com perfis

Para tanto, no Laboratório de Análise Experimental de Estruturas (LAEES), da Escola de Engenharia da Universidade Federal de Minas Gerais (EE/UFMG), foram realizados ensaios

Câmara dos Santos.. A pesquisa deste casal é divulgada no mundo a partir da publicação do primeiro artigo que tratava da teoria pelo Van Hiele na França, pois até então a teoria

The challenges of aging societies and the need to create strong and effective bonds of solidarity between generations lead us to develop an intergenerational

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

Os principais resultados obtidos pelo modelo numérico foram que a implementação da metodologia baseada no risco (Cenário C) resultou numa descida média por disjuntor, de 38% no

Como mencionado anteriormente, em Cuba a densidade de médicos por número de habitantes é de 6,72 para cada 1 mil habitantes, média considerada altíssima, tendo

“Cuidar da saúde é sempre muito importante para se viver bem e melhor, e esse cuidado deve começar desde cedo, por isso, a atividade física em escolas é de suma importância