segunda-feira, 3 de junho de 2013

Módulo 11 - Classes e Componentes

Consiste em:

- Criação de classes em visual basic;
- Construtores e classes derivadas;
- Bibliotecas de classes, dll e namespaces;
- Componentes.

Uma classe é uma unidade de código que reúne ao mesmo tempo:
- membros de dados ou atributos;
- métodos (procedimentos e/ou funções).

As classes juntam ao mesmo tempo estes dois tipos de unidades de programação: estruturas de dados e métodos (que são subprogramas).

Se uma classe tivesse apenas atributos ou campos de dados, seria semelhante a um structure (conjunto de campos de dados). Consideremos o seguinte exemplo de uma structure.

Structure Rectangulo
     Dim Comprimento As Single 
     Dim Largura As Single
End Estructure

Se, na anterior estrutura, substituirmos a palavra structure por class, temos uma classe muito simples em Visual Basic , constiruída  apenas por dois campos de dados (Comprimento e Largura):

Class Rectangulo
     Dim Comprimento As Single
     Dim Largura As Single
End Class

Embora nada impeça que uma classe tenha apenas membros de dados, o normal é elas terem também métodos (procedimentos e funções).


Como criar uma classe:



























































Reflexão:

Criar uma classe é muito simples, as classes ajuda muito na programação e vamos percisar dela muitas vezes.


Vou mostrar um programa muito simples em que se aplica uma boa parte dos conteúdos abordados este módulo:





Reflexão:

Neste programinha uso uma classe derivada, construtores com parâmetros e sem, amostro como se apresenta os dados em msgbox e uso o property.

Reflexão Final

Este módulo foi importante pois aprendi mais em programação e sobre conceitos no Basic, espero melhorar cada vez mais e achei que os conteúdos que coloquei foram importantes e explica o principal. Gostei do que aprendi este módulo.

terça-feira, 16 de abril de 2013


  
Módulo 10 - Programação orientada a objetos


Estrutura de decisão - If... Then...

If <condição> then
   <instruções>
[ElseIf <condição> Then
   <condições>]
...
[Else
   <instruções>]
End If

Por exemplo:

If Nota < 10 Then
   MsgBox("Reprovado")
Else
   MsgBox("Aprovado")
End If

Estrutura de decisão - Select Case

Select Case <expressão>
Case <lista_de_valores_1>
   <bloco_de_instruções_1>
[Case <lista_de_valores_2>
   <bloco_de_instruções_2>]
...
[Case Else
   <bloco_de_instruções_N>]
End Select

Por exemplo:

Select Case m
   Case 1, 3, 5, 7, 8, 10, 12
      dias = 31
   Case 4, 6, 9, 11
      dias = 30
   Case Else
      MsgBox("Nº de mês incorreto")
End Select

Estrutura de repetição - Do... Loop

Do 
   <instruções>
Loop While / Until <condição>

ou 

Do While / Until <condição>
   <instruções>
Loop

Estrutura de repetição - While

While <condição>
   <instruções>
End While

Estrutura de repetição - For... Next

For contador = v_inicial to v_final [Step p]
   <bloco de instruções>
Next


NOTA:
   
   - No Visual Basic 2010 Express não percisa de declarar o contador, ele assume automaticamente. 


   Com estas estruturas estudadas, resolvemos algumas fichas para aplicar o que aprendemos, no qual vou mostrar um programinha em que foi utilizado a estrutura Case e If.









  Uma outra ficha que resolvemos, tinha-mos de aplicar a estrutura For, programas simples, mas que deram para entender e conseguir aplicar estas estruturas no Visual Basic.













Reflexão

   Após ter concluído o estudo das Estruturas de repetição e decisão o que tenho a dizer é que é isto que nos vai acompanhar sempre ao longo de toda a programação, estes conteúdos já nos tinham sido divulgados quando estudamos pascal, aqui em Visual Basic só muda algumas coisas, como a forma de as aplicar, visto que aqui temos ambiente gráfico. Percebi bem estas estruturas, pois também foram bem explicadas pela professora. 



sexta-feira, 5 de abril de 2013



   Depois de dar a revisão as estruturas de decisão e repetição, começamos a aplicar arrays, procedimentos, funções e a colocar tudo isso num modúlo, para poder ser chamado quando for preciso no "programa principal". Vou amostrar um programa que engloba tudo isso.







    PS: O sublinhado a verde ao fechar a função, não é erro, pois o programa funciona normalmente.


Reflexão Final

    E termina assim mais um módulo, este um pouco mais complicado no meu ponto de vista, pois são muitos conhecimentos a aplicar já, e cada vez isto se vai complicar mais, realizamos cerca de 10 fichas, mas acho que as que meti já são exemplos, o vetor que usei é unidimensional, pois existe esse e o bidimensional, ou seja, unidemensional é so coluna ou linha e bidimensional tabela. Espero que tenha ajudado !

                                              

