55
MÓDULO 12 Fundamentos Avançados de Programação Orientada por Objectos Apresentação Pretende-se leccionar fundamentos de programação avançados tidos para que se possa desenvolver aplicações mais complexas.

Linguagens de programação 12º M12

Embed Size (px)

Citation preview

Page 1: Linguagens de programação 12º M12

MÓDULO 12Fundamentos Avançados de

Programação Orientada por Objectos

Apresentação

Pretende-se leccionar fundamentos de programação avançados tidos para que se possa desenvolver aplicações mais complexas.

Page 2: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

1. Procedimentos e FunçõesPassagem de parâmetros por

Referência e por Valor;Procedimentos e funções recursivas;

2. Sintaxe de Tabelas/ArraysUnidimensionaisMultidimensionaisDinâmicas

Page 3: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

3. ClassesConceitos GeraisCriação de classesReutilização de Objectos

4. MódulosNoção de MóduloUtilização de Módulos

Page 4: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

5. FicheirosLeitura e Escrita de ficheiros

sequenciaisFicheiros de Acesso Aleatório

Page 5: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

2. Objectivos de Aprendizagem

Definir e utilizar Procedimentos e Funções “Utilizar parâmetros globais e locais” Criar e utilizar tabelas em programação Definir o n.º de elementos de uma tabela em tempo de

execução Criar e utilizar correctamente classes Saber como e porque se reutilizam objectos Utilizar módulos Aceder a ficheiros

Page 6: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Introdução

Variáveis Variáveis, são espaços que reservamos em

memória para guardar determinados valores durante a execução de uma determinada tarefa ou programa.

Page 7: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

AMBITO DECLARAÇÃO Somente onde é declarada

Procedure Private, em procedure, Sub, ou Function

Somente onde é declarada

Module Private, na secção de declarações de um Form, ou modulo (.frm, ou .bas)

Em cada procedimento do Form ou Modulo

Global Public, na secção de declarações de um Modulo (.bas)

Em toda a aplicação

Page 8: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

1. Procedimentos e Funções 1.1 Procedimentos - “O Conceito” Os procedimentos constituem a base de toda e

qualquer linguagem de programação, uma vez que, para além de permitirem uma conveniente separação e agrupamento do código-fonte segundo a sua finalidade, dão a possibilidade ao programador de escrever o código apenas uma vez, pois os procedimentos podem ser invocados a partir de outros procedimentos, módulos de programação e projectos diferentes, permitindo uma reutilização inteligente do código-fonte.

Page 9: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Tipos de ProcedimentosTipo Descrição

Gerais São procedimentos definidos pelo programador, que consistem num conjunto de instruções executadas sequencialmente com o objectivo de desempenhar uma tarefa específica. Este tipo de procedimentos pode aceitar argumentos mas não retorna qualquer valor.

De evento

A declaração deste tipo de procedimentos está a cargo única e exclusivamente do editor de código. Escolher o objecto e estar “atento” à “operação” a executar.

De função

São procedimentos definidos pelo programador que podem executar tarefas e/ou retornar um valor para o procedimento que os invocaram.

Page 10: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Procedimentos Gerais Estes podem ser de dois tipos:

A- Não utiliza argumentos B – Utiliza argumentos

Nota: Nenhum retorna valores

Sintaxe Tipo A:Sub procedimento()

[Instrução 1][Instrução 2][…][Instrução n]

End sub

Exemplo Tipo A:

Sub Colocar_texto() Buttom1.text= “ola!”End Sub

Page 11: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Sintaxe Tipo BSub Procedimento(argumento 1 [, argumento 2][,…][, argumento n])

[Instrução 1][Instrução 2][…][Instrução n]

End subExemplo

Sub inicio()Dim texto_a_enviar As StringTexto_a_enviar = “Ola!”Colocar_texto(texto_a_enviar)

End Sub

Sub Colocar_texto(texto As String)Buttom1.Text= texto

End Sub

Page 12: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Procedimentos de evento: a escrita deste tipo de procedimentos é semelhante à dos procedimentos gerais, exceptuando a utilização do modificador Private – a chamada directa a procedimentos de evento é feita pelo próprio objecto quando reconhece a actividade para a qual foi programado.

Sintaxe Private Sub Objecto_evento(ByVal sender As

System.Object, ByVal e As system.EventArgs) Handles Objecto.Evento [Instrução 1] [Instrução 2] […] [Instrução n]

