5. NOÇÕES DE PROGRAMAÇÃO

Documentos relacionados
Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

Fundamentos Programação

Linguagem de Programação II. Introdução à programação em VB Professor: Armando Hage

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Algoritmos II prof. Daniel Oliveira

Variáveis Escalar e de Array

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Variáveis indexadas Vectores e Matrizes. APROG (Civil) Aula 12

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO 11ºANO

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Introdução ao Fortran 90. Aula 3

Laboratório de Programação I

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Variáveis Tipos de Dados. APROG (Civil) Aula 2

Introdução à Ciência da Computação

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Variáveis Tipos de Dados

Estruturas de Controle em c#

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Linguagem de programação: Pascal

Informática II Ficha 5_resolução

VETORES E MATRIZES. By Eduardo Vieira Machado (Good Guy)

Sumário. Visual Basic Application para Excel. Prof. Luiz Bianchi Universidade Regional de Blumenau

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Exercícios Data Modeling

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Informática II Ficha 4_resolução

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Tutorial de Extensibilidade

DESENVOLVIMENTO DE SOFTWARE

Projeto de Linguagem. Linguagens de Programação

Introdução à Linguagem de Programação Java 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA

Tutorial 3 Básico do VBA do Excel

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Resolução de exercícios da ficha de trabalho nº. 8 de VBA

Programação: Vetores

Linguagem de Programação III

CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório

Array em Java. Figura 1 - Exemplo de um array de inteiros

Lição 7 Array em Java

Visual Basic for Applications

Programação Estruturada e Orientada a Objetos

Visual Basic. V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

Resumão VB (com Excel Avançado) Autor: Everton M. Messias

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Capítulo 8. Estruturas de Controle no Nível de Sentença

Visual Basic for Applications

JAVA NETBEANS Aula PGOO Prof. Daniela Pires Conteúdo

APOSTILA DE VBA PARA EXCEL MARCOS DE BARROS OUTUBRO DE RISK MANAGEMENT

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução ao Pascal. Computação I. Níveis de Linguagens de Programação. Níveis de Linguagens de Programação. Como um Programa é Executado?

V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador. 2) Elementos de uma estrutura de repetição;

Plano de Aula - Access cód Horas/Aula

Refinamentos sucessivos

Arq = Freefile Open C:\Pasta\Arquivo.dat For Binary As #arq Abrir o arquivo binario. X = Seek(arq) Mostra a posição que está sendo lida no arquivo

EXCEL e VBA. Visual Basic for Applications. Tutoriais de VBA

Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR. Botão Direito do Mouse; Personalizar Faixa de Opções

Plano de Aula - Access cód Horas/Aula

Análise de Programação

Estruturas de Condição, Iteração, Arrays e Enumareção

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Excel 2016 com VBA. Aula 5. Prof. Guilherme Nonino Rosa

EISnt Centro de Formação em Tecnologia

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Detalhes da geração de código Usando a técnica ad hoc, amarrada aos procedimentos sintáticos, igual à análise semântica

Manipulando Strings no VBA (Replace, Mid e InStr)

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

DELPHI Curso Extensão. walter Prof. Walter Gima

Tratamento de erros I Ideia básica

Tipos de Referência. Referência Relativa $A$1. Referência Absoluta. Referência Mista. $A1 ou A$1

TÉCNICO DE INFORMÁTICA - SISTEMAS

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Transcrição:

