SlideShare a Scribd company logo
1 of 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.
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
 1.
   Procedimentos e Funções
  Passagem de parâmetros por Referência
   e por Valor;
  Procedimentos e funções recursivas;


 2.
   Sintaxe de Tabelas/Arrays
  Unidimensionais
  Multidimensionais
  Dinâmicas
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS

 3.
   Classes
  Conceitos Gerais
  Criação de classes
  Reutilização de Objectos


 4.
   Módulos
  Noção de Módulo
  Utilização de Módulos
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS


 5.
   Ficheiros
  Leitura e Escrita de ficheiros
   sequenciais
  Ficheiros de Acesso Aleatório
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
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.
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
AMBITO      DECLARAÇÃO                       Somente onde é
                                             declarada

Procedure   Private, em procedure, Sub, ou   Somente onde é
            Function                         declarada

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

Global      Public, na secção de             Em toda a aplicação
            declarações de um Modulo
            (.bas)
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.
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
   Tipos de Procedimentos
Tipo     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       A declaração deste tipo de procedimentos está a cargo
evento   única e exclusivamente do editor de código. Escolher o
         objecto e estar “atento” à “operação” a executar.
De       São procedimentos definidos pelo programador que podem
função   executar tarefas e/ou retornar um valor para o
         procedimento que os invocaram.
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:                Exemplo Tipo A:
   Sub procedimento()
      [Instrução 1]               Sub Colocar_texto()
      [Instrução 2]                 Buttom1.text= “ola!”
      […]                         End Sub
      [Instrução n]
   End sub
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
                       Sintaxe Tipo B
Sub Procedimento(argumento 1 [, argumento 2][,…][, argumento n])
    [Instrução 1]
    [Instrução 2]
    […]
    [Instrução n]
End sub
                           Exemplo
Sub inicio()
   Dim texto_a_enviar As String
   Texto_a_enviar = “Ola!”
   Colocar_texto(texto_a_enviar)
End Sub

Sub Colocar_texto(texto As String)
   Buttom1.Text= texto
End Sub
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
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).
         Tipo          Utiliza          Retorna um
                       Argumentos?      Valor?
         A             NÃO              SIM
         B             SIM              Sim

      Esta categoria de Funções/Procedimentos é
    iniciada pela palavra Function e terminada por
                     End Function
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Sintaxe
Function 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
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
 Exemplo (procedimento de função com argumentos - Tipo B)
 Function Completo(nome As String, apelido As
  String) As String
   Dim nome_completo As String
   nome_completo= apelido & “ , “ & nome
   Return nome_completo
 End Function
        (chamada a um procedimento de função com argumentos)
   Private Sub Buttom1_Click […]
     Buttom1.Text    = Completo (“Henrique”, “Loureiro”)
   End Sub
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.
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
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.
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.
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.
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
A  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.
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.
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): inteiro
       var temp: inteiro
       Se num = 0 Então temp  1
       Senão temp  num * FACTORIAL(num – 1)

        factorial  temp

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 If
  End Function
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.
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”
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
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
   Exemplos:

 Dim  dias() As Date
 Dias(0)= #1/1/1999#
 ReDim dias(3)
 Dias(2)= #1/1/1999#
 ReDim dias(1) ‘O conteúdo de índice
  2 é eliminado
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.
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
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
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.
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.
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.
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS

3.
  Classes
 Conceitos 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.
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS

 Criação  de classes
 Ir ao gerênciador de Soluções-
  > adicionar -> Classe
 Exemplo Prático
   As 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
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS

 Reutilização    de Objectos
   A 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.
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.
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
FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
   Exemplo Prático

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



5.Ficheiros
 Leitura e Escrita de ficheiros
  sequenciais
 Ficheiros de Acesso Aleatório
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;
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.
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).
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.
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.
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 Integer
End Structure
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)
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
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.
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
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)
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:
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

More Related Content

What's hot

Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]Dafmet Ufpel
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...tdc-globalcode
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalGustavo Coutinho
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01John Godoi
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem cEugenio Caetano
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java BasicoJoel Lobo
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgRegis Magalhães
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 

What's hot (20)

Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Java2
Java2Java2
Java2
 
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem c
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
Java5
Java5Java5
Java5
 
Manual robotec
Manual robotecManual robotec
Manual robotec
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 
Java3
Java3Java3
Java3
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 

Viewers also liked

Configuração de dispositivos de io
Configuração de dispositivos de ioConfiguração de dispositivos de io
Configuração de dispositivos de ioLuis Ferreira
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSILuis Ferreira
 
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12
Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12Rodrigo Botelho
 
Social Media for B2B Tech at PRSA 2013 Digital Impact Conference
Social Media for B2B Tech at PRSA 2013 Digital Impact ConferenceSocial Media for B2B Tech at PRSA 2013 Digital Impact Conference
Social Media for B2B Tech at PRSA 2013 Digital Impact ConferenceMcClenahan Bruer
 