sexta-feira, 11 de janeiro de 2013

Módulo 9 - Introdução a Programação Orientada a Objetos
    
O ambiente de programação que iremos utilizar neste módulo, e também em próximos, é o Microsoft Visual Basic.
Esta opção deve-se ao facto de este ser um ambiente de programação do tipo OOED ( Object Oriented Event Driven ) - programação orientada por objetos e dirigida por eventos.
O ambiente de programação do Visual Basic baseia-se numa versão muito evoluída da linguagem Basic e caracteriza-se por ser um ambiente gráfico ("visual") onde podemos utilizar ferramentas e objetos gráficos para criar as interfaces das nossas aplicações.
   
Conseguem obter o Visual Basic muito fácil, a versão que vou utilizar é o Microsoft Visual Basic 2010 Express, depois de terem o vosso programa instalado no vosso computador é muito simples: 










Começamos com uma ficha te trabalho simples para conhecer melhor as funções do programa, na qual a vou mostrar :







É simples, abre o Microsoft Visual Basic cria um novo projeto e vai lhe aparecer um ícone de ferramentas, ou mais fácil pressione ( Ctrl + Alt + X ), adiciona o evento que pretender na janela form1 e depois faz duplo click em cada um para adicionar o código.
Este aplicativo é uma coisa simples, pois dá para adicionar dois nomes e tem dois botões um de juntar ambos os campos nomes e outro para trocar os nomes da textbox.


Este é o ambiente gráfico do primeiro programa, tudo isto é feito em código.

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label3.Text = TextBox3.Text +" " + TextBox4.Text
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim str1, str2 As String
str1 = TextBox3.Text

str2 = TextBox4.Text


TextBox3.Text = str2

TextBox4.Text = str1

End Sub
End Class



-------------------------------------------






Reflexão:

Este programa é muito simples , mas tem muita utilidade, como podem ver o código é pequeno e simples de ser feito. Com este programa aprendi que sem o "val" antes das texbox's não o resultado não sai correto, pois o visual basic não assume automaticamente que são algarismos que vamos introduzir, e por exemplo o que o programa fazia no caso da soma sem o "val" era juntar os algarismos números .


--------------------------------------


Public Class Form1
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Close()
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        TextBox1.Text = " "
        TextBox2.Text = " "
        TextBox3.Text = " "
        TextBox4.Text = " "
        TextBox5.Text = " "
        TextBox6.Text = " "
        TextBox7.Text = " "
        TextBox8.Text = " "
        TextBox9.Text = " "
        TextBox10.Text = " "
        TextBox11.Text = " "
        TextBox12.Text = " "
        Label16.Text = " "
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim media As Single
        media = (Val(TextBox1.Text) + Val(TextBox2.Text) + Val(TextBox3.Text) + Val(TextBox4.Text) + Val(TextBox5.Text) + Val(TextBox6.Text) + Val(TextBox7.Text) + Val(TextBox8.Text) + Val(TextBox9.Text) + Val(TextBox10.Text) + Val(TextBox11.Text) + Val(TextBox12.Text)) / 12
        Label16.Text = media
    End Sub
End Class


Reflexão:

Gostei de elaborar este programa pois tem muita utilidade, faz a média de todas as disciplinas que no meu caso do 11ºGPSI, faz o mesmo efeito de uma máquina calculadora, mas neste caso num ambiente gráfico, onde é mais fácil a execução.




Reflexão final

E assim termina mais um módulo mas este um pouco mais interessante, pois começamos com a parte gráfica da programação. Todos os programas que fizemos foram importantes , mas houve alguns que eu mais gostei. No início deste módulo começamos a trabalhar só com umas label's e textbox's , e chego ao fim já a perceber de muitas ferramentas do ambiente visual basic. Os conteúdos foram muito bem explicados. Gostei deste módulo .


quinta-feira, 6 de dezembro de 2012

Módulo 8 - Conceitos avançados da programação

Clique para ver : Power Point

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 - Conceitos centrais da POO
   

  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:

Atributos ou campos de dados - os dados que caracterizam os objectos ;
                          Métodos ou rotinas - procidementos ou funcões que os objectos podem executar ;

         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;



Alguns exercícios :

1. Indique o que é :
     
       - Fortan :  Linguagem não estruturada
       - Visual Basic :  Linguagem dirigida por eventos
       - Pascal :  Linguagem procedimental
       - C++ :  Linguagem POO propriamente ditas

       - Objeto :  Unidade de código criadas a partir de um determinado molde
       - Rotinas :  procedimentos ou funções que os objetos podem fazer executar
       - Classe :  Unidade de código a partir do qual se podem criar objetos de programação
       - Atributos :  Dados que caracterizam os objetos

2. Escreva o código que crie uma classe com o nome Livro com os atributos nome, título, autor e data_publicacao e o método EscreverDados ( que irá escrever no ecrã os conteúdos dos atributos da classe). Os membros da classe terão acesso público.


