sexta-feira, 31 de maio de 2013

Módulo 11- Programação orientada a objectos avançados

1.Introdução

Basicamente neste módulo abordamos matéria sobre as classes. Uma classe é uma unidade de código que reúne ao mesmo tempo membros de dados ou atributos e também métodos(procedimentos e/ou funções);


2.Como criar classes em visual basic

Primeiro que tudo começamos por escrever a palavra reservada class, seguida do nome que pretendemos dar á classe e se não for necessário colocar mais nada podemos encerrar com o end class.
 Por exemplo:


  Existe uma opcão no visual basic que nos permite criar uma classe num módulo próprio e é da seguinte maneira:





3.Diferenças e igualdades entre classe e estruturas


Estruturas e classes são semelhantes nos seguintes aspectos:
  • Ambas são tipos continente, o que significa que elas contêm outros tipos como membros.
  • Ambas tem membros, que podem incluir construtores, métodos, propriedades, campos, constantes, enumerações, eventos e manipuladores de eventos. No entanto, não confunda esses membros com o elementos declarado de uma estrutura.
  • Membros de ambas podem ter níveis de acesso individualizados. Por exemplo, um membro pode ser Public declarado e outro Private.
  • Ambas podem implementar interfaces.
  • Ambas podem te construtores compartilhados, com ou sem parâmetros.
  • Ambos podem expor uma propriedade padrão , desde que a propriedade aceite pelo menos um parâmetro.
  • Ambas podem declarar e disparar eventos, e ambas podem declarar representantes.


    Estruturas e classes diferem nas particularidades a seguir:
    • Estruturas são tipos de valor ; classes são tipos de referência. Uma variável de um tipo de estrutura contém a estrutura dos dados, em vez de conter uma referência para os dados como um tipo de classe teria.
    • Estruturas usam alocação da pilha (stack); classes usam alocação da heap.
    • Todos os elementos de estrutura são Public por padrão; variáveis de classe e constantes são Private por padrão, enquanto outros membros da classe são Public por padrão. Esse comportamento para membros de classe fornece compatibilidade com o sistema de padrões do Visual Basic 6.0.
    • Uma estrutura deve ter pelo menos uma variável não compartilhada ou evento não compartilhado e não personalizado; uma classe pode ser completamente vazia.
    • Elementos de estrutura não podem ser declarados como Protected; membros de classe podem.
    • Um procedimento de estrutura pode manipular eventos somente se ele é um procedimento Compartilhamento (Visual Basic)Sub e somente por meio de AddHandler demonstrativo; qualquer procedimento de classe pode manipular eventos, usando a palavra-chave Trata ou a instruçãoAddHandler. Para obter mais informações, consulte Eventos e manipuladores de eventos.
    • Declarações de variável de estrutura não podem especificar inicializadores ou tamanhos iniciais para matrizes; declarações de variável de classe podem.
    • Estruturas implicitamente herdam da classe System.ValueType e não podem herdar de nenhum outro tipo; classes podem herdar de qualquer classe ou classes diferentes de System.ValueType.
    • Estruturas não são herdáveis; classes são.
    • Estruturas são nunca finalizadas, portanto, a Common Language Runtime (CLR) nunca chama o método Finalize em qualquer estrutura; as classes são finalizadas pelo coletor de lixo (GC), que chama Finalize em uma classe quando ele detecta que não á referências ativas restantes.
    • Uma estrutura não requer um construtor; uma classe requer.
    • Estruturas podem ter construtores compartilhados somente se elas tiverem parâmetros; classes podem tê-los com ou sem parâmetros.
    Cada estrutura tem um construtor público implícito sem parâmetros. Esse construtor inicializa todos os elementos de dados da estrutura para seus valores padrão. Você não pode redefinir esse comportamento.

    4.Construtores



      Public Sub New(ByVal C As SingleByVal L As Single)
            Comprimento = C
            Largura = L
        End Sub

        

    5.Reflexão final

    Eu achei este módulo dificil e um pouco chato. Não me lembro de ter realizado muitos programas exepto depois de voltar de estágio quando realizei dois programas. Este módulo também se tornou mais complicado a partir do momento em iniciamos estudo ao módulo e depois temos de interromper durante 3 semanas por causa do estágio. Definitivamente não foi dos meus módulos favoritos.