Die Mehrwert-Leistungen des PRAXIUM-Verlages auf einen Blick
Die Mehrwert-Leistungen des PRAXIUM-Verlages auf einen BlickDie Mehrwert-Leistungen des PRAXIUM-Verlages auf einen Blick
Die Mehrwert-Leistungen des PRAXIUM-Verlages auf einen BlickVerlag/Management Publishing
 
Social media for b2 b
Social media for b2 bSocial media for b2 b
Social media for b2 bbainsravi
 
Web2.0 in the classroom…The Who, What, Where and the How
Web2.0 in the classroom…The Who, What, Where and the HowWeb2.0 in the classroom…The Who, What, Where and the How
Web2.0 in the classroom…The Who, What, Where and the HowAnne-Mart Olsen
 
The SOURCES project_D. SALAMEH
The SOURCES project_D. SALAMEHThe SOURCES project_D. SALAMEH
The SOURCES project_D. SALAMEHDalia SALAMEH
 
Location recce sandall beat wood
Location recce  sandall beat woodLocation recce  sandall beat wood
Location recce sandall beat woodBigGun-96
 
Water Initiative 2014 Canadian Water Network Research Project Overview
Water Initiative 2014 Canadian Water Network Research Project OverviewWater Initiative 2014 Canadian Water Network Research Project Overview
Water Initiative 2014 Canadian Water Network Research Project OverviewJoel Gehman
 
A real life example to show the added value of the Phenotype Database (dbNP)....
A real life example to show the added value of the Phenotype Database (dbNP)....A real life example to show the added value of the Phenotype Database (dbNP)....
A real life example to show the added value of the Phenotype Database (dbNP)....Chris Evelo
 
STOMP Presentation
STOMP PresentationSTOMP Presentation
STOMP Presentationmaojie
 
A Poesia Visualde Rarindra Prakarsa
A Poesia Visualde Rarindra PrakarsaA Poesia Visualde Rarindra Prakarsa
A Poesia Visualde Rarindra Prakarsaatmaca77
 
8 Alimentos Para Perder Peso
8 Alimentos Para Perder Peso8 Alimentos Para Perder Peso
8 Alimentos Para Perder Pesoaccuratemogul6667
 
Social Media For B2B (Business to Business)
Social Media For B2B (Business to Business)Social Media For B2B (Business to Business)
Social Media For B2B (Business to Business)Digital Vidya
 
30 Link Building Tips: Small Changes, Big Improvements #digitalolympus
30 Link Building Tips: Small Changes, Big Improvements #digitalolympus30 Link Building Tips: Small Changes, Big Improvements #digitalolympus
30 Link Building Tips: Small Changes, Big Improvements #digitalolympusVenchito Tampon
 

Viewers also liked (20)

Configuração de dispositivos de io
Configuração de dispositivos de ioConfiguração de dispositivos de io
Configuração de dispositivos de io
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSI
 
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12
Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12
 
ticEduca2016
ticEduca2016ticEduca2016
ticEduca2016
 
Social Media for B2B Tech at PRSA 2013 Digital Impact Conference
Social Media for B2B Tech at PRSA 2013 Digital Impact ConferenceSocial Media for B2B Tech at PRSA 2013 Digital Impact Conference
Social Media for B2B Tech at PRSA 2013 Digital Impact Conference
 
Die Mehrwert-Leistungen des PRAXIUM-Verlages auf einen Blick
Die Mehrwert-Leistungen des PRAXIUM-Verlages auf einen BlickDie Mehrwert-Leistungen des PRAXIUM-Verlages auf einen Blick
Die Mehrwert-Leistungen des PRAXIUM-Verlages auf einen Blick
 
Social media for b2 b
Social media for b2 bSocial media for b2 b
Social media for b2 b
 
Web2.0 in the classroom…The Who, What, Where and the How
Web2.0 in the classroom…The Who, What, Where and the HowWeb2.0 in the classroom…The Who, What, Where and the How
Web2.0 in the classroom…The Who, What, Where and the How
 
The SOURCES project_D. SALAMEH
The SOURCES project_D. SALAMEHThe SOURCES project_D. SALAMEH
The SOURCES project_D. SALAMEH
 
Location recce sandall beat wood
Location recce  sandall beat woodLocation recce  sandall beat wood
Location recce sandall beat wood
 
Water Initiative 2014 Canadian Water Network Research Project Overview
Water Initiative 2014 Canadian Water Network Research Project OverviewWater Initiative 2014 Canadian Water Network Research Project Overview
Water Initiative 2014 Canadian Water Network Research Project Overview
 