5. NOÇÕES DE PROGRAMAÇÃO VARIÁVEIS As variáveis, em Visual Basic, são classificadas de acordo com o esquema a seguir: Tabela 14 ESCOPO VIDA DECLARAÇÃO Local Dinâmica ou Estática Dim, Static (dentro de uma procedure) Módulo Estática Dim (seção declarations de um formulário ou módulo) Public Estática Public (seção declarations de um módulo) Variáveis Locais são declaradas dentro de uma procedure (Sub ou Function) e são vistas apenas por esta procedure. Variáveis locais podem ser estáticas, se declaradas com a palavra Static, ou dinâmicas, se declaradas com Dim. Variáveis dinâmicas perdem o valor quando a procedure é encerrada, ou seja, o espaço de memória é alocado quando a procedure é iniciada e desalocado quando do seu encerramento. Todas as variáveis no Visual Basic são inicializadas com o valor zero. Variáveis dinâmicas são um ótimo recurso para reduzir o espaço de memória e devem ser usadas sempre que possível. Variáveis de Módulo são sempre estáticas e devem ser declaradas na seção Declarations de um módulo ou formulário com a palavra reservada Static. Embora sejam estáticas, tais variáveis são vistas por todas os procedimentos do módulo em que foram declaradas, mas não por procedures externas a ele. Variáveis Públicas também são declaradas em um módulo e, além de serem estáticas, são vistas por todas os procedimentos de todos os formulários e módulos do projeto. Quando você não souber como declarar uma variável, declare-a como Public, mas é bom ter em mente que esta variável exige um espaço de memória constante. Portanto, excessivas variáveis Públicas podem acarretar em falta de memória. Variáveis Públicas não podem ser declaradas dentro de um formulário. Da mesma forma, a palavra reservada Dim não pode ser usada na seção declarations de um módulo. Os tipos de variáveis reservados pelo Visual Basic são os seguintes: Tabela 15 TIPO DESCRIÇÃO VARIAÇÃO (APROXIMADA) Integer 2 Bytes, inteira 32.768 Long 4 Bytes, inteira 2.147.483.648 Single 4 Bytes, ponto flutuante 1,4.10-45 a 3,4.10 38 Double 8 Bytes, ponto flutuante 1,798.10-324 a 4,94.10 308 Currency 8 Bytes, ponto flutuante 922337203685477,58 String string 0 a 65.500 Variant - - Por exemplo, uma variável Public do tipo inteiro pode ser declarada da seguinte maneira:

Public Nome_da_Variável As Integer ARRAYS Arrays são matrizes, ou variáveis indexadas, em Visual Basic, declaradas de forma semelhante a outras variáveis. Arrays podem ser de qualquer tipo, inclusive tipos de dados definidos pelo usuário. Também podem ser estáticos, locais ou Públicas. Unidimensionais: Dim Soma (1 To 2). Este array será constituído por vinte números: Soma(1), Soma (2)... Soma (20). Bidimensionais: Public Mult (1 To 15, 1 To 15). Multidimensionais: O Visual Basic adimite até 60 dimensões. O Visual Basic permite a declaração de arrays dinâmicos, que são usados quando não se sabe antecipadamente o tamanho de um array. A utilização de arrays dinâmicos envolve dois passos: 1. Declarar o array sem fazer referência às dimensões: Dim DynArray (). 1. Redimensionar o array. Este passo só pode ser feito dentro de uma procedure: ReDim DynArray (1 To 10). A palavra reservada ReDim apaga todos os valores anteriores do array. Para evitar isto, podemos usar a palavra Preserve: ReDim Preserve DynArray 1 To 10). Somente o limite superior da última dimensão de um array dinâmico pode ser alterado quando se usa Preserve. Não é necessário que o limite inferior de uma dimensão seja 1. Podemos declarar um array da seguinte forma: Dim Matriz (-10 To 35, -5 To 20). Para não perdermos de vista quais são os limites das dimensões de arrays, podemos usar duas funções: -2. UBound: retorna o maior índice disponível para a dimensão indicada. Sintaxe: UBound (array, dimensão); LBound: retorna o menor índice disponível para a dimensão indicada. Sintaxe: UBound (array, dimensão). Exemplo: Seja a matriz M(-3 To 4, -2 To 5). UBound (M, 1) retorna 4. LBound (M, 2) retorna Em Visual Basic, arquivos que excedem 64 kbytes são denominados Huge Arrays (Arrays Enormes). O limite máximo para estes arrays é de 64 Mbytes (ou a memória do computador). Não existe nenhuma declaração especial para Huge Arrays. O Visual Basic cuida de tudo sozinho.