End sub

Page 13: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Procedimentos de Função Embora o objectivo dos procedimentos de função

possa não retornar um valor, são geralmente utilizados para esse efeito, pois, na prática, utilizam-se procedimentos gerais quando o objectivo é apenas realizar uma tarefa (baseada ou não em parâmetros).

Esta categoria de Funções/Procedimentos é iniciada pela palavra Function e terminada

por End Function

Tipo Utiliza Argumentos?

Retorna um Valor?

A NÃO SIM

B SIM Sim

Page 14: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

SintaxeFunction Função (Lista de argumentos) As Tipo de Dados

[Instrução 1][Instrução 2][…][Instrução n]Return Valor

End Function

Função - corresponde ao nome atribuído pelo programador à função;<Lista de Argumentos> - contém os parâmetros que a função recebe (se os houver), bem como os respectivos tipos de dados.Tipo de Dados – indica o tipo de informação que a função vai retornar;Valor – é o valor retornado pela função

Page 15: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Exemplo (procedimento de função sem argumentos - Tipo A )

Function Contar() As Integer Dim controlos As Integer Controlos = Me.Controlos.Count Return controlos

End Function(chamada a um procedimento de função sem argumentos)

Private Sub Buttom1_Click […] Buttom1.Text = Contar() ‘chamada da função sem argumentos

End Sub

Page 16: Linguagens de programação 12º M12

Exemplo (procedimento de função com argumentos - Tipo B)

Function Completo(nome As String, apelido As String) As StringDim nome_completo As Stringnome_completo= apelido & “ , “ & nomeReturn nome_completo

End Function(chamada a um procedimento de função com argumentos)

Private Sub Buttom1_Click […] Buttom1.Text = Completo (“Henrique”, “Loureiro”)

End Sub

Page 17: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Objecto_Evento corresponde ao nome do procedimento de evento formado pelo par Objecto/Acção separados por um underscore

ByVal indica que os valores dos argumentos não podem ser alterados

Sender é uma palavra-chave que indica que o procedimento está relacionado com um objecto.

e – Corresponde ao conjunto de argumentos específicos para o evento;

Handles indica que o procedimento se trata de um procedimento de evento a ser reconhecido pelo objecto em particular.

Page 18: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Parâmetros por Valor ou por Referência O padrão é o Visual Basic passar todos os parâmetros por referência ( ByRef ), ou seja, ao

invés de passar o valor actual do argumento ele passa um endereço de 32 bits onde o valor esta armazenado. Desta forma se ocorrer qualquer alteração no valor do parâmetro isto será reflectido no valor original do mesmo.

Para passar um parâmetro por valor usamos a palavra ByVal precedendo o parâmetro, com isto estamos passando uma cópia do valor do parâmetro e não o seu endereço de localização.

Nota: Ao passar uma string por valor esta passa o endereço do primeiro byte de dados da string . Se passar uma string por referência estará a passar o endereço de memória onde outro endereço esta armazenado , neste caso o primeiro byte de dados da string.

A ter em conta: As strings sempre são passadas por Valor ( ByVal ). Porém a função API poderá alterar o

conteúdo da variável string.

As estruturas definidas pelo usuário são sempre passadas por referência ( ByRef )

Os Vectores ( Arrays ) sempre são passados ByRef quando passados por inteiro para a função API.

Os valores numéricos podem ser passados por Valor ou por Referência dependendo da função

Page 19: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Procedimentos e Funções Recursivas Conceito Um procedimento ou função diz-se recursivo

quando é definido em termos de si próprio, isto é, quando se invoca a si próprio, directa ou indirectamente (por intermédio de outros procedimentos/funções).

Tipicamente a solução de um problema repetitivo pode ser resolvido de uma forma iterativa utilizando estruturas de controlo de ciclos (estruturas repetitivas), ou de forma recursiva utilizando a invocação sucessiva da solução.

Page 20: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

VANTAGENS E DESVANTAGENS Existem algumas vantagens e desvantagens

na utilização de métodos baseados na recursividade:

Vantagens: A utilização de uma função recursiva pode

simplificar a solução de alguns problemas; Pode-se obter um código mais conciso e eficaz

nessas situações; Uma solução recursiva pode, por outro lado,