A real life example to show the added value of the Phenotype Database (dbNP)....
A real life example to show the added value of the Phenotype Database (dbNP)....A real life example to show the added value of the Phenotype Database (dbNP)....
A real life example to show the added value of the Phenotype Database (dbNP)....
 
STOMP Presentation
STOMP PresentationSTOMP Presentation
STOMP Presentation
 
A Poesia Visualde Rarindra Prakarsa
A Poesia Visualde Rarindra PrakarsaA Poesia Visualde Rarindra Prakarsa
A Poesia Visualde Rarindra Prakarsa
 
35 efésios 6 as armaduras
35 efésios 6 as armaduras35 efésios 6 as armaduras
35 efésios 6 as armaduras
 
8 alteracion
8 alteracion8 alteracion
8 alteracion
 
8 Alimentos Para Perder Peso
8 Alimentos Para Perder Peso8 Alimentos Para Perder Peso
8 Alimentos Para Perder Peso
 
Social Media For B2B (Business to Business)
Social Media For B2B (Business to Business)Social Media For B2B (Business to Business)
Social Media For B2B (Business to Business)
 
30 Link Building Tips: Small Changes, Big Improvements #digitalolympus
30 Link Building Tips: Small Changes, Big Improvements #digitalolympus30 Link Building Tips: Small Changes, Big Improvements #digitalolympus
30 Link Building Tips: Small Changes, Big Improvements #digitalolympus
 
San Diego Zoo 1
San Diego Zoo 1San Diego Zoo 1
San Diego Zoo 1
 

Similar to POO Fundamentos Avançados

Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxItamarGoncalves2
 
aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdfGabrielEduardo16342
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopesmarcosnem
 
Modulo3_0_Apontamentos_2.pdf
Modulo3_0_Apontamentos_2.pdfModulo3_0_Apontamentos_2.pdf
Modulo3_0_Apontamentos_2.pdfssuser234cf7
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcionalGabriel Schade Cardoso
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)Carlos Santos
 
Excel Basic com VBA - Macros
Excel Basic com VBA - MacrosExcel Basic com VBA - Macros
Excel Basic com VBA - MacrosJoao Sousa
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08Carlos Santos
 

Similar to POO Fundamentos Avançados (20)

SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptx
 
Aula 4
Aula 4Aula 4
Aula 4
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdf
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
Modulo3_0_Apontamentos_2.pdf
Modulo3_0_Apontamentos_2.pdfModulo3_0_Apontamentos_2.pdf
Modulo3_0_Apontamentos_2.pdf
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
 
Pesquisa ppi 2
Pesquisa ppi 2Pesquisa ppi 2
Pesquisa ppi 2
 
Aula10
Aula10Aula10
Aula10
 
Excel Basic com VBA - Macros
Excel Basic com VBA - MacrosExcel Basic com VBA - Macros
Excel Basic com VBA - Macros
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
 
APM Model in .NET - PT-pt
APM Model in .NET - PT-ptAPM Model in .NET - PT-pt
APM Model in .NET - PT-pt
 

More from Luis Ferreira

IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)Luis Ferreira
 
Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Luis Ferreira
 
1º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 20151º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 2015Luis Ferreira
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Luis Ferreira
 
Projeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoProjeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoLuis Ferreira
 
Novos professores nas escolas.
Novos professores nas escolas.Novos professores nas escolas.
Novos professores nas escolas.Luis Ferreira
 
Informação digital na gestão e organização escolar
Informação digital na gestão e organização escolarInformação digital na gestão e organização escolar
Informação digital na gestão e organização escolarLuis Ferreira
 
Plano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalPlano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalLuis Ferreira
 
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Luis Ferreira
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Luis Ferreira
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSILuis Ferreira
 
Apresentação da Dissertação
Apresentação da DissertaçãoApresentação da Dissertação
Apresentação da DissertaçãoLuis Ferreira
 

More from Luis Ferreira (19)

IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Sessão 2 app
Sessão 2 appSessão 2 app
Sessão 2 app
 
Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)Unidade 2 - Processador de texto (Aula 1 e 2)
Unidade 2 - Processador de texto (Aula 1 e 2)
 
1º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 20151º Congresso Nacional de Professores de Informática 2015
1º Congresso Nacional de Professores de Informática 2015
 
Psi m14
Psi m14Psi m14
Psi m14
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Projeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de DoutoramentoProjeto de Investigação do Curso de Doutoramento
Projeto de Investigação do Curso de Doutoramento
 
Novos professores nas escolas.
Novos professores nas escolas.Novos professores nas escolas.
Novos professores nas escolas.
 
Informação digital na gestão e organização escolar
Informação digital na gestão e organização escolarInformação digital na gestão e organização escolar
Informação digital na gestão e organização escolar
 
Plano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão EducacionalPlano de Comunicação Digital e Gestão Educacional
Plano de Comunicação Digital e Gestão Educacional
 
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)Plano de Comunicação e Gestão Educacional (Pré-Projeto)
Plano de Comunicação e Gestão Educacional (Pré-Projeto)
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1
 