TIPOS DE DADOS DEFINIDOS PELO USUÁRIO Tipos de dados definidos pelo usuário são mais flexíveis do que qualquer outro tipo. Até mesmo mais flexíveis do que arrays dinâmicos, pois podem incluir estes últimos. Para usar estes tipos de dados, declaramos, antes, o tipo, em um módulo do projeto: Type Agenda Nome As String*50 Endereço As String*80 Telefone As String*11 End Type A seguir, declaramos uma variável estática, local ou Public como pertencente ao tipo de dados definido anteriormente. Public MinhaAgenda (0 To 100) As Agenda Tipos de dados definidos pelo usuário são coleções de registros divididos em campos, conforme a tabela a seguir. Tabela 16 Registro NOME ENDEREÇO TELEFONE 0 Fernando Color Miami 354-6565 1 Fernando Henrique Brasília 253-8686 2 Anthony Blair 10, Downing Street, London 646-6868............ 100 Bill Clinton The White House 999-73474

EXEMPLO: UM BANCO DE DADOS A utilização mais clássica de tipos de dados definidos pelo usuário é na construção de bancos de dados. De fato, antigamente todos os bancos de dados deviam ser construídos desta forma. Veremos que, embora o VB forneça excelentes ferramentas para construir e manter bancos de dados, frequentemente é necessário construir pequenos bancos com as próprias mãos. Isto acontece porque, eventualmente, o banco de dados de que necessitamos é muito pequeno para justificar a utilização da maquinaria de banco de dados do VB. Inicie um novo projeto e insira alguns controles conforme a figura abaixo. frmendereços txtunome txtpnome txtcidade cmdações() txtendereço txtuf txtcep cmdmover() Insira um módulo, renomeando-o para Endereços.bas, e declare as seguintes variáveis: Option Explicit Type Endereço PNome As String * 20 LName As String * 20 Endereço As String * 40 Cidade As String * 15 UF As String * 2 CEP As String * 5 End Type Public CR As Endereço Public NovoRegistro As Boolean Public RegistroAtual As Integer Public NúmeroDeRegistros As Integer Public RegistroAntigo As Integer Public NomeArqCompleto As String Public NumArquivo As Integer Public Const NOMEARQ = "ENDEREÇO.DAT"

Note que Endereço é o tipo de variável definida pelo usuário, tendo os seguintes campos: PNome, UNome, Endereço, Cidade, UF e CEP. CR é a variável pertencente ao tipo de dados Endereço. As outras variáveis são auxiliares. A primeira linhas de botões de comando é um array de controles, com índices variando entre zero e três. A mesma coisa vale para a segunda linha de botões. O arquivo de banco de dados, que chamaremos de ENDEREÇO.DAT, é aberto no evento Load do formulário: Private Sub Form_Load() Dim Resposta As Integer ' Gera o caminho completo para o arquivo NomeArqCompleto = App.Path & "\" & NOMEARQ NumArquivo = FreeFile 'Abre o arquivo e calcula o número de registros Open NomeArqCompleto For Random As #NumArquivo Len = Len(CR) NúmeroDeRegistros = (LOF(NumArquivo) / Len(CR)) ' Se o arquivo está vazio If NúmeroDeRegistros = 0 Then Resposta = MsgBox("Novo arquivo - iniciar a entrada de dados?", vbyesno, "New file") If Resposta = vbyes Then NovoRegistro = True Form1.Show Call AdNovoEndereço Else Close (NumArquivo) End Else ' Se o arquivo não está vazio, mostra o primeiro registro RegistroAtual = 1 NovoRegistro = False

