A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Trabalho prático 8 Private Sub cmdExecutar_Click() If optLer Then frmLer.Show Else frmEscrever.Show End If End Sub Ficheiro de pontos Ficheiro de distancias.

Apresentações semelhantes


Apresentação em tema: "1 Trabalho prático 8 Private Sub cmdExecutar_Click() If optLer Then frmLer.Show Else frmEscrever.Show End If End Sub Ficheiro de pontos Ficheiro de distancias."— Transcrição da apresentação:

1 1 Trabalho prático 8 Private Sub cmdExecutar_Click() If optLer Then frmLer.Show Else frmEscrever.Show End If End Sub Ficheiro de pontos Ficheiro de distancias

2 2 Trabalho prático 8 Private Sub cmdEscrever_Click() Dim a As ponto, b As ponto a.x = Val(txtAX.Text) a.y = Val(txtAY.Text) b.x = Val(txtBX.Text) b.y = Val(txtBY.Text) Call escreverPontos(a, b) Unload frmEscrever End Sub

3 3 Trabalho prático 8 Private Sub CmdSair_Click() Unload frmLer End Sub Private Sub cmdCalcularDistancia_Click() Call guardaDistancias(frmOperacoes.txtPontos.Text, frmOperacoes.txtDist.Text) End Sub

4 4 Trabalho prático 8 Private Sub cmdCarregaCombo_Click() Dim dist As Double Open frmOperacoes.txtDist.Text For Input As #1 While Not EOF(1) Input #1, dist cboDistancias.AddItem dist Wend Close #1 End Sub

5 5 Trabalho prático 8 Modulo Public Type ponto x As Double y As Double End Type

6 6 Trabalho prático 8 Public Sub guardaDistancias(filePontos As String, fileDist As String) Dim a As ponto, b As ponto, s, d Open filePontos For Random As #1 Len = Len(a) Open fileDist For Append As #2 While Not EOF(1) Get #1,, a Get #1,, b Write #2, distancia(a, b) Wend Close #1 Close #2 End Sub

7 7 Trabalho prático 8 Public Sub escreverPontos(a As ponto, b As ponto) Dim filePontos As String, d filePontos = frmOperacoes.txtPontos.Text Open filePontos For Random As #1 Len = Len(a) Put #1, LOF(1) / Len(a) + 1, a Put #1, LOF(1) / Len(a) + 1, b Close #1 End Sub Public Function distancia(a As ponto, b As ponto) As Double distancia = Sqr((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y)) End Function

8 8 Vectores e matrizes Analogia com a matemática Um array com uma dimensão Vector Um Array com duas dimensões Matriz

9 9 Vectores e matrizes Array – É um conjunto de elementos sequencialmente indexados e do mesmo tipo Elemento – Tem uma localização única dentro do array (Índice) Declaração Estático Dinâmico A capacidade do array pode ser alterada durante a execução do programa A capacidade do array não pode ser alterada durante a execução do programa

10 10 Vectores e matrizes Dim nomeArray(inicio To Fim) as tipoDados Inteiro OU Dim nomeArray(Fim) tipoDados Inteiro Estático Ex: Dim myArray(5 To 10) Tem 6 posições ( 5, 6, 7, 8, 9 e 10) Ex: Dim myArray(5) Tem 6 posições (0, 1, 2, 3, 4 e 5)

11 11 Vectores e matrizes Option Base( 0 | 1) Inserir na região destinada a declarações Define o inicio dos arrays declarados 0 (Zero) ou 1 (um) Option Base Por defeito é 0 (Zero)

12 12 Vectores e matrizes Dinâmico Dim nomeArray() Na declaração de um array dinâmico o espaço entre os parênteses fica vazio ReDim nomeArray(fim) as tipoDados Altera a capacidade de um array para o valor fim Um array dinâmico não pode ser utilizado sem o comando ReDim ser executado pelo menos uma vez

13 13 Vectores e matrizes ReDim nomeArray(fim) as tipoDados Redim não altera o tipo de dados do array A utilização de ReDim inicializa o array (Perdem-se todos os dados)

14 14 Vectores e matrizes Como evitar a perda de dados? ReDim Preserve nomeArray(fim) as tipoDados A utilização de Preserve : Não permite a alteração do limite inferior Não permite a alteração do número de dimensões Se aumentar a capacidade mantém os dados do array Se reduzir a capacidade do array, os dados dos índices suprimidos perdem-se.

15 15 Vectores e matrizes Lbound(nomeArray,numeroDimensão) Retorna o menor índice (long) Ubound(nomeArray,numeroDimensão) Retorna o maior índice (long) Ex: Dim var1(3 to 10, 4 to 12) as Integer A = Lbound(var1,1) C=Ubound(var1,1) B = Lbound(var1,2) D=Ubound(var1,2) A = 3 D=12C=10 B=4

16 16 Vectores e matrizes Utilização de Vectores Como aceder a um elemento de um vector? Dim myArray(10) as integer myArray(0)=0 myArray(1)=1.... myArray(10)=10 OU Dim myArray(10) as integer Dim i as integer For i=0 to 10 myArray(i) = i Next i

17 17 Vectores e matrizes Utilização de Matrizes Como aceder a um elemento de uma Matriz? Dim myArray(10,2) as integer myArray(0,0)=0 myArray(1,0)=1.... myArray(0,1)=0 myArray(1,1)= myArray(0,2)=0 myArray(1,2)=1 OU Dim myArray(10,2) as integer Dim i as integer, j as integer For i=0 to 10 For j=0 to 2 myArray(i,j) = j next j Next i Dim myArray(10,2) as integer Linha Coluna

18 18 Vectores e matrizes Passagem de vectores e matrizes como parâmetro Definição da função ou procedimento Public/Private Sub / Function exemplo(v()) A função ou procedimento com o nome exemplo recebe como parâmetro um vector v com n elementos O vector V (parâmetro) tem de ter o mesmo tipo de dados do argumento O vector V não tem definido dimensão pode receber um vector de qualquer dimensão

19 19 Vectores e matrizes invocação Call exemplo(vector)vector é arrays de n posições retorno Uma função não retorna um vector Exemplo=vector ERRADO Para retirar ou alterar um vector numa função/Procedimento usa-se a passagem de parâmetros por referência


Carregar ppt "1 Trabalho prático 8 Private Sub cmdExecutar_Click() If optLer Then frmLer.Show Else frmEscrever.Show End If End Sub Ficheiro de pontos Ficheiro de distancias."

Apresentações semelhantes


Anúncios Google