EMGI – Programação Ficha 8 “VBA” Objectivo – Estudo prático de algoritmos e sua implementação no Visual Basic para Aplicações do Excel. Introdução: Um algoritmo pode ser definido como “a sequência lógica de procedimentos tendentes à resolução de um problema”. Ora a actividade humana, pode ser considerada como uma sequência interminável de soluções para problemas. Também, como os computadores são utilizados para resolver problemas, desde os mais simples aos mais complexos, é natural que para que ele os possa resolver, tenhamos de indicar-lhe os “passos” que deverá realizar. Assim, e antes de criar qualquer pequeno programa, deveremos sempre criar o “algoritmo” que permita solucionar o problema posto, que o programa depois implementará em termos da sintaxe da linguagem escolhida. Como decerto já saberão, a ordem de execução dos procedimentos que permitem a solução dum problema, normalmente sequencial, pode também efectuar testes a condições e executar um ou outro conjunto de instruções ou mesmo executar repetidamente um conjunto de instruções, dependendo ou não de uma dada condição. Pode demonstrar-se que com estes 3 tipos de estruturas, podem resolver-se todos os problemas que possam ser postos. Estrutura de um módulo em VBA: ‘Opções do Visual Basic Option Explicit ‘Força a declaração explícita de todas as variáveis. ‘Declaração de constantes do módulo Const x=2,2 ‘Declaração de variáveis do módulo Dim a AS string Dim b AS integer, c AS single ‘Procedimentos Function nomeFunçao (argumentos) AS tipo_a_devolver Sub nomeProcedimento (argumentos) Instrução ou bloco de instruções Declaração de variáveis/constantes nomeFunçao=.... Instrução ou bloco de instruções End Function End Sub Tarefas propostas: Elabore o algoritmo e implemente-o utilizando a linguagem de programação VBA, para resolver cada uma das seguintes alíneas: 1. Dadas as medidas dos catetos de um triângulo rectângulo, determinar a medida da hipotenusa. 2. Calcular o dobro ou o triplo de um número, consoante seja, maior que 100 ou menor ou igual a 100. 3. Determinar o maior de três números. 4. Ler duas palavras, correspondentes ao seu primeiro e último nome, inverter a sua ordem na escrita. 5. Ler dois números inteiros e escrever os números em linhas distintas, mas na mesma caixa de mensagem. 6. Dado um número inteiro N, verificar se é par ou ímpar. 7. Determinar o valor da função sen( x) x 1 para x ≠ 0 para x = 0 8. Calcular a soma dos primeiros N números inteiros positivos. 9. Escrever no ecrã o quadrado de todos os números compreendidos entre x1 e x2 (x1, x2 inteiros). 10. Para uma sequência de N elementos, determinar a soma dos elementos ímpares. Programação – Ficha de Trabalho 8 Pag. 1/3 EMGI – Programação Ficha 8 11. Calcular o valor da potência sendo dada a base e o expoente, expoentes do tipo inteiro. 12. Calcular os divisores de um número N. 13. Calcular os N múltiplos de um número X. 14. Calcular a média de uma sequência de valores. 15. Ler um número entre 1 e 7 e escrever o correspondente dia da semana. 16. Calcular o factorial de um número n, sendo n ≥ 0. 17. Calcular a soma da seguinte série de n termos: − 1 1 1 1 1 + − + − + ... 2 4 6 8 10 18. Dado um número inteiro positivo: contar o número de dígitos, escrever a soma dos seus dígitos, inverter o número e verificar se é capicua. 19. Determinar o número de ocorrências de um dado número inteiro numa dada sequência de números, que é terminada por 0. 20. Calcular e escrever no ecrã a soma de uma sequência de números inteiros, sequência terminada por 0. 21. Escrever no ecrã uma frase composta por palavras introduzidas uma a uma pelo utilizador. A introdução da sequência de palavras é terminada pela palavra “FIM”. Tipos de dados (português) Booleano Inteiro Longo (inteiro longo) Simples (vírgula flutuante de precisão simples) Duplo (vírgula flutuante de precisão dupla) Moeda Data Cadeia de caracteres Variante Objecto Definida pelo utilizador Programação – Ficha de Trabalho 8 Tipos de dados (Inglês) Boolean Integer Long Single Double Currency Date String Variant Object Definida pelo utilizador Pag. 2/3 EMGI – Programação Ficha 8 Principais Instruções InputBox(Prompt [,títulol][,valor por defeito] [,x pos] [,y pos],[fich_Ajuda, contexto]) MsgBox(prompt [,botões] [título] [fich_Ajuda, contexto]) If condição1 Then instrução1 Else If condição2 Then instrução2 Else instrução3 End If Select Case expressão_de_teste Case lista1expressão Instruções1 Case lista2expressão Instruções2 ...... Case Else Instruções End Select For contador = início To Fim [Step incr] Instruções Next [contador] Do While Condição Instruções Loop Do Instruções Loop until Condição Programação – Ficha de Trabalho 8 Breve descrição Instrução de Leitura - Mostra uma caixa de diálogo e espera que o utilizador escreva texto ou escolha um botão, retornando então o conteúdo da caixa de texto. Instruções de Escrita - Mostra uma mensagem numa caixa de diálogo. O valor devolvido, indica o botão que foi “clicado” pelo utilizador. Estrutura de selecção - Permite a execução condicional entre uma ou mais instruções. Se condição1 for verdadeira, executa a instrução1; senão se a condição2 for verdadeira executa a instrução2; senão executa a instrução3. Estrutura de selecção - Permite a execução condicional entre uma ou mais instruções. Cada listaexpressão é uma lista de um ou mais valores (separados por vírgulas). As instruções do Case Else são executadas, se nenhum dos listaexpressão satisfizer a expressão_de_teste. Estrutura de repetição equivalente a ciclo Para. É usada quando o número de iterações pode ser predefinido. O contador vai sendo incrementado (ou decrementado) do valor dado por incr,desde um valor inicial (início), até a um valor final (Fim). Estrutura de repetição equivalente a ciclo Enquanto. Repete as instruções enquanto a condição for verdadeira (true). Estrutura de repetição equivalente a ciclo Repetir-Até. Repete as instruções até que a condição se torne verdadeira. Pag. 3/3