eliminar a necessidade de manter o controlo manual sobre uma série de variáveis normalmente associadas aos métodos alternativos à recursividade.

Page 21: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Desvantagens:

As funções recursivas são geralmente mais lentas e ocupam mais memória do que as funções iterativas equivalentes, uma vez que são feitas muitas chamadas consecutivas;

Um erro de implementação pode levar ao esgotamento dos recursos associados à pilha (stack overflow) que gere a chamada a funções. Isto é, caso não seja indicada nenhuma condição de paragem, ou essa condição foi definida de forma errada e nunca será satisfeita, então o processo recursivo não terá fim.

Page 22: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOSA recursividade permite implementar

algoritmos que decompõem o problema a resolver numa sucessão de problemas cada vez mais simples com a mesma estrutura do problema original. A recursividade permite decompor um problema em problemas mais pequenos que têm a particularidade de serem exactamente do mesmo tipo do problema original.

Page 23: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Funções Recursivas Uma função recursiva é uma função que se

refere a si própria. A ideia consiste em utilizar a própria função que estamos a definir na sua definição.

Em todas as funções recursivas existe: Um passo básico (ou mais) cujo resultado é

imediatamente conhecido. Um passo recursivo em que se tenta resolver um sub-

problema do problema inicial.

Page 24: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

“Aplicação Factorial” - Exemplo Esta função pode ser definida recursivamente em

função de um caso elementar e de uma forma geral: 0! = 1 (por definição, caso mais simples) n! = n * (n - 1)! para n>0 (formula recursiva)

Função FACTORIAL(num: inteiro): inteirovar temp: inteiroSe num = 0 Então temp 1Senão temp num * FACTORIAL(num – 1)

factorial temp

Fim

Page 25: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Private Function Fact(num As Integer)If num = 0 Then    Fact = 1    Else        Fact = num * Fact(num - 1)End IfEnd Function

Page 26: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Tabelas/ Array As variáveis do tipo Array, ao contrário das

escalares – que armazenam um valor de cada vez – representam matrizes ou conjuntos de dados alojados em posições ou índices bem definidos. Todos os elementos de um array são do

mesmo tipo de dados O comprimento de um array concebe o seu

número de elementos em função de um limite inferior(considerado 0) e de um limite superior a definir. Quando ao seu tamanho, os arrays dividem-se em duas categorias – os de e os de comprimento variável.

Page 27: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Arrays de comprimento FIXO Representam matrizes com um numero de

elementos constante, pela atribuição de índices (limites). O limite inferior de um array é igual a zero; o limite superior é incluído entre parênteses curvos.

SINTAXE Dim array(limite superior) As Tipo de Dados

Exemplos: Dim alunos(7) As String ‘Matriz de 8 elementos Alunos(3) =“Ana” Alunos(0)=“Ronaldinho”

Page 28: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Arrays de Comprimento Variáveis – (Tabelas Dinâmicas)

São matrizes cujos limites não são especificados aquando da sua declaração. O programador pode, desta forma, alterar o tamanho do array enquanto o código está a ser executado. A palavra chave ReDim permite o redimensionamento do array em qualquer ponto do programa.

SINTAXE Dim array() As Tipo de Dados

Page 29: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Exemplos:

Dim dias() As DateDias(0)= #1/1/1999#ReDim dias(3)Dias(2)= #1/1/1999#ReDim dias(1) ‘O conteúdo de

índice 2 é eliminado

Page 30: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Arrays Unidimensionais Uma matrix unidimensional é composta apenas

por um eixo, segundo um perfil linear. Todos os elementos apresentados ao longo deste tópico fizeram referência a arrays Unidimencionais.

Arrays Multidimensionais As matrizes mais utilizadas são as matrizes

bidimensionais; a utilização de mais de duas dimensões está presente, na maior parte dos casos, em projectos muito específicos, como na concepção de aplicações de engenharia, design e multimédia.

Page 31: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Nota: O número máximo de dimensões suportado por uma variável do tipo array é de 32.

Sintaxe – Declaração de Arrays Multimensionais Dim array(dimensão1, dimensão2[,…]

[,dimensão n]) As Tipo de Dados Exemplos práticos Dim ficha(9,3) As String Ficha(3,2)=“10 de Janeiro” Ficha(0,1)=“Ana Lopes” Ficha(2,7)=“Luis Jardel” –ERRO no 2º limite