Leadership Starratt
Leadership StarrattLeadership Starratt
Leadership Starratt
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSI
 
SDAC 12º - M9 TGEI
SDAC 12º - M9 TGEISDAC 12º - M9 TGEI
SDAC 12º - M9 TGEI
 
Apresentação da Dissertação
Apresentação da DissertaçãoApresentação da Dissertação
Apresentação da Dissertação
 

POO Fundamentos Avançados

  • 1. 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.
  • 2. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS  1. Procedimentos e Funções Passagem de parâmetros por Referência e por Valor; Procedimentos e funções recursivas;  2. Sintaxe de Tabelas/Arrays Unidimensionais Multidimensionais Dinâmicas
  • 3. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS  3. Classes Conceitos Gerais Criação de classes Reutilização de Objectos  4. Módulos Noção de Módulo Utilização de Módulos
  • 4. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS  5. Ficheiros Leitura e Escrita de ficheiros sequenciais Ficheiros de Acesso Aleatório
  • 5. 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
  • 6. 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.
  • 7. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS AMBITO DECLARAÇÃO Somente onde é declarada Procedure Private, em procedure, Sub, ou Somente onde é Function declarada Module Private, na secção de Em cada declarações de um Form, ou procedimento do modulo (.frm, ou .bas) Form ou Modulo Global Public, na secção de Em toda a aplicação declarações de um Modulo (.bas)
  • 8. 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.
  • 9. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS  Tipos de Procedimentos Tipo 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 A declaração deste tipo de procedimentos está a cargo evento única e exclusivamente do editor de código. Escolher o objecto e estar “atento” à “operação” a executar. De São procedimentos definidos pelo programador que podem função executar tarefas e/ou retornar um valor para o procedimento que os invocaram.
  • 10. 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: Exemplo Tipo A: Sub procedimento() [Instrução 1] Sub Colocar_texto() [Instrução 2] Buttom1.text= “ola!” […] End Sub [Instrução n] End sub
  • 11. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS Sintaxe Tipo B Sub Procedimento(argumento 1 [, argumento 2][,…][, argumento n]) [Instrução 1] [Instrução 2] […] [Instrução n] End sub Exemplo Sub inicio() Dim texto_a_enviar As String Texto_a_enviar = “Ola!” Colocar_texto(texto_a_enviar) End Sub Sub Colocar_texto(texto As String) Buttom1.Text= texto End Sub
  • 12. 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
  • 13. 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). Tipo Utiliza Retorna um Argumentos? Valor? A NÃO SIM B SIM Sim  Esta categoria de Funções/Procedimentos é iniciada pela palavra Function e terminada por End Function
  • 14. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS Sintaxe Function 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
  • 15. 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
  • 16.  Exemplo (procedimento de função com argumentos - Tipo B)  Function Completo(nome As String, apelido As String) As String  Dim nome_completo As String  nome_completo= apelido & “ , “ & nome  Return nome_completo  End Function (chamada a um procedimento de função com argumentos)  Private Sub Buttom1_Click […]  Buttom1.Text = Completo (“Henrique”, “Loureiro”)  End Sub
  • 17. 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.
  • 18. 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
  • 19. 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.
  • 20. 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.
  • 21. 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.
  • 22. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS A 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.
  • 23. 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.
  • 24. 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): inteiro var temp: inteiro Se num = 0 Então temp  1 Senão temp  num * FACTORIAL(num – 1) factorial  temp 
  • 25. 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 If End Function
  • 26. 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.
  • 27. 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”
  • 28. 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
  • 29. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS  Exemplos:  Dim dias() As Date  Dias(0)= #1/1/1999#  ReDim dias(3)  Dias(2)= #1/1/1999#  ReDim dias(1) ‘O conteúdo de índice 2 é eliminado
  • 30. 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.
  • 31. 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
  • 32. 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
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS 3. Classes Conceitos 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.
  • 37. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS Criação de classes Ir ao gerênciador de Soluções- > adicionar -> Classe Exemplo Prático As 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
  • 38. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS Reutilização de Objectos A 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.
  • 39. 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.
  • 40. 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
  • 41. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS  Exemplo Prático  Aula
  • 42. FUNDAMENTOS AVANÇADOS DE PROGRAMAÇÃO ORIENTADA POR OBJECTOS 5.Ficheiros Leitura e Escrita de ficheiros sequenciais Ficheiros de Acesso Aleatório
  • 43. 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;
  • 44. 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.
  • 45. 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).
  • 46. 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.
  • 47. 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.
  • 48. 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 Integer End Structure
  • 49. 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)
  • 50. 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
  • 51. 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.
  • 52. 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
  • 53. 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)
  • 54. 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:
  • 55. 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