sexta-feira, 5 de abril de 2013

Módulo 10 - Programação Orientada a Objectos


1. Introdução

Neste módulo começamos por abordar a matéria sobre as estruturas de decisão (if;then;else) e estruturas de repetição (for;to),também falamos como utilizar sub-programas(procedimentos e funções) .
Também começamos por introduzir novos objectos nos programas como Listbox,Combobox etc... .

2.Como utilizar sub-programas


Basicamente a unica coisa que muda nos sub-programas (procedimentos e funções) é sintaxe.

Enquanto em que pascal a linguagem dos procedimentos é a seguinte : procedure<nome do procidemento>, begin<programa>end; . Já em visual basic a sintaxe é a seguinte : sub<nome do procedimento> <programa> endsub;
Quanto ás funcões a sintaxe em pascal era : function<nome>; Begin<programa>end;.Já em visual basic é praticamente igual : function<nome><programa> endsub .
No visual Basic podemos utilizar passagem de dados e existem dois tipos:
byval- quando entregamos o valor que está guardado na variável exterior á função ou procedimento o valor só vai ser alterado dentro do sub-programa assim o valor que estava guardado anteriormente na varivel global vai se manter igual.


Exemplo(procedimento):


Sub <nome procedimento (ByVal <nome variavel> As <Tipo de dados>)
.
.
.
.
End Sub

Exemplo(função):

function<nome da funcão>(byval<nome variavel> as <tipo de dados>)
.
.
.
endFunction


byref- na passagem por referência já é diferente pois quando entregamos o dado também entregamos a variável. Com isto quero dizer que a variável exterior á função ou procedimento vai entregar os seus dados que vão ser alterados dentro e fora do procedimento ou função, logo se o valor alterado dentro do sub-programa também vai ser alterado na variável global. 

Exemplo(procedimento):


Sub <nome procedimento (Byref <nome variavel> As <Tipo de dados>)
.
.
.
.
End Sub

Exemplo(função):

function<nome da funcão>(byref<nome variavel> as <tipo de dados>)
.
.
.
endFunction


Agora para chamar os procedimentos e funções é igual ao pascal a função tem de ser atribuida a uma variável e o procedimento pode ser chamado apenas pelo nome.



Reflexão:



Quanto a esta parte da matéria posso dizer que precebi bem mas ainda tenho um pouco de dificuldade na parte final da construção das funções mas quanto aos procedimentos , e passagens por referencia(byref) e por valor(byval) entendi bem. 


3.Estruturas de controlo


Estrutura de Repetição: 



Do...
        < instruções >
Loop...

For ... to ...
        < instruções >
Next...



Estrutura de decisão:



If  <condição>
Then <instruções>
[Else <instruções>]