As procedures AdNovoEndereço e MostraRegistro podem ser escritas no próprio formulário, seção General, ou no módulo Endereço.bas: Public Sub AdNovoEndereço() ' Adiciona um novo registro no final do arquivo NúmeroDeRegistros = NúmeroDeRegistros + 1 RegistroAntigo = RegistroAtual RegistroAtual = NúmeroDeRegistros cmdaction(0).caption = "&Salvar" cmdaction(1).caption = "&Cancelar" 'Apaga conteúdo das caixas de texto. txtpnome.text = "" txtunome.text = "" txtendereço.text = "" txtcidade.text = "" txtuf.text = "" txtcep.text = "" txtunome.setfocus Public Sub MostraRegistro(Record As Integer) 'Lê o registro especificado e exibe o conteúdo Get #NumArquivo, Record, CR Atualiza o conteúdo das caixas de texto. txtunome.text = CR.LName txtpnome.text = CR.PNome txtendereço.text = CR.Endereço txtcidade.text = CR.Cidade txtuf.text = CR.UF txtcep.text = CR.CEP Case. A procedure para os comandos cmdações faz uso, como sempre, da instrução Select... Private Sub cmdações_click(index As Integer) Dim Resposta As Integer If NovoRegistro Then Select Case Index Case 0 ' Salvar. Call SalvaRegistroAtual NovoRegistro = False cmdações(0).caption = "&Novo" cmdações(1).caption = "&Deletar" Case 1 ' Cancelar RegistroAtual = RegistroAntigo NovoRegistro = False cmdações(0).caption = "&Novo"

cmdações(1).caption = "&Deletar" Case 2 ' Lista frmlist.show Case 3 ' Sair Call ByeBye End Select Else Select Case Index Case 0 ' Novo NovoRegistro = True Call AdNovoEndereço Case 1 ' Deletar Resposta = MsgBox("Deletar este endereço?", vbyesno + vbquestion) If Resposta = vbyes Then txtpnome.text = "" txtunome.text = "" txtendereço.text = "" txtcidade.text = "" txtuf.text = "" txtcep.text = "" Call SalvaRegistroAtual Case 2 ' Lista frmlist.show Case 3 ' Sair Call ByeBye End Select As procedures ByeBye e SalvaRegistroAtual devem ser escritas no módulo ou na seção General de frmendereço: Public Sub ByeBye() Close #NumArquivo Unload Form1

Public Sub SalvaRegistroAtual() CR.LName = txtunome.text CR.PNome = txtpnome.text CR.Endereço = txtendereço.text CR.Cidade = txtcidade.text CR.UF = txtuf.text CR.CEP = txtcep.text Put #NumArquivo, RegistroAtual, CR Para finalizar a minha parte, falta a procedure associada aos botões cmdmover(), que simplesmente gerencia o estado da variável RegistroAtual e a exibição dos registros: Private Sub cmdmove_click(index As Integer) If NovoRegistro Then Exit Sub ' Salva o registro atual caso ele tenha sido modificado Call SalvaRegistroAtual Select Case Index Case 0 'Primeiro registro RegistroAtual = 1 Case 1 ' Registro anterior RegistroAtual = RegistroAtual - 1 If RegistroAtual < 1 Then RegistroAtual = 1 Beep MsgBox ("Primeiro registro!") Case 2 ' Próximo registro RegistroAtual = RegistroAtual + 1 If RegistroAtual > NúmeroDeRegistros Then RegistroAtual = NúmeroDeRegistros Beep MsgBox ("Último registro!") Case 3 Último registro RegistroAtual = NúmeroDeRegistros End Select Fica como exercício implementar o formulário frmlista, que deve conter uma lista (ListBox) a ser preenchida com o conteúdo de ENDEREÇO.DAT durante o evento load de frmlista. Em vez de uma ListBox você pode usar também uma Grid. INSTRUÇÕES DO VISUAL BASIC A seguir encontram-se descritas as sintaxes das principais instruções do Visual Basic.

FOR... NEXT For contador = início To fim[step incremento] [instruções] [Exit For] [instruções] Next [contador] WHILE... WEND While condição [indtruções] Wend DO... LOOP Do [{While Until} condição] [instruções] [Exit Do] [instruções] Loop SELECT... CASE Select Case expressão_teste [Case lista-n [instruções]]... [Case Else [instruções]] End Select WITH With objeto [instruções] End With