variáveis indexadas matrizes - dei.isep.ipp.ptasilva/resources/aprog/documentos/teoricas... ·...

8
Variáveis indexadas Matrizes APROG (Civil) Aula 13

Upload: builien

Post on 08-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

Variáveis indexadasMatrizes

APROG (Civil)Aula 13

Page 2: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

ISEP-DEI, António Silva, © 2007-2009

APROG Civil

Variáveis indexadas

Conteúdo

• Conceito de Matriz

• Processamento de matrizes

2

Page 3: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

ISEP-DEI, António Silva, © 2007-2009

APROG Civil

Variáveis indexadas

Matrizes

3

Matrizes

variáveis indexadas bidimensionais, em que a posição de um elemento é dada por dois índices, um referente à linha e outro à coluna.

Page 4: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

Variáveis Indexadas

APROGCivil

ISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007

Matrizes - Sintaxe

● Sintaxe

Dim <nome>(<nº de linhas>, <nº de colunas>) as <tipo de dados>

● Exemplo

Dim turma( 15 , 6) as Integer

turma é uma matriz com 15 linhas e 6 colunas, ou seja, permite guardar as notas de 15 alunos a 6 disciplinas.

0 1 2 3 4 5

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

4

Page 5: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

Variáveis Indexadas

APROGCivil

ISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007

Matrizes - Exemplo

Elabore um programa que some duas matrizes.

ListBoxes para apresentar as matrizes.

Com matrizes precisamos de saber o número de linhas e colunas.

cmdCalc

cmdLimpar

5

Page 6: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

Variáveis Indexadas

APROGCivil

ISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007

Resolução I

Option ExplicitOption Base 1Const Linhas = 10Const Colunas = 10

Private Sub cmdLimpar_Click() lstM1.Clear lstM2.Clear lstMS.ClearEnd Sub

Private Sub cmdCalc_Click() Dim m1(Linhas, Colunas) As Integer, m2(Linhas, Colunas) As Integer Dim ms(Linhas, Colunas) As Integer, linha As String Dim nl As Integer, nc As Integer, i As Integer, j As Integer cmdLimpar_Click nl = Val(txtNL.Text) nc = Val(txtNC.Text) If nc < 1 Or nc > Colunas Or nl < 1 Or nl > Linhas Then MsgBox "Dimensões erradas!" Exit Sub End If É preciso validar o número de linhas e colunas.

Definem-se duas constantes com as dimensões máximas das matrizes

Utilizar as duas constantes ou o valor 10 é o mesmo, mas é mais fácil de alterar.

Equivale a premir o botão cmdLimpar.

Uso das Constantes

6

Page 7: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

Variáveis Indexadas

APROGCivil

ISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007

Resolução II For i = 1 To nl ' leitura da matriz 1 linha = "" For j = 1 To nc m1(i, j) = Val(InputBox("M1 [ " & i & ", " & j & "] = ")) linha = linha & " " & m1(i, j) Next lstM1.AddItem linha Next For i = 1 To nl ' leitura da matriz 2 linha = "" For j = 1 To nc m2(i, j) = Val(InputBox("M2 [ " & i & ", " & j & "] = ")) linha = linha & " " & m2(i, j) Next lstM2.AddItem linha Next For i = 1 To nl linha = "" For j = 1 To nc ms(i, j) = m2(i, j) + m1(i, j) linha = linha & " " & ms(i, j) Next lstMS.AddItem linha NextEnd Sub

Adiciona uma linha à ListBox.

Acre

scen

ta um

elem

ento

da m

atriz

à linh

a.

No início uma linha tem que estar vazia.

Leitura de um elemento da matriz.

(continuação)

Se para processar um vector (1D) é necessário 1 ciclo, para processar uma m a t r i z ( 2 D ) s ã o precisos 2 ciclos encadeados.

7

Page 8: Variáveis indexadas Matrizes - dei.isep.ipp.ptasilva/resources/APROG/Documentos/Teoricas... · ISEP-DEI, António Silva, © 2007-2009 APROG Civil Variáveis indexadas Conteúdo •

Variáveis Indexadas

APROGCivil

ISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007

Processamento de Matrizes

For i = 1 To nl

linha = ""

For j = 1 To nc

ms(i, j) = m2(i, j) + m1(i, j)

linha = linha & " " & ms(i, j)

Next

lstMS.AddItem linha

Next

Ciclo Exterior - Processa Linhas

Ciclo Interior - Processa Colunas8