Type Livro = object
Public nome: string;
Public título: string;
Public autor: string;
Public data_publicacao: string;
Public procedure EscreverDados;
end;

sexta-feira, 16 de novembro de 2012

      Uso de ficheiros em Pascal



    Ficheiros são, como o nome indica, conjuntos de fichas ou registos de dados. Estes servem para armazenar a informação introduzida pelo utilizador em suportes de físicos como discos rigidos, cds, etc. em vez de apenas armazenados na memória RAM, que sendo uma memória volátil, perde os dados que nela se encontram quando o computador é desligado da corrente eléctrica.
Tens dois tipos de ficheiros: Ficheiros de Texto do tipo *.txt que abres com duplo clique no Bloco de Notas e Ficheiros de Tipos Definidos Pelo Utilizador que podem ter a extensão que o programador entender.
     A diferença entre um e outro tipo encontra-se no acesso aos dados, que nos Ficheiros de Texto é sequencial, isto é, o inicio da leitura dos dados não pode ser iniciada num ponto que o utilizador tenha escolhido, começa sempre no primeiro elemento do ficheiro e tem de percorrer todos os elementos existentes até chegar ao local pretendido, enquanto nos Ficheiros de Tipos Definidos Pelo Utilizador pode ser feita de forma aleatória, ou seja, pode ser escolhida a posição a partir da qual vai começar a leitura do ficheiro.




FICHEIRO DEFINIDO PELO PROGRAMADOR/UTILIZADOR

Program Ficheiro_programador;
Type carros = record
        marca, matricula, tipo: string[20];
        tempo: integer;
end;
Var fich: file of carros;
        auto: carros;
        escolha1: integer;
        escolha:char;
        valor:real;
Procedure criar;
begin
        Assign(fich,'Automoveis.txt');
        Rewrite(fich);
        Close(fich);
end;
Procedure ler;
begin
        Reset(fich);
        seek(fich, filesize(fich));
        Write('Introduza a marca do ve¡culo');
        Readln(auto.marca);
        Write('Introduza a matr¡cula');
        readln(auto.matricula);
        Write('Introduza o tempo de estacionamento');
        Readln(auto.tempo);
        Writeln('Introduza o tipo de veiculo');
        readln(auto.tipo);
        write(fich,auto);
        Close(fich);
end;
Procedure Apresentar;
Var apre:string;
        maior, soma:integer;
        media:real;

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);
        end;
        write('Tempo m‚dio=',soma/filesize(fich));
        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 esteve mais tempo no parque');
        close(fich);
end;
Procedure Limpar;
begin
        Assign(fich,'Automoveis.txt');
        Rewrite(fich);
        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 matr¡cula cujo vai ser alterada');
                        read(mat);
                        if mat=auto.matricula then
                        begin
                                write('Pretende alterar a matricula? (S/N)');
                                readln(escolha);
                                if (escolha='s') then
                                begin
                                        write('Matricula:');
                                        readln(auto.matricula);
                                end;
                                write('Alterar Marca? (s/N)');
                                readln(escolha);
                                if (escolha='s') then
                                begin
                                        write('Marca:');
                                        readln(auto.marca);
                                end;
                                write('Alterar tempo de estacionamento? (S/N)');
                                readln(escolha);
                                if (escolha='s') then
                                begin
                                        write('Tempo de estacionamento:');
                                        readln(auto.tempo);
                                end;
                                write('Alterar tipo? (S/N)');
                                readln(escolha);
                                if (escolha='s') then
                                begin
                                        write('Tipo de veiculo:');
                                        readln(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:',auto.tipo);
                write('Marca:',auto.marca);
                write('Tempo:',auto.tempo);
                If auto.tipo='moto' then
                valor:= 0.04*auto.tempo*1.2;
                 If auto.tipo='pesado' then
                valor:= 0.08*auto.tempo*1.2;
                 If auto.tipo='ligeiro' then
                valor:= 0.1*auto.tempo*1.2;
               Writeln(auto.matricula,' ',auto.tempo,'  ',valor);
        end;
end;
Begin //Programa Principal
repeat
        writeln('1 - Para criar');
        writeln('2 - Para ler');
        writeln('3 - Para apresentar');
        writeln('4 - Para Alterar');
        writeln('5 - Para o valor pago');
        writeln('6 - Para limpar');
        writeln('7 - Para sair');
        readln(escolha);
        case escolha1 of
                1:criar;
                2:ler;
                3:apresentar;
                4:alterar;
                5:valor_pago;
                6:limpar;
        end;
until (escolha1=7);
End.

segunda-feira, 22 de outubro de 2012


Reflexão

Neste módulo falamos de Pilhas, Filas e Listas Ordenadas, no meu E-Portefólio inseri um programa para cada um e com o respetivo esquema. Tem a utilidade de os visitantes poderem aprender ou até tirar dúvidas.