Variáveis indexadas Vectores e asilva/resources/APROG/Documentos/Teoricas... · Vectores – Exemplo…

Download Variáveis indexadas Vectores e asilva/resources/APROG/Documentos/Teoricas... · Vectores – Exemplo…

Post on 26-Sep-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Variveis indexadasVectores e Matrizes

    APROG (Civil)Aula 12

  • ISEP-DEI, Antnio Silva, 2007-2009

    APROG Civil

    Variveis indexadas

    Contedo

    Conceito de Variveis Indexadas Vectores Processamento de vectores

    2

  • ISEP-DEI, Antnio Silva, 2007-2009

    APROG Civil

    Variveis indexadas

    Variveis indexadas

    3

    O que so variveis indexadas? So variveis mltiplas Ao contrrio das variveis simples, podem

    guardar diversos valores do mesmo tipo simultaneamente.

    Dizem-se indexadas porque a cada elemento corresponde um valor de um ndice que o identifica.

    Para que servem? Permitem armazenar e manipular blocos de

    informao de tamanho arbitrrio de forma expedita.

  • ISEP-DEI, Antnio Silva, 2007-2009

    APROG Civil

    Variveis indexadas

    Tipos de variveis indexadas

    4

    Tipos de variveis indexadas

    Vectoresvariveis indexadas unidimensionais, em que a posio de um elemento dada por um s ndice.Matrizesvariveis indexadas bidimensionais, em que a posio de um elemento dada por dois ndices, um referente linha e outro coluna.

  • ISEP-DEI, Antnio Silva, 2007-2009

    APROG Civil

    Variveis indexadas

    Variveis indexadas

    5

    12

    12 5 35 92 102 57 23 48

    0 1 2 3 4 5 6 7

    varivel

    indexada

    ndice

    varivel

    simples

    Cada elemento da varivel indexada identificado pelo nome da varivel e pela sua posio (ndice)

    Exemplo:numeros(3) - 4 posio da varivel indexada numeros

  • ISEP-DEI, Antnio Silva, 2007-2009

    APROG Civil

    Variveis indexadas

    Vectores

    6

    Pel Eusbio FigoCristiano

    RonaldoDeco Zidane Platini Cole

    1 2 3 4 5 6 7 8

    AllStars

    Ndojogador

    Matthaus Maldini Owen

    10 11 12

    Uma equipa de futebol pode ser representada por um vector, em que o nome da equipa corresponde ao nome do vector a cada jogador corresponde um nmero que equivale

    ao seu ndice no vector

    (*)

    (*) possvel fazer com que os ndices de um vector comecem em 1, usando Option Base 1

  • Variveis Indexadas

    APROGCivil

    ISEPDEI, Angelo Martins 2006ISEP-DEI, Antnio Silva, 2007-2009

    Vectores - Sintaxe

    Sintaxe

    Dim () as

    Exemplos Const NumAlunos = 60

    Dim v(50) as Single, v1(10) as Integer

    Dim turma(NumAlunos) as Integer

    NumAlunos uma constante que representa o valor 60, logo o mesmo que escrever o literal 60.

    v1(1)

    7

  • ISEP-DEI, Antnio Silva, 2007-2009

    APROG Civil

    Variveis indexadas

    Processamento de vectores

    8

    Problema: Armazenar e actualizar 100 preos

    Soluo A: Soluo B:

    Armazenamento

    Dim preo1 as singleDim preo2 as single...Dim preo100 as single

    Armazenamento

    Dim preos(100) as single

    Actualizao (5%) Actualizao 5%

    preo1 = preo1 * 1.05preo2 = preo2 * 1.05...preo100 = preo100 * 1.05

    For i = 1 To 100 preos(i) = preos(i) * 1.05Next i

    100 variveis simples 1 varivel indexada com 100 elementos

  • Variveis Indexadas

    APROGCivil

    ISEPDEI, Angelo Martins 2006ISEP-DEI, Antnio Silva, 2007-2009

    Vectores Exemplo

    Elabore um programa que leia as notas de uma turma e que apresente numa ListBox as notas dos alunos que estejam acima da media. Uma turma pode ter no mximo 60 alunos.

    Porque preciso um vector?

    Para identificar as notas que se encontram acima da mdia, necessrio calcular primeiro a mdia. Seria preciso ler as notas duas vezes, se no houvesse a possibilidade de guardar as notas num vector.

    No enunciado no especificado o nmero de alunos a ler, s que h um limite de 60. Assim, o utilizador ter de introduzir o nmero de alunos a processar numa TextBox.

    9

  • Variveis Indexadas

    APROGCivil

    ISEPDEI, Angelo Martins 2006ISEP-DEI, Antnio Silva, 2007-2009

    Vectores - Form

    lstQH - ListBox com os alunos acima da mdia.

    txtNA - TextBox para introduo do nmero de alunos.

    lstNotas - ListBox para apresentao das notas de toda a turma.

    lblMed - Label para apresentao da mdia.

    10

  • Variveis Indexadas

    APROGCivil

    ISEPDEI, Angelo Martins 2006ISEP-DEI, Antnio Silva, 2007-2009

    Resoluo I

    Option Base 1Option ExplicitPrivate Sub cmdSair_Click() EndEnd Sub

    Private Sub cmdLer_Click() Dim notas(60) As Integer, soma As Long Dim x As Integer, med As Single, na As Integer lstNotas.Clear lstQH.Clear txtMed.Text = "" na = Val(txtNA.Text) If na < 1 Or na > 60 Then MsgBox "Erro: N de alunos invlido!", vbCritical Else

    fundamental verificar que o nmero de alunos positivo e no ultrapassa a capacidade do vector.

    Vector com capacidade para 60 inteiros.

    Limpa os valores de corridas anteriores.

    11

  • Variveis Indexadas

    APROGCivil

    ISEPDEI, Angelo Martins 2006ISEP-DEI, Antnio Silva, 2007-2009

    Resoluo II

    For x = 1 To na Do notas(x) = Val(InputBox("Nota do aluno " & x)) Loop While notas(x) < 0 Or notas(x) > 20 soma = soma + notas(x) Next med = soma / na For x = 1 To na lstNotas.AddItem x & " - " & notas(x) If notas(x) > med Then lstQH.AddItem x & " - " & notas(x) End If Next txtMed.Text = med End If

    End Sub

    Leitura do valor para a posio x do vector. O valor de x vai variar entre 1 e o valor de na.

    (continuao)

    Se a nota actual for superior mdia, ento adiciona-a ListBox.

    Sendo um vector uma varivel mltipla, para o processar sempre necessrio um ciclo!

    12

Recommended

View more >