Superior

Page 32: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

4 – Módulos Noção de Módulo e Procedimentos

No contexto da programação, os Procedimentos (vulgarmente conhecidos por rotinas) consistem num agrupado de linhas de código(instruções) que seguem uma sequência lógica, com Principio, Meio e Fim, cujo objectivo é desempenhar uma tarefa específica. A um conjunto de procedimentos dá-se o nome de Módulo.

Um programa pode ter um nº distinto de módulos e procedimentos.

Ao nível do código, o início de um módulo de programação é marcada pela palavra chave Module e o seu fim pela instrução End Module

Page 33: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Sintaxe (Criação de Módulos) Module Nome

[Procedimento 1] [Procedimento 1] […] [Procedimento 1]

End Module Aqui, Nome é o identificador único do módulo no

projecto em que se insere, e que é atribuído pelo programador.

Page 34: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Criação de Módulos Podemos aceder a um módulo acedendo ao

respectivo ficheiro no Soluction Explorer e também podemos adicionar módulos ao projecto.

Para criar mais módulos: Escolha a opção de Adicionar Modulo do Menu Projecto Surge uma caixa de dialogo Adicionar Novo Item. Aqui

poderá escolher o item Modulo, atribuir um nome e clicar em Adicionar para terminar o processo de inserção.

Gravação de Módulos O módulo é gravado através do processo

normal(fazendo clique no botão Guardar da barra de ferramentas Standard ou escolhendo a opção Guardar do menu ficheiro.

Page 35: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Apagar Módulos A remoção de módulos é feita exactamente da

mesma forma como a remoção de qualquer outro item presente no Solution Explorer. Assim, bastará seleccionar o módulo a eliminar e pressionar a tecla Apagar.

Page 36: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

3. ClassesConceitos Gerais

Uma classe é simplesmente uma representação de um tipo de objecto; pense como uma estrutura que descreve o objecto.

O bloco de construção básico de software OO – a fabrica dos Objectos.

Uma classe define um “tipo de dados”. Em ciência da computação, um tipo consiste de um conjunto de estados possíveis (propriedades) e um conjunto de operações (métodos) que realizam a transição entre os estados do tipo.

Page 37: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Criação de classesIr ao gerênciador de Soluções-> adicionar -> Classe

Exemplo PráticoAs classes têm propriedades (publicas ou privadas) e métodos. "Property Get" para retornar um valor e o "Property

Set" para atribuir um valor à propriedade

Page 38: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Reutilização de ObjectosA produtividade do desenvolvimento de sistemas orientados a objectos é visível e bastante perceptível principalmente quando fazemos uso da reutilização. Esta, na prática da OO, é muito mais do que simplesmente copiar funções, ou mesmo utilizar módulos.

Page 39: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

A reutilização de objectos é, de facto, a utilização de objectos já utilizados em sistemas anteriores em novos projectos sem modificar as suas estruturas internas, ou mesmo sem a necessidade de fazer modificações no sistema para acomodar esses novos códigos.

A reutilização de objectos já encapsulados pode somar força quando vamos projectar um novo sistema de informações. Podemos durante um novo projecto identificar quais são os objectos necessários e incluir esses objectos já implementados noutros projectos.

Se já estiverem implementados, estes podem ser incluídos no novo sem a necessidade e custo de implementação.

Page 40: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Outra opção também pode ser a transformação de objectos semelhantes, ou seja, objectos já implementados cujas características são bastante semelhantes aos objectos necessários, podem, com pequenas modificações, serem úteis ao novo sistema.

Outra forma de reutilização pode surgir utilizando a propriedade da herança entre objectos, ou seja, caso surja a necessidade de criar um novo objecto cuja ideia esteja baseada num objecto já existente, podemos criar novos objectos com as características dos objectos já desenvolvidos. Isto diminui sensivelmente o custo de desenvolvimento de novos sistemas

Page 41: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Exemplo Prático

Aula

Page 42: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

5. FicheirosLeitura e Escrita de ficheiros sequenciais

Ficheiros de Acesso Aleatório

Page 43: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

O que é um Ficheiro?

Uma colecção de dados ou informação representada por um nome, armazenados em dispositivos;

Existem vários tipos de ficheiros.

Basicamente dividem-se entre Ficheiros de Texto e os Ficheiros de dados ou ficheiros definidos pelos utilizadores;

Page 44: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Ficheiros de Texto

Aqui a informação é totalmente armazenada em formato de caracteres ASCII. Podem ser criados, consultados, modificados no Sistema Operativo ou no editor de texto fora do programa que os usa.

O acesso aos dados é do tipo sequencial ou seja, a leitura dos dados não pode ser iniciado num ponto qualquer escolhido pelo utilizador, mas sempre o início e percorrer todos os elementos até chegar ao ponto pretendido.

Page 45: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Ficheiros definidos pelo utilizador.

Estes agrupam dados simples ou estruturados, no formato binário, não legíveis nem manipuláveis fora do programa em que foram criados. São ficheiros de tipos definidos pelo programador.

Podemos ter ficheiros de números inteiros ou reais, matrizes, registos, etc....

Em particular, os ficheiros de registos permitem manipular dados num formato bem estruturado para trabalho com informação externa. O acesso aos dados pode ser feito de forma aleatória ou seja por escolha da posição pretendida (directa).

Page 46: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Operações Principais no trabalho com ficheiros são:

Declaração de tipos e variáveis de ficheiros; Associação de uma variável de ficheiro com o nome

externo de ficheiro; Criação de novos ficheiros ou reescrita total de um

ficheiro já existente; Escrita de informação num ficheiro; Abertura de um ficheiro para leitura; Procura de dados num ficheiro; Fecho de um ficheiro aberto.

Page 47: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Tipo de Dados – Estruturas

Além dos tipos de dados básicos disponíveis no Visual Basic, o programador também pode criar estruturas de dados particulares e especificas.

Um exemplo típico é criar estruturas semelhantes a um registo de itens num arquivo, ou criar variáveis que servirão de padrão no programa.

Page 48: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Exemplo de uma estrutura:

Structure fichaAluno <VBFixedString(30)> Dim nome As String <VBFixedString(30)> Dim local As String Dim ano As IntegerEnd Structure

Page 49: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Declaração de uma variável (registo) de um tipo definido pelo utilizador:Dim nome-da-variável As tipo-definido-pelo-

programador

Utilizar uma variável de um tipo definido pelo utilizador (registo):

nome-da-variável.campo (utilizar o . para aceder a um determinado campo do registo)

Page 50: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Exemplo prático das operações básicas para acesso a ficheiros em modo Sequencial e Aleatório:

1) Escolher o nome do ficheiro; Exemplo: “c:\teste.txt”