Select Case...
Case... <instruções>
[Case Else <instruções>

While <condição>

         <Instruções>
End While



Reflexão:



Quanto ás estruturas de controlo entendi bem principalmente a estrutura de decisão if  porque já tinha trabalhado anteriormente no meu estágio e a sintaxe é praticamente igual á do pascal. Também realizamos vários programas nas aulas sobre várias estruturas.



4.Reflexão Final



Achei este módulo um pouco mais dificil do que o anterior mas támbem mais interessante pois já aborda outro tipo de conteúdos mais uteis para o futuro.

Dos vários programas que realizamos nas aulas o que eu mais gostei de fazer foi o primeiro que realizamos do euromilhões.

sexta-feira, 11 de janeiro de 2013

Módulo 9- Introduçao a programação orientada a objectos


1.Introdução
  Basicamente neste módulo foi quando comecei a trabalhar com outro tipo de linguagem(Visual basic)
que é muito mais cativante comparado com a anterior liguagem(Pascal) pois já utiliza uma parte gráfica enquanto que no pascal só se trabalha numa janela a preto.

2.Como trabalhar com o visual basic

Depois de já ter o programa(Microsoft Visual Basic) instalado no seu compu
tador abra o programa e siga os seguintes passos:





Depois de realizar estes passos irá aparecer uma página igual á da seguinte imagem:

 


Após abrir o visual basic pode começar a desenvolver o código.

3.Programas em visual basic

Aqui vou apresentar alguns programas desenvolvidos no visual basic criados por mim no meu estágio e nas aulas de programação.









 Reflexão

Este programa consistia na aprendizagem de novos conteúdos por parte dos alunos do ensino básico.
Este programa utilizava vários contéudos a nivel de programação como picturebox, button, combobox, groupbox
Com este programa consegui aprender várias coisas mesmo antes de poder realizar exercicios na aula sobre  alguns conteúdos por isso considero que este programa foi muito importante para a minha aprendizagem.

Se pretender ver como funciona este programa poderá fazer aqui o download do ficheiro:

LINK: http://www.mediafire.com/?z593ozc99g3h4zm 

Agora de seguida vou apresentar um programa realizado na aula de PSI que na minha opinião foi importante pois explica algumas das mais importantes funcões do visual basic.


 





Reflexão

Considero que este programa foi importante para a minha aprendiagem não pelo programa em si mas pela informação que ele cintém pois tem o código das mais importantes funcões e o que cada uma delas faz ao programa.

Houve também mais um Programa realizado nas aulas de PSI que eu achei importante e que foi o seguinte:


Reflexão

A realização deste programa foi importante pois ensinou-me como trabalhar com as checbox e radiobutton. Na imagem acima esta representado o resultado final deste programa e que funciona da seguinte maneira;
Quando o utilizador selecionasse uma cor de fundo através das radiobutton a cor de fundo do titulo mudava mas apenas poderia selecionar uma cor de cada vez, enquanto que estilo da fonte não o utilizador já poderia selcionar as três opções e assim alterava o estilo do titulo.


4.Reflexão Final 


Quanto a este módulo posso dizer que para mim foi um módulo completamente diferente dos anteriores e melhor pois ja é utilizada uma parte mais gráfica da programação.
Em relação as tarefas realizadas nas aulas todas foram importantes mas houve alguns que se sobresairam . Neste módulo não tive grandes dúvidas pois a matéria foi bem explicada pela setora .




quinta-feira, 6 de dezembro de 2012

Módulo 8-Conceitos avançados de Programação




  1-Introducão
  A Programação Orientada a Objetos (POO) surgiu com a finalidade de facilitar a vida daqueles que trabalham com desenvolvimento de softwares, pois na POO (Programação orientada a objectos) o difícil não é desenvolver bem um software, mas sim desenvolver um software que satisfaça o cliente, ou seja, garantir que o que será entregue será realmente o que foi pedido.
   

  2-Linguagens utilizadas na POO (Programação orientada a objetos);
       
  •      C++;
  •      Object Pascal;
  •      Java;
  •      Java script;
  •      PHP;ASP; 
  •      (etc...)

   3-Conceitos centrais da POO

        Classe- Classe no contexto da POO, é uma unidade de código a partir da qual se podem criar objectos; Basicamente a classe é compo que um molde a partir do qual se criam objectos de um determinado tipo;
       
     Estrutura interna de uma classe: as classes são constituidas por membros.Estes podem ser de dois tipos:
  1.   Atributos ou campos de dados - os dados que caracterizam os objectos ; 
  2.    Métodos ou rotinas - os procidementos ou funcões que os objectos podem executar ;                                                                                                                                    

        Objecto- Objectos em programação são unidades de código utilizadas no desenvolvimento de aplicações;
 
         Classes e Objectos podem dizer respeito a qualquer tipo de entidades usadas em progrmação, tais como: janelas, menus, botões de comandos, caixas de texto, imagens etc...


        A POO caracteriza-se fundamentalmente, pela criação de classes que depois, são usadas nos progrmas sobre na forma de objectos . Para além disso a, POO tem também as seguintes caracteristicas principais:
      
         Encapsulamento- as classes e os objectos são unidades de código que encobrem e protegem os seus membros em relação a acessos externos;
         








sexta-feira, 16 de novembro de 2012

Módulo 7 - Ficheiros



 1- Caracteristicas de um ficheiro?
O tipo estruturado file(ficheiro) representa, em Pascal, uma estrutura de dados capaz de armazenar dados ou resultados de qualquer outro tipo
  •        É uma estrutura externa e, em geral, uma estrutura permanente;
  •        Permite a comunicação com o utilizador ou entre programas;
  •        Estruturalmente é semelhante a uma tabela (array);
  •        Tamanho dinâmico;
  •        Acesso sequencial; 
 2-Tipos de ficheiros:

O Pascal possui dois tipos de ficheiros:

  FILE

      Conhecido por Arquivo randômico, ou de acesso aleatório.

      É possível  buscar uma determinada informação em qualquer posição, sem necessidade de percorrer todo o arquivo até alcançar a informação desejada.

     O acesso a informação é direto.
  
   Sintaxe:

        <Nome da variável> : File of <tipo>;

       Exemplo de um programa sobre ficheiros do tipo file: 
  •   program Parque_estacionamento;
  •   type carros=record
  •      marca,tipo,matricula:string;
  •      tempo:integer;
  • end;
  • var fich:file of carros;
  •     auto:carros;
  •     escolha:integer;
  • procedure criacao;
  • begin
  •   assign(fich,'automoveis.txt');
  •   rewrite(fich);
  •   close(fich);
  • end;
  •  
  • procedure leitura;
  • begin
  •   reset(fich);
  •   seek(fich,filesize(fich));
  •   write('Introduza a marca do veiculo:');
  •   readln(auto.marca);
  •   write('Introduza a matricula:');
  •   readln(auto.matricula);
  •   write('Introduza o tempo de estacionamento:');
  •   readln(auto.tempo);
  •   write('Introduza tipo de veiculo:');
  •   readln(auto.tipo);
  •   write(fich,auto);
  •   close(fich);
  • end;
  •  
  • procedure apresentacao;
  • var apre:string;
  •     maior,soma:integer;
  • begin
  •   reset(fich);
  •   while not eof(fich) do
  •    begin
  •       read(fich,auto);
  •       write('Marca - ',auto.marca);
  •       write('Matricula - ',auto.matricula);
  •       write('Tempo de estacionamento - ',auto.tempo);
  •       write('Tipo de veiculo - ',auto.tipo);
  •       soma:=soma+auto.tempo;
  •    end;
  •    write('Tempo medio = ',soma\filesize);
  •    maior:=0;
  •    while not eof(fich) do
  •     begin
  •       if(auto.tempo>maior) then
  •        begin
  •          maior:=Auto.tempo;
  •          apre:=auto.matricula;
  •        end;
  •     end;
  •     write('A matricula ',apre ,' foi quem mais tempo passou no parque');
  •     close(fich);
  • end;
  •  
  • procedure alterar;
  • var escolha:char;
  •     mat:string;
  • begin
  •   write('Pretende alterar algum dado?(S\N);
  •   readln(escolha);
  •   if (escolha=s) then
  •    begin
  •      reset(fich);
  •      read(fich,auto);
  •      while not eof(fich) do
  •       begin
  •         write('Introduza a matricula cujo o dado vai ser alterado');
  •         readln(mat);
  •         if mat=auto.matricula then
  •           begin
  •             write('Prentende alterar a maricula?(S\N)');
  •             readln(escolha);
  •             if (escolha=s) then
  •               begin
  •                 write('Matricula :');
  •                 realn(auto.matricula);
  •               end;
  •             write('Prentende alterar a marca?(S\N)');
  •             readln(escolha);
  •             if (escolha=s) then
  •               begin
  •                 write('Marca :');
  •                 realn(auto.marca);
  •               end;
  •             write('Prentende alterar o tempo de estacionamento?(S\N)');
  •             readln(escolha);
  •             if (escolha=s) then
  •               begin
  •                 write('Tempo de estacionamento :');
  •                 realn(auto.tempo);
  •               end;
  •             write('Prentende alterar o tipo do veiculo?(S\N)');
  •             readln(escolha);
  •             if (escolha=s) then
  •               begin
  •                 write('Tipo de veiculo :');
  •                 realn(auto.tipo);
  •               end;
  •         end;
  •      end;
  •    end;
  •    write(fich,auto);
  •    close(fich);
  • end;
  •  
  • procedure valor_pago;
  • var mt,lg,ps:real;
  • begin
  •   reset(fich);
  •   while not eof (fich) do
  •    begin
  •      read(fich.auto);
  •      write('Matricula: ',auto,matricula);
  •      write('Tipo de veiculo: ',auto,tipo);
  •      write('Marca: ',auto,marca);
  •      write('Tempo de estacionamento: ',auto,tempo);
  •      mt:=0.04;
  •      lg:=0.08;
  •      ps:=0.10;
  •      case auto.tipo of
  •          'moto':write('Valor pago ',mt*auto.tempo*1.2);
  •          'ligeiro':write('Valor pago ',lg*auto.tempo*1.2);
  •          'pesado':write('Valor pago ',ps*auto.tempo*1.2);
  •      end;
  •    end;
  •   close(fich);
  • end;
  •  
  • procedure limpar;
  • begin
  •   assign(fich,'automoveis.txt');
  •   rewrite(fich);
  •   close(fich);
  • end;
  •  
  • Begin
  •   repeat
  •     write('1- Criar');
  •     write('2- Introduzir');
  •     write('3- Apresentar tudo');
  •     write('4- Alterar os dados');
  •     write('5- Relatorios de contas');
  •     write('6- Limpar ficheiro');
  •     write('7- Sair');
  •     readln(escolha);
  •     case escolha of
  •        '1':criacao;
  •        '2':leitura;
  •        '3';apresentacao;
  •        '4':alterar;
  •        '5':valor_pago;
  •        '6':limpar;
  •     end;
  •   until (escolha=7);
  • End.

    Reflexão
    Quanto aos ficheiros file (ficheiros definidos pelo programador) foi os que mais trabalhei na aula por isso realizo exercicios deste tipo com mais facildade do que ficheiros do tipo text.
    Na minha opinião este tipo de ficheiros é muito mais util para o quotidiano pois pode ser utilizado em hospitais, parques de estacionamento etc... . 


 TEXT

Conhecido por arquivo seqüencial.

Tipo especial de arquivo que pode ser editado normalmente através de um editor de textos qualquer.

É dito seqüencial  porque a leitura tem que ser  feita seqüencialmente do início ao fim do arquivo.




    Sintaxe:

    <Nome da variável> : Text

    Exemplo de um programa de ficheiros do tipo text:
         


  • Program grava_algo;
  • Var Arquivo : Text;
  •     algo    : String;
  •     i       : integer;
  • Begin
  •    Assign(Arquivo, 'algo.txt');
  •    Rewrite(Arquivo);
  •    Write('Digite algo: ');
  •    Readln(algo);
  •    For i := 1 to 10 do
  •       Writeln(Arquivo, algo);
  •    Close(Arquivo);
  •    End

    Reflexão

    Este tipo de ficheiros foi menos trabalhado nas aulas e na minha opinião não tem a mesma importancia do que outro tipo. Tem uma desvantagem em relação aos ficheiros file pois este tipo é sequencial  logo o programa não pode "saltar" instruções.
     

 3-Comandos de ficheiros


    Assign- Atribuir á variável o ficheiro de texto;
  • Rewrite- Abre o ficheiro para receber informação;
  • Reset- Abre o ficheiro para leitura;
  • Close- Fecha o ficheiro;
  • write e writeln- Escreve no ficheiro;
  • EOL- Indicação do fim da linha;
  • EOF- Indicação do fim do ficheiro;
  • Assign- Associa a variável do tipo Ficheiro de Texto a um ficheiro no disco;
  4-Reflexão Final

      Em relação a este módulo achei mais fácil do que o anterior e também mais útil. Nas aulas a matéria foi bem dada e bem entendida pela minha parte. No meu portefólio acho que está tudo que é relevante em relacão em este tema.