Nota: Inclusão do caminho ou “path” do ficheiro.

2) Escolher um número de referência; 1, 2, 3,… para referenciar o ficheiro

Page 51: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

3) Abrir o ficheiro com “FileOpen” para escrita:

Membro Descrição

Append Abrir o ficheiro para acrescentar. Por defeito.

Input Abrir ficheiro para acesso de leitura.

Output Abrir ficheiro para acesso de gravação.

Binary Abrir ficheiro em modo binário.

Random Abrir ficheiro acesso aleatório.

Page 52: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

4) Escrever no ficheiro – “FilePut”:

Nota: Numero de referência do ficheiro, nome da estrutura e elementos membros da estrutura.

5) Ler do Ficheiro – “FileGet”

6) Fechar o ficheiro – “FileClose” FileClose(1) Número de referência da estrutura

Page 53: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Notas a ter em conta

O FileOpen é só valido com o OpenMode – Binary e Random.

No Visual Basic 2008 o FileOpen em Binary tem alguns problemas na codificação em Binário

Recomenda-se sempre o uso do OpenMode em Random (Ficheiros de Acesso Aleatório)

Page 54: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Ficheiros de Acesso Aleatório Ficheiros de acesso aleatório contém apenas

dados de um mesmo tipo definido pelo programador, designados por registos (records). Os registos são numerados (1, 2, …) e podem ser referenciados pelo seu número.

Sintaxe para abertura de um ficheiro de acesso aleatório:

Page 55: Linguagens de programação 12º M12

FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS

Exemplo prático Testes

Exercício de Aplicação – Ficheiro Turma Com base no exemplo prático apresentado,

realiza um pequeno projecto em Visual Basic que grave num ficheiro “turma.txt” os dados: nome, numero e nota.

Utiliza o acesso aleatório.

Chama a esse projecto - FicheiroTurma